x-robots-tag-vs-robots-meta-tag-2026.html
< BACK

X-Robots-Tag vs robots meta tag: quando cada uma diz ao Google para pular uma página

Duas formas de dizer ao Google para não indexar uma página: a meta tag robots no HTML, ou a X-Robots-Tag no cabeçalho de resposta HTTP. Elas fazem o mesmo trabalho. Não são intercambiáveis. Escolher a correta depende do que é o arquivo (HTML vs PDF vs imagem), onde você consegue editar (template vs configuração do servidor), e se você precisa em escala (uma página vs dez mil).

Os dois mecanismos em uma frase cada

robots meta tag: <meta name="robots" content="noindex, nofollow"> na <head> de um documento HTML. Funciona apenas em páginas HTML porque não há equivalente em metadados de PDF / imagem / JSON. Fácil de adicionar via template da página.

X-Robots-Tag: X-Robots-Tag: noindex, nofollow como um cabeçalho de resposta HTTP. Funciona em qualquer tipo de recurso que o servidor retorna — HTML, PDF, imagem, vídeo, JSON, qualquer coisa. Configurada no servidor (Apache, Nginx, edge headers do Vercel, Cloudflare Workers) ou via API de resposta do framework.

Quando robots meta é a escolha correta

  • Exclusão de página única: uma página específica que você quer fazer noindex. Adicione a meta tag ao template daquela página, implante a mudança.
  • Páginas controladas por template: quando a decisão de noindex é feita por tipo de página (por exemplo, todas as páginas /thank-you/ devem ser noindexadas). Adicione a meta tag dentro do template de layout que essas páginas usam.
  • Decisões dinâmicas: quando noindex depende de dados em tempo de execução (por exemplo, noindex em páginas com menos de 200 palavras). A meta tag é renderizada condicionalmente no template.
  • Quando você não tem acesso à configuração do servidor: hospedagem compartilhada, CMS bloqueado, deploy de agência onde você pode editar templates mas não htaccess. A meta tag é sua única opção.

Quando X-Robots-Tag é a escolha correta

  • Recursos não-HTML: PDFs, imagens, endpoints JSON, sitemaps. Você não pode adicionar uma meta tag a um PDF. X-Robots-Tag na resposta HTTP é a única forma.
  • Exclusão baseada em padrões: "noindex tudo em /admin/*" ou "noindex cada arquivo .pdf". Configure uma vez no servidor, aplica-se a toda URL correspondente para sempre. Muito mais limpo do que editar 200 templates.
  • Exclusão em larga escala: 10.000 URLs geradas dinamicamente que não devem ser indexadas. Um único bloco de location do Nginx vence um condicional em template.
  • Quando você quer defesa em profundidade: combine X-Robots-Tag no servidor com robots meta no template. Qualquer camada detecta o noindex; ambas as camadas significam que um bug no template não pode re-indexar a página acidentalmente.

O que ambas podem definir

Ambos os mecanismos aceitam o mesmo conjunto de diretivas. As mais comuns: noindex (não indexar), nofollow (não seguir links desta página), none (= noindex, nofollow), noarchive (não mostrar versão em cache), nosnippet (não mostrar snippet no SERP), max-snippet:N (limitar comprimento do snippet), max-image-preview:standard|large|none (controlar pré-visualizações de imagem em AI Overviews — relevante para trabalho GEO 2026), max-video-preview:N (limitar comprimento da pré-visualização de vídeo), unavailable_after:date (auto-noindex após uma data).

Google lê as mesmas diretivas independentemente de qual mecanismo as entrega. A escolha do mecanismo é sobre escala e tipo de recurso, não sobre suporte a diretivas.

Como configurar X-Robots-Tag em plataformas comuns

Vercel (vercel.json)

Use um bloco [[headers]] com um padrão source e uma entrada values para X-Robots-Tag. Exemplo: [[headers]] source = "/admin/(.*)" [[headers.values]] X-Robots-Tag = "noindex, nofollow". Aplica-se a todas as URLs que correspondem ao padrão.

