429 Muitas solicitações

O que significa um status HTTP 429, como o Google trata o rate limiting e reduz o rastreamento, como isso afeta o crawl budget e como configurar o servidor para enviar 429 sem causar desindexação.

Publicado pela primeira vez: 27 de jun. de 2026 · Última atualização: 8 de ago. de 2026 · Avançado
Idiomas
2 sinais de evidência nesta página

429 Too Many Requests é o único código 4xx que o Google não trata como um erro de cliente. Quando vê um número suficiente deles, interpreta o sinal como sobrecarga do servidor — na mesma categoria dos 5xx — e reduz a taxa de rastreamento do Googlebot em todo o hostname, em vez de remover seu conteúdo. Isso faz dele a forma correta e recomendada pelo Google de desacelerar um rastreador (nunca use 403 ou 404). Mas é uma ferramenta de curto prazo: mantenha-o por algumas horas ou 1–2 dias, envie o cabeçalho Retry-After como prática recomendada e aplique-o ao tráfego correto. 429s sustentados nas mesmas URLs por vários dias ainda podem fazer com que sejam removidas do índice.

TL;DR — 429 é o único código 4xx que o Google trata como 5xx: quando encontra um número significativo de respostas 500/503/429, interpreta isso como sinal de sobrecarga do servidor e reduz a taxa de rastreamento do Googlebot em todo o hostname, em vez de remover conteúdo. É o único código que o Google recomenda para desacelerar um rastreador — nunca 403 ou 404. A documentação do Google dá a orientação de uso emergencial “algumas horas ou 1–2 dias” — não uma janela segura garantida; 429s persistentes nas mesmas URLs trazem o risco de elas serem removidas do índice, e a taxa volta a aumentar (não necessariamente de imediato ou por completo) quando o volume de erros cai. A RFC 6585 diz que uma resposta 429 SHOULD explicar a condição e MAY incluir Retry-After — enviá-lo é uma prática recomendada, não uma exigência de conformidade. Limite o tráfego correto e verifique a identidade dos rastreadores antes de criar exceções.

O que é 429 no nível do protocolo

Diretamente da especificação, nas palavras da MDN: “The HTTP 429 Too Many Requests client error response status code indicates the client has sent too many requests in a given amount of time. This mechanism of asking the client to slow down the rate of requests is commonly called ‘rate limiting.’” (tradução) «A resposta de erro do cliente HTTP 429 Too Many Requests indica que o cliente enviou solicitações demais em determinado período; esse mecanismo de pedir que o cliente reduza a taxa de solicitações é normalmente chamado de rate limiting.» Evidence for this claim A 429 response means the user sent too many requests in a given time, and the response may include Retry-After. Scope: RFC 9110 defines the status and optional Retry-After field; it does not define a universal rate threshold. Confidence: high · Verified: IETF: RFC 9110 §15.5.20 — 429 Too Many Requests

A seção 4 da RFC 6585 é mais precisa do que a maioria dos resumos. Uma representação 429 SHOULD explicar a condição e MAY incluir um cabeçalho Retry-After dando ao cliente um número concreto de segundos (a RFC 9110 também permite uma data HTTP) para esperar antes de tentar novamente — Retry-After é prática recomendada, não requisito de conformidade. A especificação também não define como identificar o cliente ou como contar solicitações; isso fica inteiramente a cargo de quem emitiu a resposta (por IP, sessão, chave de API, recurso — política de implementação, não de protocolo). Outra regra fácil de perder: a RFC 6585 diz que uma resposta 429 não deve ser armazenada por um cache. Se você encontrar um 429 que parece armazenado em cache ou reproduzido em uma origem saudável, o problema é de um intermediário (CDN, proxy), não de a origem ter decidido limitar você novamente.

