
Quando ho iniziato a scrivere sul blog, non ho seguito alcuna regola di SEO, ottimizzazione o altro. Mi limitavo a pubblicare e basta. Questo mi ha fatto accumulare migliaia di immagini non ottimizzate e centinaia di articoli lunghi, lunghissimi.
Poi ho continuato a pubblicare altri articoli lunghi che ho ottimizzato quanto basta. Quindi, ad oggi, ci sono circa 100 articoli con più di 1500 parole, diverse decine con più di 3500 parole. E molti altri con più di 1000 parole.

Molti di questi testi sono i cosiddetti articoli"evergreen" o senza tempo. Trattandosi di testi più completi rispetto al tipico post veloce, di solito sono i link che si posizionano meglio e ricevono un traffico organico più costante. Questa è la buona notizia, quella cattiva è che erano anche i post che si caricavano peggio e che fornivano metriche negative perché Google elabora gli URL per gruppi.
E questo doveva essere risolto, per molte ragioni.
Perché dividere i post lunghi?
Il motivo principale per cui è consigliabile dividere i post lunghi in pagine è quello di alleggerire il carico, soprattutto quelli che contengono molte immagini e/o video e altri elementi.
Oltre al necessario miglioramento della velocità di caricamento, aumenterà le possibilità di ottenere un miglior posizionamento, o almeno di mantenerlo, e aumenterà il tempo trascorso dai visitatori e il numero di pagine visitate per sessione riducendo la frequenza di rimbalzo.
Tuttavia, ci sono alcune cose da tenere a mente. Mantenete l'URL originale per non creare nuovi URL che possano diluire il SEO e per far sì che Google e gli altri browser continuino a indicizzare il contenuto come un singolo articolo.
La cosa più importante è utilizzare rel="next" e rel="prev" nel sito per indicare a Google che si tratta di una serie.
Ad esempio, in un post diviso in tre pagine, quando si visita la seconda pagina, si dovrà trovare questo nel codice sorgente all'interno del tag
<link rel="canonical" href="https://jrmora.com/post-ejemplo/2/" />
<link rel="prev" href="https://jrmora.com/post-ejemplo/" />
<link rel="next" href="https://jrmora.com/post-ejemplo/3/" />
Alcune considerazioni
Non è sufficiente dividere gli articoli o semplicemente ottenere più pagine viste. La paginazione deve avere una certa logica basata sulla navigazione naturale. A tal fine, dovete mettervi nei panni del visitatore o navigare nel vostro sito come se fosse il sito di qualcun altro.
Ogni sottopagina deve essere in grado di funzionare come pagina a sé stante o almeno deve essere preceduta da informazioni su ciò che vi si trova e da un'introduzione logica alla nuova sottopagina. Deve avere un contenuto sufficiente per non essere considerato povero o di scarso valore. Google penalizza il"contenuto scarso".
La paginazione deve indicare chiaramente che l'articolo è diviso in pagine. Inoltre, non è male aggiungere, almeno nella prima pagina, un indice.
Anche se non esiste una regola "ufficiale", è bene evitare un'eccessiva impaginazione. In genere è consigliabile suddividere i post di 1500/1800 parole o più in due o tre pagine al massimo.
Dividere i post con il blocco di interruzione di pagina nativo di Gutenberg
Ci sono diversi modi per farlo con i plugin, ma, come sapete, io preferisco usare il minor numero possibile di plugin.
Il blocco"Interruzione di pagina" di Gutenberg è l'opzione migliore.

