Rightshold™ Sign up

Answers · AI crawlers

An AI crawler is overloading my server. How do I slow it down without hurting my Google rankings?

Last updated

TL;DR: Find out exactly which bot is causing the load first, then slow only that bot, so Googlebot keeps crawling at its normal rate. Check the user agent against the operator's published IP list or reverse DNS, because scrapers borrow big-bot names. Then pick the lightest tool that bot actually honors. Anthropic says ClaudeBot supports the non-standard Crawl-delay line, and Bingbot honors it too. Google doesn't: its robots.txt docs say fields such as crawl-delay aren't supported. OpenAI's and Perplexity's crawler pages don't mention it, so for those bots use a path Disallow or a per-bot rate limit at your edge. For a short emergency with Googlebot itself, Google says to return 500, 503 or 429 with an optional Retry-After header for a couple of hours or 1 to 2 days, not longer, because URLs that keep returning errors for days can drop out of the index. One trap to avoid: a new User-agent: ClaudeBot group that holds only Crawl-delay replaces your User-agent: * rules for that bot. Copy your Disallow lines into it.

What should I check, step by step?

1. Measure before you act: group the last hour or day of access logs by user-agent token, source IP and path, and find the one or two clients behind the spike. Google says sharp crawl increases are often caused by the site itself (faceted navigation, calendars with endless date URLs), so look at which URLs are being hit too.

  1. Verify the claimed bot: compare the IP with the operator's published list (OpenAI publishes gptbot.json and searchbot.json, Perplexity perplexitybot.json, Anthropic a bots.json linked from its crawler article), or for Googlebot and Bingbot use reverse DNS plus a forward lookup. Unverified traffic using a bot's name is a scraper; block or rate-limit it without touching the real bot.
  2. Slow bots that honor Crawl-delay with a named group: User-agent: ClaudeBot then Crawl-delay: 1 (Anthropic's own example), or Crawl-delay for Bingbot. Bing's help page describes the value as a time window in which it crawls at most one URL: 5 means about 17,280 URLs a day, 10 about 8,640.
  3. Copy your rules into every named group you add. RFC 9309 says a crawler obeys the group that names it and only falls back to User-agent: * when none does, and Anthropic says rules that name ClaudeBot take priority over the general ones. A Crawl-delay-only ClaudeBot group leaves ClaudeBot with no Disallow lines at all.
  4. Don't add Crawl-delay for Googlebot. Google ignores it. If Googlebot is the cause and it's an emergency, return 503 or 429 (with Retry-After in seconds or as an HTTP date) to some crawl requests for hours, at most 1 to 2 days, and stop once the load drops. Google lowers the crawl rate for the whole hostname and raises it again on its own.
  5. Never use 401 or 403 to slow Google. Google says 4xx codes other than 429 have no effect on crawl rate, and a robots.txt that returns 4xx is treated as if there were no robots.txt at all.
  6. For bots that don't document Crawl-delay (GPTBot, OAI-SearchBot, PerplexityBot), cut the URL space with Disallow on heavy or low-value paths (search results, filters, endless calendars, raw data dumps), or put a per-bot rate limit at your CDN that returns 429 with Retry-After for that user agent and its verified IPs only.
  7. Keep robots.txt itself fast and returning 200. Google stops crawling for the first 12 hours if robots.txt returns 5xx and then uses its last good copy for up to 30 days, so an overloaded server that also fails on robots.txt pauses your Google crawling.
  8. Still overloaded? Contact the operator with log samples: Anthropic lists claudebot@anthropic.com, Google has a form for reporting an unusually high crawl rate (it can take several days and you can't request more crawling), and Bing Webmaster Tools offers Crawl Control by hour of day plus a 'Bing is crawling too much' support option.

Which crawlers honor Crawl-delay, and what slows Googlebot, Bingbot, ClaudeBot, GPTBot and PerplexityBot?

Googlebot: no Crawl-delay. Google lists the robots.txt fields it supports and says other fields such as crawl-delay aren't supported. Its levers are fixing crawl traps on your site, short-term 500/503/429 responses, and the special crawl-rate request form.

How long can I return 503 or 429 to Googlebot before it hurts my rankings?

Google's crawl-rate page says many 500, 503 or 429 responses make it slow down across the whole hostname, including URLs that still return content, and it speeds up again on its own when the errors stop.

How do I add Crawl-delay for one bot in robots.txt without dropping my other rules for it?

Say your * group has Disallow: /search/ and Disallow: /api/. If you add 'User-agent: ClaudeBot' with only 'Crawl-delay: 1', ClaudeBot now matches that group and nothing else, so /search/ and /api/ are open to it. Put both Disallow lines under the ClaudeBot group as well.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “After my robots.txt change, which group does each AI crawler match on /search/, and is it still disallowed there?”

One-click setup

{
  "tool": "read_ai_policy",
  "arguments": {
    "domain": "example.com",
    "path": "/search/"
  }
}

Rightshold reads your published robots.txt and AI signals on request. It doesn't see your traffic, rate-limit crawlers or contact bot operators for you. Crawl behaviour is each operator's own; the support statements above are from their documentation as of November 9, 2026.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'