Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🚫 Como colocar noindex nas páginas de paginação no Yoast SEO

🚫 Como colocar noindex nas páginas de paginação no Yoast SEO

Quando se tem centenas de artigos, dezenas de categorias e uma nuvem de etiquetas, as páginas de paginação multiplicam-se sem se dar por isso. /page/2/, depois /page/3/, depois /page/15/ e, quando se dá conta, o Google está a indexar milhares de URLs inúteis que não têm conteúdo único, mas consomem o orçamento de rastreio.

Em versões anteriores do Yoast SEO, existia um interruptor incorporado chamado «Noindex subpages of archives». Uma caixa de verificação e o problema ficava resolvido. Mas, em 2020, a equipa do Yoast removeu esta definição da interface. A posição oficial: o Google tornou-se mais inteligente a lidar com séries paginadas e a definição já não é necessária.

Na prática, é necessária. Especialmente para sites grandes, onde cada página extra no índice consome a quota de rastreio de URLs que deveriam realmente posicionar-se.

Os programadores do Yoast deixaram uma alternativa: o filtro wpseo_robots. Com ele, pode definir programaticamente noindex, follow para quaisquer páginas de paginação. Abaixo estão duas opções de código: uma rigorosa (todos os URLs /page/) e uma seletiva (apenas arquivos de categorias e etiquetas).

💡 Visão geral rápida:

  • Saiba porque é que o Yoast removeu a opção incorporada e quando é que ainda é necessária
  • Obtenha código pronto a usar para o functions.php: duas versões do filtro wpseo_robots
  • Aprenda a verificar os resultados através do código-fonte da página e da Google Search Console

Porque é que as páginas de paginação devem ser bloqueadas da indexação

Cada página de paginação tem três problemas. Primeiro, duplicação de conteúdo: /category/seo/, /category/seo/page/2/ e /category/seo/page/3/ mostram as mesmas pré-visualizações, apenas divididas por páginas. Segundo, conteúdo pobre: uma página de paginação não tem um artigo completo, apenas uma lista de títulos com excertos. Terceiro, orçamento de rastreio: o Googlebot gasta o seu limite de rastreio em URLs que não têm valor de pesquisa, em vez de voltar a rastrear artigos novos.

Historicamente, o Yoast SEO resolvia esta tarefa com uma única caixa de verificação nas definições. Mas, a partir da versão 14.0, a empresa reconsiderou a sua abordagem. A lógica era esta: o Google aprendeu a reconhecer rel="prev" e rel="next", compreende a estrutura de paginação e direciona os utilizadores para a primeira página por si próprio. E o noindex nas subpáginas, na visão do Yoast, reduz o número de rastreios e impede o motor de busca de redescobrir artigos antigos através de links nestas páginas.

Este argumento é discutível. Se tem um blogue pequeno com 30 artigos, muito bem, o Google resolve. Mas se o seu site cresceu para vários milhares de URLs com paginação de categorias, etiquetas e arquivos por data, o motor de busca perde tempo com o que não interessa. Bloquear as subpáginas da indexação via código é uma solução controlada e reversível.

Opção 1: noindex para todas as páginas de paginação

A abordagem mais simples e radical. O filtro verifica a condição is_paged(), uma função padrão do WordPress que devolve true em qualquer página de paginação (arquivos, categorias, etiquetas, página inicial). Se a condição for verdadeira, substituímos por noindex, follow.

Adicione este código ao functions.php do seu tema ativo ou através do plugin Code Snippets:

1add_filter('wpseo_robots', function($robots) {
2 if (is_paged()) {
3 return 'noindex,follow';
4 }
5 return $robots;
6});