Il blocco aggiunge i tag rel="next" e rel="prev" e "canonical" alle pagine divise, ma se si vuole essere sicuri che vengano visualizzati, si può includere questa funzione nel file functions.php del template.
// Añadir etiquetas rel="next" y rel="prev" para paginación con Bloque Page Break <!--nextpage--> o Salto de Página
function gp_add_pagination_rel_tags() {
if (is_singular() && !is_front_page()) {
global $page, $numpages, $post;
// Solo si hay paginación
if ($numpages > 1) {
// Etiqueta rel="prev" (página anterior)
if ($page > 1) {
echo '<link rel="prev" href="' . get_permalink($post) . ($page - 1) . '/" />' . "\n";
}
// Etiqueta rel="next" (página siguiente)
if ($page < $numpages) {
echo '<link rel="next" href="' . get_permalink($post) . ($page + 1) . '/" />' . "\n";
}
}
}
}
add_action('wp_head', 'gp_add_pagination_rel_tags');
Il design conta
L'aspetto e gli elementi della paginazione sono molto importanti perché permettono al visitatore di capire immediatamente che l'articolo continua nelle pagine successive e di sapere di quante pagine è composto.
2- Il blocco "Interruzione di pagina" mostra un layout molto semplice. Si presenta così:

E quello che cerchiamo è qualcosa di più descrittivo e visivamente accattivante.

La prima immagine è quella che verrà mostrata in fondo alla prima pagina e la seconda nelle pagine successive.

