Paginação, scroll infinito e filtros: como lidar com SEO em sites com muitas páginas
Listagens grandes (categorias, blog, resultados de produto) podem virar armadilhas de rastreamento. O segredo é controlar URLs, consolidar sinais e dar caminhos claros ao Googlebot. Este guia mostra padrões de implementação que funcionam para e‑commerce, portais e blogs.Índice
- Fundamentos: objetivos de SEO em listagens
- Paginação tradicional: URL, links e canonical
- Scroll infinito e “carregar mais”: SEO seguro
- Filtros (navegação facetada): o que indexar
- Parâmetros: UTMs, ordenação e paginação
- Hreflang e paginação / filtros
- Sitemaps, links internos e descoberta
- WordPress/WooCommerce: configurações práticas
- Checklist final
- FAQ
- Tags
1) Fundamentos: objetivos de SEO em listagens
- Descobrir novos itens (posts/produtos) rapidamente.
- Evitar explosão combinatória de URLs (filtros, ordenações, paginações profundas).
- Consolidar sinais na URL canônica de cada categoria/tag e de cada item.
Regra: indexe a primeira página da lista e itens individuais. O resto serve para navegação/cobertura, não para ranquear.
2) Paginação tradicional: URL, links e canonical
Padrão robusto para categorias/listagens:
- URLs:
/categoria/(página 1),/categoria/p/2/,/categoria/p/3/… - Canonical: self‑canonical em todas as páginas paginadas; não aponte tudo para a página 1.
- Interna: “Anterior/Próxima” com links HTML (não apenas via JS).
- Conteúdo: texto otimizado só na página 1 (ou resumo curto nas demais) para evitar duplicação.
Marcação mínima de paginação
<nav class="pagination" aria-label="Paginação">
<a rel="prev" href="/camisetas/p/4/">Anterior</a>
<a rel="next" href="/camisetas/p/6/">Próxima</a>
</nav>
<link rel="canonical" href="https://www.seusite.com.br/camisetas/p/5/">
Importante:rel="next/prev" foi descontinuado como sinal de indexação. Ainda assim, links HTML entre páginas continuam essenciais para descoberta.
3) Scroll infinito e “carregar mais”: SEO seguro
Scroll infinito é ótimo para UX, mas pode esconder páginas internas do Googlebot se não houver URLs discretas.
- Progressive enhancement: tenha paginação tradicional funcional; o scroll apenas enriquece.
- History API: ao anexar mais itens, atualize a URL com
pushStatepara a página corrente (/p/2/,/p/3/…). - Âncoras HTML: mantenha links “Ver mais” para cada página.
Exemplo básico de History API
<script>
let page = 1;
const loadMore = async () => {
page++;
const res = await fetch(`/camisetas/p/${page}/?partial=1`);
const html = await res.text();
document.querySelector('#grid').insertAdjacentHTML('beforeend', html);
history.pushState({}, '', `/camisetas/p/${page}/`);
};
</script>
Dica: renderize o mesmo HTML da página paginada no endpoint parcial para consistência e capacidade de rastreamento.
4) Filtros (navegação facetada): o que indexar
Combinações de filtros (cor, tamanho, preço, marca…) podem gerar milhões de URLs. Controle com regras:
| Cenário | Indexação | Canonical/Meta | Observação |
|---|---|---|---|
| Filtro com demanda de busca (ex.: “camiseta preta masculina”) | Indexar | Self‑canonical; conteúdo único (H1, texto, FAQ) | Crie “landing facetada” estável com URL limpa |
| Ordenação (preço, popularidade), “view=grid” | Não indexar | Canonical → versão base; ou meta robots=noindex,follow | Evitar duplicação de conteúdo |
| Combos explosivos (cor+tamanho+marca+preço…) | Não indexar | noindex,follow + self-canonical | Permita seguir links para itens |
| Paginação de páginas facetadas | Opcional | Self‑canonical; links HTML entre páginas | Inclua no sitemap apenas se for “landing facetada” estratégica |
URLs limpas para facets estratégicas
# Em vez de parâmetros arbitrários:
# /camisetas?cor=preto&genero=masculino
# Prefira um padrão estável quando merecer indexação:
# /camisetas/masculinas/preto/
5) Parâmetros: UTMs, ordenação e paginação
- UTM e tracking: 301 para a URL limpa ou canonical → limpa; evite indexação.
- Ordenação/visualização: noindex,follow + canonical para a base.
- Paginação: mantenha os parâmetros/segmentos de página indexáveis para descoberta dos itens (self‑canonical).
Exemplo .htaccess (normalizar UTMs)
RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)utm_ [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L]
6) Hreflang e paginação / filtros
- Use self‑canonical por idioma e hreflang recíproco entre equivalentes.
- Evite apontar hreflang para versões com parâmetros de ordenação.
- Se uma “landing facetada” é canônica no BR, crie a equivalente canônica em cada idioma/região antes de ligar o hreflang.
7) Sitemaps, links internos e descoberta
- Sitemaps: inclua página 1 das categorias relevantes e todas as páginas de item (produtos/posts 200 OK).
- Páginas paginadas profundas: não precisam estar no sitemap; serão descobertas via links.
- Links internos: destaque produtos/posts novos/mais vendidos na página 1 para acelerar descoberta.
Sitemap (trecho)
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://www.seusite.com.br/camisetas/</loc></url>
<url><loc>https://www.seusite.com.br/camisetas/masculinas/preto/</loc></url>
<url><loc>https://www.seusite.com.br/produto/camiseta-tech/</loc></url>
</urlset>
8) WordPress/WooCommerce: configurações práticas
- Paginação: mantenha
/page/2/com self‑canonical. Conteúdo textual da categoria na página 1. - Ordenação (
?orderby=):noindex,followe canonical → base da categoria. - Filtros (plugins de facet): escolha 1‑3 facets estratégicas para indexar com URLs limpas e conteúdo próprio; demais ficam
noindex,follow. - Scroll infinito: implemente “Carregar mais” com fallback de paginação e
pushState. - Plugins SEO (Rank Math/Yoast): configure meta rules por query string (noindex) e evite schema duplicado em categorias/facets.
Meta robots condicional (functions.php)
<?php
add_action('wp_head', function(){
if ( is_product_category() && isset($_GET['orderby']) ) {
echo '<meta name="robots" content="noindex,follow">';
}
});
?>
9) Checklist final
- Página 1 da categoria indexável e bem otimizada?
- Paginação com links HTML e self‑canonical?
- Scroll infinito com fallback de paginação + History API?
- Facets estratégicas com URL limpa e conteúdo único?
- Ordenação/visualização e UTMs fora do índice (noindex/canonical/301)?
- Sitemap só com URLs canônicas e úteis?
- Logs/GSC sem explosão de URLs de filtros?
FAQ
1) Devo canonicar páginas 2, 3, 4… para a página 1?
Não. Use self‑canonical nas páginas paginadas. Elas ajudam na descoberta de itens profundos.
2) Ainda devo usar rel="next/prev"?
Não como sinal de indexação. Mantenha a navegação paginada em HTML com links “Anterior/Próxima”.
3) Posso indexar qualquer combinação de filtros?
Não. Indexe apenas facets com demanda de busca e páginas estáveis. O resto fica como noindex,follow.
4) Scroll infinito é ruim para SEO?
Não, se houver fallback de paginação e atualização de URL via History API. Sem isso, o Google pode não descobrir páginas profundas.
5) Parametrizações como ?sort= e ?view= devem indexar?
Em geral, não. Aponte canonical para a base e/ou use noindex,follow.
6) Páginas paginadas entram no sitemap?
Normalmente, não. Inclua a página 1 e itens individuais. Exceção: “landing facetada” estratégica.
7) Como detectar explosão de URLs?
Monitore relatórios de “Páginas” no GSC, estatísticas de rastreamento e logs. Bloqueie padrões perigosos cedo.
8) E se filtros geram conteúdo realmente único?
Transforme em landing estável de facet (URL limpa, H1 específico, texto/FAQ, links internos) e indexe.
9) Noindex bloqueia rastreamento?
Não. noindex precisa ser rastreado para ser visto. Não bloqueie por robots.txt aquilo que precisa de noindex.
10) Qual a melhor estratégia para novas listagens?
Garanta links internos a partir da página 1 e destaque itens novos. Isso acelera descoberta e indexação.
Tags
paginação scroll infinito filtros navegação facetada canonical noindex sitemap WordPress WooCommerce crawl budget History API e-commerce
“É necessário construir frases curtas. Toda otimização dividirá em, no mínimo, duas frases.”



