- After a migration, the first big crawl runs exactly when the new infrastructure shows its weaknesses. Because the SEO crawler is easy to spot in the log, it comes under suspicion first.
- The cause usually lies elsewhere, for example in the cache, in connection limits, in the code or in bot traffic nobody planned for.
- What helps are shares instead of absolute numbers, a cleanly segmented log and alignment with the infrastructure team before go-live.
The typical pattern
The migration goes live in the early afternoon, and the manual tests look good. In the evening, the crawl starts for the check. Shortly afterwards the website slows down, and the SEO crawler is clearly visible in the log.
| Time | What happens |
|---|---|
| Go-live, 2 pm | The migration goes live, manual tests show nothing unusual |
| 6 pm | The SEO crawl begins. For the first time, something systematically fetches all page types |
| 8 pm | Response times rise. The crawler stands out in the log and is taken to be the cause |
| 10 pm | The crawl is stopped and the load drops. Everyone assumes the crawl was to blame |
| Next day, 11 am | The problems return, even though the crawler has been off for more than twelve hours |
The shared time window leads to the wrong conclusion. Migration, crawl and problems fall on the same day, so the crawl must be to blame. In our experience from many migrations, the crawl comes under suspicion in most cases, regardless of the speed and size of the website. We have not counted this systematically. Often more than an hour is lost. Teams search in the wrong place for days, and the actual post-go-live check stalls.
Why does this happen after migrations in particular?
On a well-established website, an SEO crawl creates hardly any noticeable load. The infrastructure is tuned, the caches are warm and the traffic patterns are known. After a migration, a lot is new, from the CMS to hosting and CDN to templates and security rules. The crawl is often the first traffic that also fetches rarely visited pages and uncached paths. It checks whether redirects are correct, whether pages respond with 200, whether internal links, canonicals, hreflang and structured data are intact and whether load times are acceptable.
1. Capacity does not match production
Staging environments are smaller and rarely reflect real traffic. Load tests simulate people with sessions, pauses and visits to popular pages. Bots fetch without pausing, bypass caches and go deep into rarely visited pages. According to Imperva's 2025 Bad Bot Report, more than half of web traffic in 2024 was automated, namely 51%. Malicious bots accounted for 37%. The figures come from a bot protection vendor. The methodology is not described in the blog post.
- Database queries that are fast with a few records time out with millions of records.
- The number of database connections is set too low for the real load.
- How the CDN handles cache misses and outages can hardly be tested on staging.
- External services only hit their limits under production load.
2. Code changes slow things down under load
Many teams use the migration to refactor code and update dependencies. This creates problems that only show up under load. These include too many individual database queries per page, loops that become too slow with thousands of records, new scripts and tracking pixels, and templates that are more expensive to render. In manual tests with a few pages, this stays invisible. The crawl then fetches archives, categories and rare parameter combinations for the first time.
3. Bot traffic nobody planned for
The old infrastructure had tuned rules for bots. On the new one, default rules often apply, which either block legitimate crawlers or let aggressive scraping through. Monitoring has no baseline yet, so it is hard to say what is normal. At the same time, scanners deliberately look for typical migration errors such as open staging URLs, missing security headers or reachable admin areas.
Why does the SEO crawler stand out first?
A professional crawler identifies itself. According to the HTTP standard, the user agent is self-reported by the client, and malicious bots like to pass themselves off as Chrome or Firefox there.
| Characteristic | SEO crawler | Disguised bots |
|---|---|---|
| User agent | Unique and documented | Pretends to be a browser |
| IP addresses | Fixed, published addresses | Rotate across many addresses |
| Pattern | Steady and predictable | Imitates human behavior |
| robots.txt | Followed | Often ignored |
| In the log | Found immediately | Hard to detect |
In our experience, the SEO crawler usually accounts for only 2 to 5% of total traffic in the time window of such an incident. This, too, is a value from project experience and not a systematic measurement.
When the call comes
If the infrastructure team gets in touch, stop the crawl immediately. That is not an admission of fault. You separate the variables and show willingness to cooperate. After that, five questions help with the diagnosis.
- What share of all requests did the crawler have? “1,000 requests per minute” sounds like a lot. “2.3% of traffic” puts the number into context.
- How many requests were for HTML and how many for assets? A rendering crawler also loads images, CSS, JavaScript and fonts. Load on the origin comes mainly from the HTML requests; assets usually come from the CDN.
- When exactly did the problems start? Often the start was before the crawl or between go-live and the crawl.
- Have the problems persisted since the crawl stopped? Then it was not the cause.
- How is traffic distributed across all user agents? Looking at all bots shows more than “crawler vs. the rest”.
Segmenting the log correctly
| Segment | What to look for |
|---|---|
| Country of origin | Suddenly a lot of traffic from countries without customers points to scrapers, new AI bots or a routing problem in the CDN |
| IP ranges | Thousands of similar requests from many different addresses suggest distributed bots or residential proxies |
| URL patterns | Many requests to login, internal search, APIs or forms point to attacks or targeted scraping |
| Timing patterns | Exactly equal intervals or constant load without pauses are typical of automation |
| User agent vs. behavior | A “Chrome on Windows” with 100 requests per second from a data center is not a human |
Usually one of these causes then emerges. CDN rules were not carried over properly, and traffic bypasses the cache. The database has too few connections. AI bots or distributed scrapers create a lot of load. Sometimes new code only slows down with real data volumes. How to identify bots in the log is explained in the log file analysis guide.
Aligning before go-live
Weaknesses in a new infrastructure can hardly be ruled out in advance. But you can avoid the crawler getting the blame. Clarify these points with the infrastructure team beforehand.
- A written crawl plan with start time, targets, duration and the expected number of requests.
- IP addresses, user agent and maximum rate, so the team can allow and monitor the crawler.
- Contacts on both sides and thresholds at which the crawl is throttled or paused.
- A short note that the crawler stands out in the log but only makes up a small share of bot traffic.
- Agreed diagnostic steps for an emergency: check shares, HTML vs. assets and origin before anyone names a cause.
Testing bot load on staging
Classic load tests usually leave out bots. So let the crawler run on staging at a much higher rate. Around 20 times normal operation has proven useful. Together with the load test for users, this reveals bottlenecks in capacity, cache and database before go-live. On staging the crawl can be tough; in production it stays gentle. More on this in the SEO check before go-live guide.
In the week of the migration
- Wait a few hours after go-live until caches are warm and monitoring has its first baseline values.
- Start at a reduced rate, even if the old website could handle more. Agree the speed with the infrastructure team in advance.
- Watch response times and throttle as soon as they rise.
- For large websites, crawl in sections, starting with the most important areas.
Documenting afterwards
After an incident, record when the migration went live, when the crawl started and stopped, and when the problems began and ended. Add the crawler's share of traffic, the actual cause and the measure that fixed it. This note protects the next crawl and builds knowledge within the team.
What does a considerate crawler do?
| Behavior | Why |
|---|---|
| Starts at a low rate | The infrastructure team can increase it after alignment |
| Throttles on 429, 503 and repeated 500 | These codes signal overload. Google also lowers its crawl rate on these codes. |
| Identifies itself clearly | A fixed user agent and documented IP addresses make allowing and monitoring easier |
| Follows robots.txt | Blocked areas remain untouched (RFC 9309) |
| Can be configured per website | Rate and time windows fit the respective infrastructure |
AI bots and robots.txt
According to OpenAI and Anthropic, GPTBot and ClaudeBot follow robots.txt. Anthropic also supports Crawl-delay (as of 7 April 2026). OpenAI describes how to control GPTBot and OAI-SearchBot via robots.txt and publishes the IP ranges. According to OpenAI, the rules may not apply to ChatGPT-User, which fetches pages on behalf of a user. Load from AI bots comes mainly from volume and frequent fetches. You check whether a bot is genuine via the published IP ranges. More on this in the AI crawlers guide.
Common mistakes
- Starting the crawl at full rate directly after go-live.
- Comparing absolute request numbers instead of shares of traffic.
- Counting a rendering crawler's asset requests as load on the origin.
- Running load tests with simulated users only.
- Only sharing the crawler's IP addresses and user agent after the first incident.
- Not checking after the stop whether the problems persist.
FAQ
Can an SEO crawler take down a website?
At too high a rate on weak infrastructure, it can create noticeable load. After migrations, in our experience, the cause usually lies elsewhere. The crawl only makes it visible.
How soon should I crawl after a website migration?
Start after a few hours at a reduced rate and only increase it once response times are stable. Which speed is right depends on the infrastructure. Agree it with the infrastructure team.
What do I do if IT blames the crawler?
Stop the crawl immediately and then ask about its share of traffic, HTML vs. assets, the exact start time and whether the problems persist without the crawl.
Which bots create load after a migration?
Often AI bots, scrapers with rotating IP addresses and scanners looking for typical migration errors.
Should I test the crawler on staging?
Yes. At an increased rate, a crawl on staging reveals bottlenecks that a load test with simulated users does not find.
Sources
Retrieved on October 15, 2026. If something is out of date or missing, let us know.
- Imperva, 2025 Bad Bot Report (blog post): https://www.imperva.com/blog/2025-imperva-bad-bot-report-how-ai-is-supercharging-the-bot-threat/ · Apr 15, 2025
- Google, Reduce the Googlebot crawl rate: https://developers.google.com/crawling/docs/crawlers-fetchers/reduce-crawl-rate · As of Oct 6, 2026
- RFC 9110, HTTP Semantics, User-Agent: https://www.rfc-editor.org/rfc/rfc9110.html#name-user-agent · June 2022
- RFC 9309, Robots Exclusion Protocol: https://www.rfc-editor.org/rfc/rfc9309.html · September 2022
- Anthropic, Crawlers and robots.txt: https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler · As of Apr 7, 2026
- OpenAI, Overview of OpenAI Crawlers: https://developers.openai.com/api/docs/bots