Abre o Search Console de uma loja Magento média e olha o relatório de páginas. Quase sempre tem um bloco enorme em Descoberta — no momento não indexada e outro em Rastreada — no momento não indexada. São as URLs do filtro lateral.
A reação comum é ligar o canonical de categoria e esperar. Só que o canonical é uma dica que só existe dentro do HTML: para lê-la, o robô precisa baixar a página primeiro. O rastreio já aconteceu. O que você economiza é índice, não crawl budget.
De onde saem essas URLs
O Magento monta a URL do filtro usando o código do atributo como nome do parâmetro. Se você tem os atributos cor e tamanho filtráveis, a URL sai assim:
/camisetas.html?cor=52&tamanho=169O filtro de preço é fixo, sempre price. E a barra de ordenação acrescenta os dela: p, product_list_limit, product_list_order, product_list_dir e product_list_mode.
Faz a conta de combinação. Seis atributos filtráveis, cada um com cinco valores: cada filtro tem seis estados possíveis (cinco valores mais o de não estar na URL), o que dá 6 elevado a 6 = 46.656 estados. Tira o estado sem filtro nenhum e sobram 46.655 URLs por categoria. Multiplica por quarenta categorias e você chegou nas suas cem mil, sem contar ordenação e paginação.
A boa notícia é que a conta funciona nos dois sentidos: tirar um atributo do filtro divide o total por seis.
Primeiro corte: menos atributo filtrável
Antes de mexer em qualquer coisa, veja quantos atributos estão filtráveis hoje. Direto no banco:
SELECT a.attribute_code, c.is_filterable, c.is_filterable_in_search
FROM catalog_eav_attribute c
JOIN eav_attribute a ON a.attribute_id = c.attribute_id
WHERE c.is_filterable > 0 OR c.is_filterable_in_search > 0;Aparece coisa que não deveria estar ali: material, garantia, peso, atributo que o ERP criou e ninguém usa para escolher produto. Cada um desses multiplica o catálogo de URL.
Para desligar, o caminho é Stores > Attributes > Product, abre o atributo, aba Storefront Properties, campo Use in Layered Navigation. As opções são No, Filterable (with results) e Filterable (no results).
Minha regra em loja de cliente: filtro é o que o comprador usa para decidir. Roupa: tamanho, cor, marca. Eletrônico: marca, faixa de preço, uma ou duas especificações. O resto vira No. E quando ficar em dúvida, escolha Filterable (with results), nunca no results — a segunda gera link para combinação que devolve zero produto, ou seja, página vazia rastreável.
Repare que são duas colunas diferentes: is_filterable vale para a navegação por categoria e is_filterable_in_search para a página de busca. Desligar uma não desliga a outra.
Segundo corte: bloqueia o parâmetro no robots.txt
O Google recomenda literalmente isso para faceta: Disallow por parâmetro. E aceita curinga — o * vale por zero ou mais caracteres.
No Magento você edita em Content > Design > Configuration, abre a linha do store view e vai em Search Engine Robots, campo Edit custom instruction of robots.txt File. Um exemplo com os parâmetros que citei acima:
User-agent: *
Disallow: /*?*cor=
Disallow: /*?*tamanho=
Disallow: /*?*price=
Disallow: /*?*product_list_limit=
Disallow: /*?*product_list_order=
Disallow: /*?*product_list_dir=
Disallow: /*?*product_list_mode=Troque cor e tamanho pelos códigos dos seus atributos — os que sobreviveram ao primeiro corte. Depois de salvar, limpe o cache e confira em https://sualoja.com.br/robots.txt se saiu do jeito que você escreveu.
Eu deixo a paginação de fora. Bloquear ?p= é comum e eu não faço: é por ali que o Google alcança o produto que está na página 7 da categoria. Prefiro perder rastreio em paginação a perder produto no índice.
Um cuidado que quase todo mundo esquece: Disallow não é noindex. Se essas URLs já estão indexadas, bloquear o rastreio congela o que está lá — o robô nunca mais entra para ver a tag de remoção. Nessa situação a ordem é ao contrário: deixa o robô entrar, serve noindex na página com filtro, espera cair do índice, e só então põe o Disallow.
Perguntas rápidas
Bloquear no robots.txt tira as URLs que já estão no Google?
Não. Bloqueio impede rastreio novo, mas a URL já conhecida pode continuar aparecendo, às vezes sem descrição. Para remover mesmo, use noindex enquanto o rastreio ainda está liberado e só bloqueie depois.
Perco tráfego se tirar atributos do filtro lateral?
Do filtro em si, não: quem filtra é o visitante que já está na categoria. O que você perde é a chance de uma página de filtro ranquear sozinha, e isso só compensa em combinação com busca real, tipo tênis de corrida masculino.
Dá para escrever esse robots.txt direto num arquivo no servidor?
Dá, mas o Magento serve /robots.txt pelo próprio aplicativo a partir da configuração de design. Um arquivo físico na raiz pode ser ignorado ou entrar em conflito, então prefira o campo do admin.
Pra conferir na fonte
- Crawling and indexing: managing faceted navigation — Google Search Central
- Introduction to robots.txt — Google Search Central
- Layered navigation — Adobe Experience League
- Design configuration (Search Engine Robots) — Adobe Experience League