Gerenciamento de throttling de crawler

Tive uma pergunta geral sobre como a limitação de rastreamento (crawler throttling) é implementada.

De acordo com https://support.google.com/webmasters/answer/46820?hl=en, o status HTTP recomendado é 429 (Muitas solicitações) ou 503 (Site indisponível).

Mas lendo o código-fonte, parece que a limitação é implementada gerando um erro: discourse/lib/rate_limiter.rb at 85fddf58bc1e751d0ac5b8192a630c59a34aed7d · discourse/discourse · GitHub

Meus dias de Ruby on Rails ficaram para trás, mas estou assumindo que isso gera um 505 genérico?

O rastreador do Google não entende bem a limitação do Discourse e, no Google Search Console, posso ver que nossa indexação e, portanto, as impressões foram drasticamente reduzidas após a implementação da limitação, mas não devido à limitação, mas devido a erros de servidor 5xx.

Entendo que instâncias de limitação podem ser necessárias às vezes se causarem muito tráfego, mas eu esperava que o Discourse relatasse um HTTP 429, em vez de servir ao rastreador um Erro Interno 505.

1 curtida

Acho que o que você procura é

Que é o “global” controller rescue para esse erro que define o código de status.

1 curtida

Obrigado! Isso é tranquilizador, mas não explica totalmente por que o Google Search Console está relatando erros 5xx que se correlacionam com o momento em que o throttling foi implementado.

Ele até relata que não conseguiu buscar o sitemap.xml do discourse.

Em particular, limitar o sitemap.xml parece problemático.

Presumo que foi isso que causou a lacuna na cobertura. Eu poderia acreditar que o Google relatou incorretamente 429 como 5xx.

1 curtida