Sempre expliquei isso de forma direta no meu guia Códigos de status HTTP e seu impacto em SEO: 429 é “uma forma de rate limiting para proteger o servidor porque o cliente enviou solicitações demais ao servidor rápido demais”. Formalmente, é um erro de cliente — o cliente fez algo errado ao pedir demais. Mas é exatamente nesse ponto que a história de SEO diverge da especificação.

A única exceção entre os códigos 4xx

O fato mais importante desta página: o Google não trata 429 como o restante da família 4xx. Gary Illyes escreveu uma publicação inteira no Google Search Central sobre isso em fevereiro de 2023, porque sites e CDNs suficientes estavam usando 404s de forma indevida para limitar o Googlebot e o Google precisou dizer para que parassem.

Sua regra é: “The one exception is 429, which stands for ‘too many requests’. This error is a clear signal to any well-behaved robot, including our beloved Googlebot, that it needs to slow down because it’s overloading the server.” (tradução) «A única exceção é 429, que significa “solicitações demais”. Esse erro sinaliza a qualquer robô bem-comportado, inclusive o Googlebot, que precisa desacelerar porque está sobrecarregando o servidor.» A referência de códigos de status do Google acrescenta: “Don’t use 401 and 403 status codes for limiting the crawl rate. The 4xx status codes, except 429, have no effect on crawl rate.” (tradução) «Não use os códigos 401 e 403 para limitar a taxa de rastreamento; os códigos 4xx, exceto 429, não têm efeito sobre essa taxa.»

Assim, enquanto 403 e 404 fazem seu conteúdo ser removido da Busca, 429 produz uma desaceleração temporária. O Google o agrupa literalmente com os erros de servidor: “Google’s crawlers treat the 429 status code as a signal that the server is overloaded, and it’s considered a server error.” (tradução) «Os rastreadores do Google tratam o status 429 como sinal de que o servidor está sobrecarregado, e ele é considerado um erro de servidor.» Evidence for this claim Google treats 429 as a server-overload signal that reduces crawl rate and recommends 429, 500, or 503 for temporary crawl reduction instead of other 4xx codes. Scope: Google's guidance covers Google crawler behavior and short-term overload; it does not promise indexing preservation during prolonged unavailability. Confidence: high · Verified: Google: Reduce Google crawl rate

É isso que torna 429 o irmão útil de 503 Service Unavailable (o sinal tradicional de manutenção ou indisponibilidade temporária) — e o oposto exato de 403 Forbidden, que é a ferramenta errada para rate limiting, apesar de muitos firewalls usarem esse padrão.

O impacto na taxa de rastreamento é em todo o hostname — com um limiar

É comum confundir duas escalas diferentes, então vale separá-las. A forma como você conta e identifica um limite — por IP, sessão, chave de API, recurso ou servidor — é sua política; a especificação HTTP não a define. O que o Google faz com os erros que observa é um comportamento documentado separado e depende do volume, não de uma única resposta: “Google’s crawling infrastructure reduces your site’s crawling rate when it encounters a significant number of URLs with 500, 503, or 429 HTTP response status codes.” (tradução) «A infraestrutura de rastreamento do Google reduz a taxa de rastreamento do site quando encontra um número significativo de URLs com status HTTP 500, 503 ou 429.» Depois que o limiar é atingido, “the reduced crawl rate affects the whole hostname of your site (for example, subdomain.example.com), both the crawling of the URLs that return errors, as well as the URLs that return content.” (tradução) «A taxa reduzida afeta todo o hostname, tanto o rastreamento das URLs que retornam erros quanto o das URLs que retornam conteúdo.»

Em outras palavras, se você aplicar 429 a um subconjunto de páginas (por exemplo, um caminho de API pesado) em volume real, o Googlebot reduzirá o rastreamento do hostname inteiro — inclusive das páginas que continuam retornando 200. Esse costuma ser o efeito pretendido quando o objetivo é reduzir a carga total. Mas um único 429 isolado em um caminho, por si só, não estabelece esse efeito em todo o hostname — a formulação do Google se refere a “um número significativo” de respostas de erro, não a uma única resposta.

