
Quando comecei a escrever um blogue, não segui nenhuma regra de SEO ou de otimização, nem nada disso. Limitava-me a publicar e pronto. Isto levou-me a acumular milhares de imagens não optimizadas e centenas de artigos longos, muito longos.
Depois, continuei a publicar outros artigos longos que optimizei apenas o suficiente. Assim, até à data, existem cerca de 100 artigos com mais de 1500 palavras, várias dezenas com mais de 3500 palavras. E muitos outros com mais de 1000 palavras.

Muitos destes textos são os chamados artigos"evergreen" ou intemporais. Como são textos mais completos do que o típico post rápido, são normalmente os links que se classificam melhor e recebem mais tráfego orgânico constante. Essa é a boa notícia, a má notícia é que eram também os posts que carregavam pior e que davam más métricas porque o Google processa os URL's por grupos.
E isto tinha de ser corrigido, por muitas razões.
Porquê dividir mensagens longas?
A principal razão pela qual é aconselhável dividir posts longos em páginas é para aliviar a carga, especialmente aqueles que têm muitas imagens e/ou vídeos e outros elementos.
Para além da necessária melhoria da velocidade de carregamento, aumentará as hipóteses de conseguir um melhor posicionamento, ou pelo menos de o manter, e aumentará o tempo despendido pelos visitantes e o número de páginas visitadas por sessão, reduzindo a taxa de rejeição.
No entanto, há alguns aspectos a ter em conta. Mantenha o URL original para não criar novos URLs que possam diluir o SEO e para que o Google e outros navegadores continuem a indexar o conteúdo como um único artigo.
O mais importante é utilizar rel="next" e rel="prev" em para indicar ao Google que se trata de uma série.
Por exemplo, numa publicação dividida em três páginas, ao visitar a segunda página, terá de encontrar isto no código fonte dentro da etiqueta
<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/" />
Algumas considerações
Não basta simplesmente dividir os artigos ou obter mais visualizações de páginas. A paginação deve ter uma certa lógica baseada numa navegação natural. Para isso, tem de se colocar no lugar do visitante ou navegar no seu sítio como se fosse o sítio de outra pessoa.
Cada subpágina deve poder funcionar como uma página autónoma ou, pelo menos, ser precedida de informações sobre o que nela se encontra e de uma introdução lógica à nova subpágina. Deve ter conteúdo suficiente para não ser considerada pobre ou de pouco valor. O Google penaliza o"conteúdo pobre".
A paginação deve indicar claramente que o artigo está dividido em páginas. Também não é mau acrescentar, pelo menos na primeira página, um índice.
Embora não exista uma regra "oficial", evite a paginação excessiva. Geralmente, é aconselhável dividir as mensagens de 1500/1800 palavras ou mais em duas ou três páginas, no máximo.
Dividir a publicação com o bloco de quebra de página nativo do Gutenberg
Existem diferentes formas de o fazer com plugins, mas, como sabe, prefiro utilizar o menor número possível de plugins.
O bloco"Quebra de Página" do Gutenberg é a melhor opção.

O bloco adiciona as etiquetas rel="next" e rel="prev" e "canonical" às páginas divididas, mas se quiser certificar-se de que são apresentadas, pode incluir esta função no ficheiro functions.php do seu modelo.
// 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');
A conceção é importante
O aspeto e os elementos da paginação são muito importantes porque permitem ao visitante compreender imediatamente que o artigo continua nas páginas seguintes e saber em quantas páginas consiste.
2- O bloco "Quebra de página" apresenta um esquema muito básico. Tem o seguinte aspeto:

E o que procuramos é algo mais descritivo e visualmente apelativo.

A primeira imagem é a que será apresentada no fundo da primeira página e a segunda nas páginas seguintes.

Este aspeto é conseguido com o CSS que está incluído no código total que pode adicionar ao seu functions.php. Pode dispor o layout como quiser e adaptá-lo à paleta de cores e ao design do seu blogue.
Código
Eis o código que estou a utilizar agora.
*Está adaptado às minhas necessidades, é possível separar o CSS e modificá-lo, adicionar ou remover idiomas e alterar o texto.
Embora o código se destine a encontrar as línguas utilizadas pela Polylang, continuará a funcionar se não utilizar a Polylang. No entanto, só detectará as línguas se o URL tiver esta estrutura: tusitio.com/pt/
// 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>';
});