O que acontece linha a linha:

  • add_filter('wpseo_robots', ...) liga-se ao filtro do Yoast SEO responsável pelo conteúdo da meta tag robots. O filtro aceita o valor atual de $robots e espera uma string como retorno.
  • is_paged() é uma função incorporada do núcleo do WordPress. É acionada em qualquer URL onde a variável paged esteja presente (ou seja, /page/N/).
  • return 'noindex,follow' diz ao motor de busca: «não indexe esta página, mas siga os links nela contidos». Os links dentro da paginação continuam a passar peso.
  • return $robots devolve o valor padrão do Yoast inalterado para todas as outras páginas.

Depois de adicionar o código, visite qualquer página como /category/seo/page/2/ e abra o código-fonte HTML (Ctrl+U). Encontre a linha <meta name="robots". Se vir content="noindex, follow", o filtro funcionou.

Opção 2: noindex apenas para arquivos de categorias e etiquetas

A primeira opção atinge todas as páginas paginadas indiscriminadamente, incluindo a página inicial (/page/2/). Se a sua página inicial mostra pré-visualizações de artigos e pretende manter as suas subpáginas no índice, precisa de uma lógica mais direcionada.

Adicionamos uma segunda condição: is_archive(). Esta função do WordPress devolve true apenas em páginas de arquivo: categorias, etiquetas, arquivos por data, arquivos de autor e taxonomias personalizadas.

1add_filter('wpseo_robots', function($robots) {
2 if (is_paged() && is_archive()) {
3 return 'noindex,follow';
4 }
5 return $robots;
6});

A diferença em relação à primeira opção está na combinação de condições. is_paged() && is_archive() significa: «página de paginação E página de arquivo simultaneamente». A paginação da página inicial (/page/2/) não corresponde à condição is_archive(), pelo que a sua indexação é preservada.

Qual a opção a escolher:

Situação

Opção

Site grande, milhares de URLs de paginação, necessidade de controlo máximo

Opção 1

A página inicial mostra um feed de artigos, as subpáginas da página inicial são importantes para a indexação

Opção 2

Loja de comércio eletrónico em WooCommerce com categorias de produtos

Opção 2

Necessidade de previsibilidade e o mínimo de exceções

Opção 1

Como verificar o resultado

Depois de inserir o código, verifique três coisas.

Primeiro, o código-fonte. Abra qualquer página de paginação, Ctrl+U, procure por <meta name="robots". Certifique-se de que vê content="noindex, follow" e não content="index, follow".

Segundo, a Google Search Console. Vá à ferramenta de inspeção de URL, cole o endereço da página paginada e clique em «Testar». No bloco «Indexação», verá o estado: «A página não é indexada» com o motivo «Excluída pela etiqueta noindex». Isto confirma que o Googlebot recebeu e processou a diretiva.

Terceiro, a dinâmica do índice. Na Search Console, abra «Índice» → «Páginas». Dentro de 2 a 4 semanas após a implementação do código, verá um crescimento de páginas com o estado «Excluída pela etiqueta noindex» e uma redução de URLs paginadas indexadas. O processo não é instantâneo: o Googlebot tem de voltar a rastrear cada URL para ler a nova etiqueta.

Limitações e precauções importantes

O código altera o comportamento de todo o site. Antes de implementar, certifique-se de que compreende as consequências.

Remover subitamente milhares de páginas do índice pode causar temporariamente uma quebra de tráfego. Se o site viveu com a indexação da paginação durante vários anos e algumas subpáginas recebiam tráfego de pesquisa, perderá essas visitas. Em contrapartida, libertará orçamento de rastreio para páginas que devem realmente posicionar-se. Mas é inevitável um período de adaptação de 3 a 6 semanas.

Faça uma cópia de segurança do functions.php antes de editar. Um erro de sintaxe no código PHP fará cair o site inteiro (ecrã branco da morte). Se usar o Code Snippets, o plugin detetará o erro fatal e desativará o snippet. Se editar o functions.php diretamente, mantenha o acesso FTP à mão para reverter o ficheiro.

Se o site tiver um plugin de cache instalado (WP Rocket, W3 Total Cache), limpe a cache depois de adicionar o código. Caso contrário, serão servidas cópias HTML antigas das páginas, sem a nova meta tag robots, aos visitantes e aos motores de busca durante várias horas ou dias.