Questo aspetto si ottiene con i CSS inclusi nel codice totale che potete aggiungere al vostro functions.php. Potete impaginarlo come volete e adattarlo alla palette di colori e al design del vostro blog.
Codice
Ecco il codice che sto utilizzando ora.
*È adattato alle mie esigenze, è possibile separare il CSS e modificarlo, aggiungere o rimuovere lingue e cambiare il testo.
Sebbene il codice sia destinato a trovare le lingue utilizzate da Polylang, funzionerà anche se non si utilizza Polylang. Tuttavia, rileverà le lingue solo se l'URL ha questa struttura: tusitio.com/it/
// 1. Eliminar paginaciones automáticas
function remove_all_auto_pagination() {
if (function_exists('generate_do_post_pagination')) {
remove_action('generate_after_entry_content', 'generate_do_post_pagination');
}
add_filter('wp_link_pages', '__return_empty_string');
}
add_action('wp', 'remove_all_auto_pagination', 5);
// 2. Función auxiliar para números de página
function generate_pagination_numbers($total_pages, $current_page, $base_url) {
$numbers_html = '';
for ($i = 1; $i <= $total_pages; $i++) {
$page_url = ($i == 1) ? $base_url : $base_url . user_trailingslashit($i);
if ($i == $current_page) {
$numbers_html .= '<span class="current-page">' . $i . '</span>';
} else {
$numbers_html .= '<a href="' . esc_url($page_url) . '" class="pagination-link">' . $i . '</a>';
}
}
return $numbers_html;
}
// 3. Paginación multilingüe completa
add_filter('the_content', function($content) {
global $numpages, $post;
if (!is_singular() || $numpages <= 1) return $content;
$wp_query = $GLOBALS['wp_query'];
$current_page = $wp_query->get('page') ?: 1;
$base_url = trailingslashit(get_permalink());
// Sistema de detección de idioma
$language = 'en';
$available_langs = ['en','fr','de','es','pt','ru','it','sv','da','fi','nb','el','ar','tr','zh','id','ja','ko','uk','pl','cs','sk','lt','et','ro','hu','nl','bg'];
if (function_exists('pll_current_language')) {
$detected_lang = pll_current_language();
$language = in_array($detected_lang, $available_langs) ? $detected_lang : 'en';
} else {
$current_uri = esc_url_raw($_SERVER['REQUEST_URI']);
foreach ($available_langs as $lang) {
if (strpos($current_uri, '/'.$lang.'/') !== false) {
$language = $lang;
break;
}
}
}
// Textos completos para 28 idiomas (solo cambios en finlandés y ruso)
$localized_texts = [
'en' => ['Continue reading this post →', 'Pages of this post →'],
'fr' => ['Continuer à lire cet article →', 'Pages de ce billet →'],
'de' => ['Diesen Beitrag weiter lesen →', 'Seiten dieses Beitrags →'],
'es' => ['Seguir leyendo este post →', 'Páginas de este post →'],
'pt' => ['Continuar a ler esta publicación →', 'Páginas deste post →'],
'ru' => ['Продолжить чтение →', 'Страницы этого поста →'],
'it' => ['Continua a leggere questo post →', 'Pagine di questo post →'],
'sv' => ['Fortsätt läsa detta inlägg →', 'Sidor i detta inlägg →'],
'da' => ['Læs videre på dette indlæg →', 'Sider i dette indlæg →'],
'fi' => ['Jatka lukemista →', 'Artikkelin sivut →'],
'nb' => ['Fortsett å lese denne artikkelen →', 'Artikkelens sider →'],
'el' => ['Συνεχίστε την ανάγνωση →', 'Σελίδες άρθρου →'],
'ar' => ['تابع القراءة ←', 'صفحات المقال ←'],
'tr' => ['Okumaya devam edin →', 'Yazı sayfaları →'],
'zh' => ['继续阅读 →', '文章分页 →'],
'id' => ['Lanjutkan membaca →', 'Halaman artikel →'],
'ja' => ['続きを読む →', 'ページ移動 →'],
'ko' => ['더 보기 →', 'ページ →'],
'uk' => ['Читати далі →', 'Сторінки статті →'],
'pl' => ['Czytaj dalej →', 'Strony artykułu →'],
'cs' => ['Pokračovat ve čtení →', 'Stránky článku →'],
'sk' => ['Pokračovať v čítaní →', 'Stránky článku →'],
'lt' => ['Skaityti toliau →', 'Straipsnio puslapiai →'],
'et' => ['Jätka lugemist →', 'Artikli leheküljed →'],
'ro' => ['Continuă lectura →', 'Paginile articolului →'],
'hu' => ['Tovább olvasom →', 'Cikk oldalai →'],
'nl' => ['Lees verder →', 'Artikelpagina\'s →'],
'bg' => ['Прочети още →', 'Страници на статията →']
];
$text_index = ($current_page == 1) ? 0 : 1;
$pagination_text = $localized_texts[$language][$text_index] ?? $localized_texts['en'][$text_index];
// Construcción de la paginación
$pagination_html = '<div class="custom-pagination-container">';
$pagination_html .= '<div class="pagination-content">';
$pagination_html .= '<span class="pagination-text">' . esc_html($pagination_text) . '</span>';
$pagination_html .= '<div class="pagination-numbers">';
$pagination_html .= generate_pagination_numbers($numpages, $current_page, $base_url);
$pagination_html .= '</div></div></div>';
return ($current_page > 1) ? $pagination_html . $content . $pagination_html : $content . $pagination_html;
}, 15);
// 4. CSS optimizado (sin referencias a fuentes)
add_action('wp_head', function() {
echo '<style>
/* Estilos base */
.custom-pagination-container {
margin: 25px 0;
padding: 15px 10px;
background: #f9f9f9;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
box-sizing: border-box;
width: 100%;
}
.pagination-content {
display: flex;
align-items: center;
justify-content: center;
max-width: 800px;
margin: 0 auto;
}
.pagination-text {
font-weight: 700;
color: #333;
margin-right: 10px;
white-space: nowrap;
}
.pagination-numbers {
display: inline-block;
}
.pagination-link,
.current-page {
display: inline-block;
padding: 8px 12px;
margin: 0 3px;
border-radius: 4px;
font-weight: 400;
font-size: 15px;
line-height: 1;
box-sizing: border-box;
transition: all 0.2s ease;
}
.current-page {
background: #b40006;
color: white;
font-weight: 700;
}
.pagination-link {
background: #f5f5f5;
color: #333;
text-decoration: none;
}
.pagination-link:hover {
background-color: #e0e0e0;
transform: translateY(-2px);
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
/* Estilos móvil */
@media (max-width: 600px) {
.pagination-content {
flex-direction: row;
flex-wrap: nowrap;
overflow-x: auto;
justify-content: flex-start;
padding-bottom: 5px;
-webkit-overflow-scrolling: touch;
}
.pagination-text {
font-size: 14px;
white-space: nowrap;
flex-shrink: 0;
}
.pagination-numbers {
display: flex;
flex-wrap: nowrap;
gap: 4px;
}
.pagination-link,
.current-page {
padding: 6px 10px;
min-width: 32px;
font-size: 14px;
margin: 0;
flex-shrink: 0;
}
}
</style>';
});