Netlify (netlify.toml)

Bloco [[headers]] com um glob de caminho for e X-Robots-Tag definido em values. Exemplo: [[headers]] for = "/admin/*" [headers.values] X-Robots-Tag = "noindex, nofollow".

Apache (.htaccess)

<FilesMatch "\.pdf$"> Header set X-Robots-Tag "noindex, nofollow" </FilesMatch> para correspondência de padrão de arquivo. Ou use <Location /admin> Header set X-Robots-Tag "noindex, nofollow" </Location> para correspondência de caminho.

Nginx

location ~ /admin/ { add_header X-Robots-Tag "noindex, nofollow"; } dentro do bloco server. O location ~ faz correspondência por regex; use location ^~ para correspondência apenas de prefixo.

Cloudflare Workers / Edge

Modifique os headers de resposta no script do worker: response.headers.set('X-Robots-Tag', 'noindex, nofollow'). Útil para sites onde o servidor de origem não consegue emitir o header facilmente.

Verificando se o header está configurado

curl -I https://example.com/page retorna todos os headers de resposta, incluindo X-Robots-Tag. Procure pela linha X-Robots-Tag na saída. Se estiver ausente, o header não está sendo definido.

Para verificação no Search Console: a ferramenta de Inspeção de URL mostra as diretivas que o Google captou tanto da meta tag quanto do HTTP header. Se qualquer uma das camadas define noindex, o Google não indexa nada. Vale a pena verificar ambas as camadas porque um CDN mal configurado pode remover headers silenciosamente.

O padrão de defesa em profundidade

A configuração de produção mais robusta usa ambas. X-Robots-Tag no nível do servidor para o padrão de caminho (por exemplo, /admin/*) mais meta robots no nível do template na <head> da página para as mesmas páginas. Duas camadas significam que um bug de template ou uma misconfiguration de CDN não conseguem reindexar acidentalmente páginas que deveriam ser privadas.

É assim que a seção admin deste site está configurada: vercel.json define X-Robots-Tag: noindex, nofollow em /admin/*, E o template AdminLayout emite <meta name="robots" content="noindex, nofollow"> na head. Camadas de proteção redundantes.

Erros comuns

  • Adicionar noindex a uma página que já está bloqueada por robots.txt. Disallow em robots.txt impede que o Googlebot busque a página, então nunca vê a diretiva noindex. A página pode acabar indexada sem snippet porque o Google viu a URL em outro lugar mas não consegue buscá-la. Remova a regra Disallow para que o bot consiga buscar + ver o noindex.
  • Configurar noindex via meta tag em HTML renderizado por JavaScript. Alguns bots executam JS, outros não. A aposta segura é renderizar o meta tag noindex no servidor, OU um X-Robots-Tag no cabeçalho HTTP que não exige execução de JS.
  • Configurar noindex em uma página que tem backlinks. Google vai respeitar noindex, mas o link equity desses backlinks é desperdiçado. Melhor fazer um 301 da página para uma URL relacionada que absorve o equity.
  • Esquecer que X-Robots-Tag é por-resposta, não por-servidor. Hits de cache em CDN às vezes removem cabeçalhos customizados; verifique com curl após o deploy.

O resumo

robots meta tag: por-página, no HTML, editar no nível do template. X-Robots-Tag: por-resposta, no cabeçalho HTTP, editar no nível do servidor. Ambos funcionam para HTML; apenas X-Robots-Tag funciona para não-HTML. Use ambos quando o noindex importa.

Leitura adjacente: 410 vs 404 aborda o caso de aposentadoria (URLs desaparecendo); 301 vs 302 vs 307 vs 308 aborda o caso de redirecionamento (URLs se movendo). Juntos com noindex, são as três ferramentas primárias para dizer ao Google o que fazer com uma URL.

< BACK