Para uma análise mais detalhada de todas as capacidades do Yoast SEO, desde a instalação até ao ajuste fino das meta tags, consulte o nosso guia de configuração do Yoast SEO para WordPress.

⁉️🤔 Perguntas frequentes

Porque é que o Yoast SEO removeu a opção de noindex incorporada para subpáginas?

O Google aprendeu a reconhecer séries paginadas através das etiquetas rel="prev" e rel="next" e a direcionar os utilizadores para a primeira página. O Yoast decidiu que forçar o noindex nas subpáginas reduz os rastreios e interfere com a reindexação de artigos antigos através de links de páginas paginadas. A documentação oficial do Yoast confirma: a definição foi removida da interface, mas o filtro wpseo_robots permanece para controlo programático.

O filtro wpseo_robots ainda é suportado em 2026?

Sim. O filtro wpseo_robots funciona nas versões atuais do Yoast SEO (24.x, 2026) e está documentado na API de Metadados em developer.yoast.com. Uma alteração importante: antes da versão 19.8, o filtro permitia devolver false para remover a meta tag robots. A partir da 19.8, devolver false é ignorado; o filtro espera apenas uma string ('noindex,follow' ou $robots). Ambas as versões de código deste artigo devolvem uma string e são totalmente compatíveis.

O código funcionará se o site tiver uma estrutura de paginação personalizada?

A função is_paged() depende do parâmetro de consulta padrão do WordPress paged. Se a paginação for implementada através de um parâmetro personalizado (por exemplo, ?pg=2 ou scroll virtual), a condição não será acionada. Para paginação personalizada, substitua is_paged() por uma verificação da query_var específica: get_query_var('custom_page_var'). Plugins como o WP-PageNavi funcionam através do paged padrão, pelo que não há conflito.

Quanto tempo até o Google remover as páginas paginadas do índice?

Em média, 2 a 6 semanas. A velocidade depende do tamanho do site e da frequência de rastreio: num site com rastreios diários, o Googlebot voltará a rastrear as secções principais em 7 a 10 dias; num blogue pequeno com rastreios semanais, num mês. Pode acelerar isto através de um pedido de rastreio manual na Search Console («Índice» → «Páginas» → selecionar URL → «Solicitar indexação»), mas o Google processa esses pedidos por ordem de fila.

A paginação pode ser bloqueada via robots.txt em vez de noindex?

Tecnicamente sim: Disallow: */page/* no robots.txt proibirá o rastreio de URLs paginadas. Mas isto é pior do que o noindex. O motivo: o robots.txt bloqueia o rastreio da página, não a sua indexação. Se links externos apontarem para uma página paginada, o Google pode indexá-la como uma «página sem descrição». Ao mesmo tempo, os links da própria página também não serão rastreados e perderá a transferência de peso para os artigos. noindex, follow resolve ambas as tarefas: a página não é indexada, mas os links nela contidos são rastreados.

Deve bloquear a paginação da indexação no seu caso

A resposta resume-se a dois fatores: o tamanho do site e se o orçamento de rastreio é um recurso escasso.

Se tem 50 artigos e três categorias, não se preocupe. O Google perceberá quais as páginas a mostrar nos resultados de pesquisa e filtrará as menos valiosas por si próprio. O filtro wpseo_robots neste cenário é uma complexidade desnecessária.

Se tem mais de 500 artigos, dezenas de categorias, um blogue ativo com etiquetas e arquivos por data, a paginação cria centenas e milhares de URLs que o motor de busca rastreia em vez de artigos novos. Ative a opção 2 (arquivos) ou a opção 1 (tudo), verifique o resultado através do código-fonte e da Search Console e dê ao Google 3 a 4 semanas para voltar a rastrear.

O código é reversível: comente o filtro e, dentro de um mês, todas as páginas paginadas voltarão ao índice. Sem consequências irreversíveis.