Arquivo _headers no Cloudflare Pages: cache, segurança e noindex
Aprenda a usar o arquivo _headers do Cloudflare Pages para controlar cache, segurança e noindex no seu site, com seus limites reais e os erros que você deve evitar.
Você publica seu site novo numa segunda-feira. Na terça, busca o nome do seu negócio no Google e, entre os resultados, aparece um endereço estranho terminado em pages.dev com o mesmo conteúdo do seu domínio. Ninguém o criou de propósito, mas ele está ali, competindo com você.
Existe uma forma simples de evitar isso e, de quebra, melhorar a velocidade e a segurança: um arquivo de texto de poucas linhas chamado _headers.
O que é o arquivo _headers no Cloudflare Pages?
É um arquivo de texto simples, sem extensão, onde você define cabeçalhos HTTP que o Cloudflare Pages adiciona às respostas do seu site. Segundo a documentação da Cloudflare, ele deve ficar no diretório de arquivos estáticos do seu projeto (em frameworks como o Astro, a pasta public/) e a Cloudflare o processa sem publicá-lo como mais um arquivo.
Os cabeçalhos são instruções invisíveis que viajam com cada página: dizem ao navegador quanto guardar em cache, ao Google se deve indexar algo, ou quais permissões a página tem. Se você já migrou seu site como explicamos no guia de migração do WordPress para o Cloudflare Pages, este é o próximo ajuste fino.

Como se escreve uma regra?
A primeira linha é o caminho (ou um padrão) e as linhas recuadas abaixo são pares nome: valor. Um exemplo baseado na documentação:
/secure/page
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
/static/*
Access-Control-Allow-Origin: *
Estas são as peças que você precisa conhecer:
| Elemento | O que faz | Detalhe da documentação |
|---|---|---|
* (splat) | Corresponde a todos os caracteres | Somente um por URL; reutilizado como :splat |
:nome (placeholder) | Captura uma parte do caminho | Cada nome pode ser referenciado apenas uma vez |
! Nome | Remove um cabeçalho | Escreva o nome com ! na frente |
| Várias regras correspondem | Os cabeçalhos são somados | Se um se repete, os valores são unidos com vírgula |
Quais cabeçalhos vale a pena configurar?
Três usos cobrem quase todos os casos de um site corporativo: cache, segurança e controle de indexação.
Para o cache, a documentação mostra uma regra para arquivos com impressão digital no nome (os que mudam de nome quando mudam de conteúdo): Cache-Control: public, max-age=31556952, immutable sobre /static/*. Assim o navegador não volta a pedir esses arquivos. Isso soma ao que explicamos no guia de velocidade do site e Core Web Vitals.
Para a segurança, a Cloudflare exemplifica regras com X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy e Content-Security-Policy. Comece pelos mais simples e teste seu site depois de cada mudança: uma política de conteúdo rígida demais pode quebrar scripts ou fontes de que você precisa.
Atenção: copiar uma política de segurança de outro site sem testá-la é a forma mais rápida de quebrar sua própria página. Adicione um cabeçalho por vez e verifique se tudo carrega.
Como evito que meu endereço pages.dev apareça no Google?
Adicione uma regra que coloque X-Robots-Tag: noindex no endereço pages.dev do seu projeto. É um exemplo da própria documentação da Cloudflare: o caminho é https://:project.pages.dev/*, com esse cabeçalho abaixo.
O Google explica em sua documentação sobre robots meta e X-Robots-Tag que qualquer regra válida em uma meta tag robots também funciona neste cabeçalho, e que é a opção recomendada para arquivos que não são HTML, como PDFs ou imagens.
Erro comum: bloquear no robots.txt a URL que você quer desindexar. O Google só vê o noindex se puder rastrear a página; se o robots.txt a bloqueia, a regra é ignorada. Se você usa o robots.txt para bots de IA, confira também nosso guia de robots.txt e bots de IA.
Quais limites e regras de prioridade ele tem?
O máximo é de 100 regras, com um teto de 2.000 caracteres por linha. Além disso, três regras de comportamento evitam surpresas:
- Os redirecionamentos do
_redirectssão aplicados antes dos cabeçalhos, então um redirecionamento prevalece sobre uma regra do_headers. Na documentação de redirecionamentos o código padrão é 302 e são aceitos 301, 302, 303, 307 e 308. - Os cabeçalhos do
_headerssubstituem os valores padrão que a Cloudflare envia. - Não são aplicados a respostas geradas por Pages Functions. Se seu projeto as usa, defina os cabeçalhos dentro do código da Function.

Como verifico que funciona?
Publique a mudança e verifique os cabeçalhos reais da resposta, não apenas o arquivo. No navegador, abra as ferramentas de desenvolvedor, aba Rede, selecione a página ou o arquivo e veja os cabeçalhos de resposta. Se faltar algum, revise o recuo, se o caminho corresponde e se não há um redirecionamento ou uma Function interferindo.
Depois, peça ao Google que rastreie de novo o que você mudou pelo Search Console, como explica o guia de Search Console e sitemap. E se você ainda não sabe o que inclui o plano da Cloudflare que usa, aqui está o guia do plano grátis.
Em resumo
Aquele endereço pages.dev que aparecia ao lado do seu domínio se resolve com três linhas em um arquivo de texto. _headers é uma das melhorias mais baratas que você pode fazer em um site estático: melhor cache, segurança básica e controle do que o Google indexa. Se quiser que a gente deixe isso configurado e testado no seu site, conheça nosso serviço de hospedagem e domínios.
Perguntas frequentes
Onde fica o arquivo _headers em um projeto Astro?
Na pasta public/, junto com seus outros arquivos estáticos. Ao construir o site ele é copiado para a saída, e o Cloudflare Pages o lê sem servi-lo como arquivo.
Quantas regras o _headers aceita?
Segundo a documentação da Cloudflare, no máximo 100 regras, e cada linha pode ter até 2.000 caracteres contando espaços, nome e valor do cabeçalho.
Posso evitar que meu endereço pages.dev apareça no Google?
Sim. A própria documentação da Cloudflare propõe uma regra para https://:project.pages.dev/* com o cabeçalho X-Robots-Tag: noindex.
O _headers funciona se eu usar Pages Functions?
Não para as respostas geradas por uma Function. Nesse caso, os cabeçalhos são definidos dentro do código da Function.
O que acontece se uma URL tem uma regra do _headers e um redirecionamento?
O redirecionamento é aplicado primeiro, então ele prevalece sobre a regra de cabeçalhos.
Não fique só na teoria: aplique no seu negócio
Implementamos hospedagem e domínios de ponta a ponta, com a sua operação real. A primeira conversa não tem custo.