Evidence for this claim When Google encounters a significant number of 500, 503, or 429 responses, its documented crawl-rate reduction affects the whole hostname, including error URLs and URLs still returning content; one isolated 429 does not establish that site-wide effect. Scope: hostname crawl-load incidents Confidence: high · Verified: Reduce Google crawl rate

A orientação de 1–2 dias — quando 429 fica arriscado

429 é um sinal de curto prazo, e o Google dá uma orientação concreta para uso emergencial — não uma janela segura garantida nem um limite rígido. A documentação para reduzir a taxa de rastreamento diz: “If you need to urgently reduce the crawl rate for short period of time (for example, a couple of hours, or 1–2 days), then return 500, 503, or 429 HTTP response status code instead of 200 to the crawl requests.” (tradução) «Se você precisar reduzir urgentemente a taxa de rastreamento por pouco tempo, como algumas horas ou 1–2 dias, retorne o status 500, 503 ou 429 em vez de 200 às solicitações de rastreamento.»

Depois disso, o risco aumenta, embora o Google o apresente como possibilidade, não como promessa: “We don’t recommend that you do this for a long period of time (meaning, longer than 1-2 days) as it may have a negative effect on how your site appears in Google products… if Googlebot observes these status codes on the same URL for multiple days, the URL may be dropped from Google’s index.” (tradução) «O Google não recomenda manter esses códigos por um período longo, pois a URL pode ser removida do índice se o Googlebot os observar na mesma URL por vários dias.» A referência de status diz o mesmo para 5xx e 429: “already indexed URLs are preserved in the index, but eventually dropped.” (tradução) «URLs já indexadas são preservadas no índice, mas acabam sendo removidas.»

O modelo de risco, dito com honestidade: um 429 de curto prazo cabe na janela que o Google recomenda para uso emergencial; um 429 sustentado nas mesmas URLs por vários dias é quando a linguagem do próprio Google passa a ser “pode” e “acaba sendo removida” — um risco documentado, não um resultado garantido em nenhuma direção. É a mesma dinâmica de um 503 prolongado.

A taxa de rastreamento se recupera automaticamente

O lado tranquilizador é que não existe uma penalidade que acompanhe o site. Quando os erros diminuem, o Google diz que “the crawl rate will automatically start increasing again.” (tradução) «a taxa de rastreamento começará a aumentar automaticamente». Você não precisa protocolar nada nem solicitar novamente. Observe a formulação exata: o Google diz “começa a aumentar”, não “instantly returns to your prior rate.” (tradução) «volta instantaneamente à taxa anterior». Trate a recuperação como uma direção documentada, sem prazo fixo ou ponto final garantido, não como um SLA.

Evidence for this claim Google says crawl rate automatically starts increasing after the number of overload responses falls; this describes direction, not an immediate return, fixed recovery time, or guaranteed prior crawl rate. Scope: hostname crawl-load incidents Confidence: high · Verified: Reduce Google crawl rate

(Compare isso com o problema oposto: querer que o Google rastreie você permanentemente menos. Se não for viável servir erros, o Google diz para “file a special request to report a problem with unusually high crawl rate” (tradução) «enviar uma solicitação especial para relatar um problema de taxa de rastreamento excepcionalmente alta» — um caminho manual que pode levar dias e não é garantido. Não há esse atrito na recuperação.)

Como o Bing lida com 429

Há muitos relatos de que o Bingbot se comporta de forma semelhante — 429/500/503 sinalizam sobrecarga e o Bingbot recua — embora eu não tenha conseguido confirmar de forma independente a formulação atual nas páginas de ajuda do próprio Bing nesta pesquisa (são SPAs renderizadas por JavaScript que não forneceram texto estático buscável). Trate a afirmação de paridade como um relato do setor, não como algo verificado na documentação atual do Bing. O que o Bing confirma, em sua orientação histórica, são dois controles proativos que o Google não oferece da mesma forma:

  • Crawl Control no Bing Webmaster Tools, uma grade de solicitações por segundo em que você define a velocidade do Bingbot por hora do dia.
  • A diretiva crawl-delay do robots.txt. A orientação atual do Bing Webmaster documenta valores de 1–20 segundos. Isso é específico do Bing; não limita o Googlebot.

No Bing, portanto, você pode limitar proativamente com crawl-delay ou Crawl Control, em vez de reativamente com códigos de status. (O Google aposentou seu próprio controle manual de taxa de rastreamento em 2024 e agora depende inteiramente das respostas do seu servidor.)

Observação: as páginas atuais de Crawl Control e de erros de rastreamento do Bing são renderizadas por JavaScript; a formulação sobre crawl-delay acima vem de uma publicação do próprio Bing de 2009, uma orientação ainda respeitada, não uma captura da interface atual. A afirmação de paridade do 429 e o estado atual de crawl-delay/Crawl Control precisam de revisão contra a documentação primária atual do Bing — confirme a formulação vigente no Bing Webmaster Tools antes de citar qualquer parte como atual.

Quando você enviaria 429 deliberadamente

Motivos legítimos para retornar 429 de propósito:

  • Carga emergencial no servidor — um pico de tráfego, uma migração malfeita ou uma interrupção em que você precisa que o Googlebot diminua o ritmo agora por algumas horas.
  • Proteção de APIs e endpoints que não são HTML contra abuso de rastreadores/bots — rastreadores de mecanismos de busca, rastreadores de SEO de terceiros (Ahrefs, Screaming Frog) e scrapers todos encontram limites destinados a impedir abuso.

Para que 429 não serve: bloquear permanentemente bots que você nunca quer. Se você não quer que algo seja rastreado, use uma regra de desautorização em robots.txt, não 429. Se quer manter uma página fora do índice, use noindex. 429 significa apenas “mais tarde”, não “nunca”.

429s não intencionais — os culpados habituais

Quando 429s aparecem no relatório Page indexing ou Crawl Stats do GSC sem que você os tenha configurado, a origem costuma ser uma destas — não tenho evidência sólida para uma classificação universal do que é mais comum; trate-a como uma lista de candidatos a confirmar ou excluir, não como diagnóstico:

  • Regras de WAF/firewall disparando por engano em intervalos legítimos de IP de rastreadores.
  • Limites padrão de hospedagem compartilhada ou CDN apertados demais para um rastreamento real.
  • Ferramentas de gerenciamento de bots classificando Googlebot ou Bingbot como tráfego abusivo.
  • Middleware agressivo de rate limiting destinado a abuso de API capturando seus próprios rastreadores.

Antes de alterar um limiar ou criar uma regra que isente bots de busca reais, estabeleça a proveniência — não adivinhe qual camada é dona da resposta. Colete os cabeçalhos brutos, as linhas exatas do log de solicitações (não um resumo do painel), o identificador da regra ou zona de limite que disparou, a chave do cliente contabilizada (IP, sessão, chave de API), a rota, o POP ou local da borda da CDN e a janela de tempo. Esse conjunto mostra qual camada emitiu o 429 e o que ela estava contando — só então faz sentido afrouxar o limite ou adicionar uma exceção. Verifique a identidade do rastreador com DNS reverso mais direto (o método oficial do Google), não apenas com a string de user-agent — user-agents falsificados de “Googlebot” são comuns. A aba Scripts contém os comandos exatos.

A versão curta do playbook

  1. Use 429 ou 503 com Retry-After para desacelerar um rastreador — nunca 403 ou 404.
  2. Mantenha por horas ou 1–2 dias — depois disso, URLs podem ser removidas.
  3. Lembre que a limitação é em todo o hostname e se recupera automaticamente quando os erros param.
  4. Limite o tráfego correto e verifique a identidade do rastreador antes de isentar bots.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.