Technical SEO

Bot protection that lets customers, Googlebot and AI bots through

How bot defense locks out real customers, Googlebot and AI bots, and how to set it up so it only slows down attackers.

PersonGooglebotverifiedVPN userScraperChallenge?throttled
Michael WeberFirst published: November 3, 2025Last updated: November 3, 202614 min read
In short
  • More than half of web traffic comes from bots. According to Imperva, it was 53 % in 2025, including 40 % bad bots. Bot protection is therefore a must.
  • Rules that are too strict hit the wrong people. CAPTCHAs often fail even for humans, IP blocks hit VPN users, and a misconfigured firewall locks out Googlebot, AI bots and the agents of real customers.
  • A graduated defense works better. You verify wanted bots via IP lists, reverse DNS or signatures, throttle or challenge suspicious traffic, and with fewer unnecessary URLs you give all bots less attack surface.

More bots than humans

The dilemma starts with a simple number. According to Imperva's 2026 Bad Bot Report, 53 % of all web traffic in 2025 came from automated programs and 40 % from bad bots. The year before, the figures were 51 % and 37 %. The task for website owners is therefore to stop abuse without driving away real users and wanted bots.

Share of web traffic20242025
Humans49 %47 %
Bad bots37 %40 %
Good bots14 %13 %

The source is Imperva (Thales), Bad Bot Report 2025 and 2026. Imperva does not state the share of good bots explicitly; it is the remainder. The share varies by industry. For travel websites, Imperva's blog on the 2025 report put the share of bad bots at 48 %, while the press release from the same day says 41 %.

What do bad bots cost?

Bad bots scrape prices, test stolen credentials (credential stuffing), take over customer accounts and put load on servers. Reliable cost figures come almost exclusively from vendors of bot defense. A white paper by F5 from March 2025 works through an example. A large online retailer with 31 million customer accounts and 54 US dollars of monthly revenue per account loses an estimated one million US dollars a year to bot attacks. F5 used its own calculator to model the benefit after switching to modern bot defense.

Item in year oneAmount according to F5Where it comes from
Cost savingsaround $930,000Lower operating costs thanks to blocked bots
Avoided revenue lossalmost $50,000Fewer outages caused by bot traffic
Customer retention$200,000 to $1,000,000Less churn due to a poor experience
More conversions$1,600,000Less friction for real customers
Total after year onealmost $3,600,000Almost $19.5 million cumulatively over five years, including almost $4.9 million in cost savings

These are a vendor's projections for its own product. What is interesting is where the largest item comes from. Most of the gain comes from less friction for real customers, in other words from a defense that lets the right people through.

AI crawlers as a new load

AI services have added a new kind of bot traffic. According to OpenAI, ChatGPT had 100 million weekly users in November 2023, 400 million in February 2025, more than 800 million in October 2025 and 900 million in February 2026. The crawlers behind these services fetch many pages and send few visitors back. Cloudflare measures this as the ratio of crawls to referrals.

ProviderCrawls per referred visitor, July 2025
Anthropic38,065:1 (286,930:1 in January 2025)
OpenAI1,091:1
Perplexity195:1
Google5.4:1

Cloudflare itself points out that the Claude app sends no referrer, so the figures for Anthropic may be too high. Current figures are on Cloudflare Radar under AI Insights.

Read the Docs described in July 2024 how expensive this can get for small websites. A single crawler downloaded 73 TB of zipped HTML files in May 2024, almost 10 TB in one day, and caused more than 5,000 US dollars in bandwidth charges. After the team blocked AI crawlers, bandwidth fell by 75 %, from around 800 GB to around 200 GB a day. Had all this traffic hit its own servers, it would have cost around 50 US dollars a day according to Read the Docs, or about 1,500 US dollars a month.

Every website owner therefore faces a choice between blocking AI crawlers and being missing from AI answers, or allowing them and carrying the load. There is a third way, described further down in the section on attack surface.

When defense hits the wrong people

In the fight against bots, many websites become their own opponent. Every hurdle that stops a bot also costs a share of real visitors. CAPTCHAs show this most clearly.

MeasureEffect on usersEffect on accessibility
Text CAPTCHAAround 8.66 % mistype their first attempt, 0.75 % fail twice in a row (Baymard, 1,027 test participants, 2018)Image CAPTCHAs exclude blind and visually impaired users if there is no alternative
Case-sensitive CAPTCHAThe first-attempt error rate rises to around 29.45 % (Baymard)Worse for everyone, more frustration
Audio CAPTCHABlind users solved 43 % at the first attempt, sighted users 39 % of audio and almost 80 % of image CAPTCHAs (Bigham and Cavender, CHI 2009). Three people gave the same answer to audio CAPTCHAs in only 31 % of cases (Bursztein et al., 2010)Intended as an alternative for visually impaired users, but often fails
Hard IP blocksHit shared networks, VPNs, corporate gateways and services such as iCloud Private RelayLock out users who rely on privacy tools

A Fastly survey of 881 US online shoppers found that 18.7 % give up after a failed CAPTCHA. This is also a vendor survey, but it points in the same direction as the studies.

VPN users and corporate networks

Many people browse via a VPN, for privacy reasons or because their employer requires it. According to Security.org, 42 % of US adults used a VPN in 2026, up from 32 % in 2025. These users share a few IP addresses with many others, including attackers. Cloudflare writes that visitors from shared networks, VPNs and Tor often have a poor IP reputation and are therefore more likely to see a challenge page. The same applies to corporate gateways and mobile networks that bundle many users behind one address. What is meant to keep bots out then keeps real customers out too.

What does bot protection mean for SEO and GEO?

For search engines and AI services, bot defense is a silent source of errors. robots.txt may allow a bot while the firewall or the CDN's bot protection turns it away with a challenge page or status 403. Googlebot then gets a check page instead of your page, and AI services cannot fetch your content.

  • If you need less crawling for a short time, Google says to send 500, 503 or 429 instead of 200, ideally with Retry-After. Google warns that this should not last longer than one or two days, otherwise the website suffers in Google products.
  • According to Google, 403 and 404 are unsuitable for throttling. Google treats them as the answer for the URL, with consequences for indexing.
  • Check in your log files whether Googlebot and the AI bots you want to allow get status 200. The guide Log file analysis shows how.

AI bots and Cloudflare's defaults

Many websites sit behind Cloudflare, and its defaults for AI bots have changed twice. On July 1, 2025, Cloudflare announced that it would block AI crawlers by default for new domains unless they pay content creators. Since July 1, 2026, Cloudflare splits AI traffic into three classes: Search, Agent and Training. For each class you choose whether it is blocked on all pages, only on pages with ads, or not at all.

From September 15, 2026, new defaults apply to domains joining Cloudflare. Bots in the Training and Agent classes are blocked on pages with ads, while Search remains allowed. Crawlers that combine search and training fall under the Training block. The announcement does not say whether and how existing domains are affected, so check the settings yourself.

Cloudflare also offers a managed robots.txt with Content Signals, which state whether content may be used for search (search), as input for AI answers (ai-input) or for training (ai-train). Cloudflare's default is search=yes, ai-train=no. On October 30, 2026, Google announced that it will support a shared training token in robots.txt, which is currently being drafted at the IETF. The guide AI crawlers covers which AI crawlers exist and how to control them via robots.txt, and the guide Cloudflare for SEO and GEO covers the Cloudflare settings.

Telling real bots from fake ones

Anyone can set a user agent, which is why many attackers pretend to be Googlebot. A safe bot rule only lets a bot through if it identifies itself in one of these three ways.

  1. Published IP lists. Since March 2026, Google publishes its lists at developers.google.com/static/crawling/ipranges/, split into crawlers, special crawlers, user-triggered fetchers and agents. Bing publishes bingbot.json, OpenAI publishes lists for GPTBot, OAI-SearchBot and ChatGPT-User, and Perplexity for PerplexityBot and Perplexity-User.
  2. Reverse DNS. Google recommends resolving the IP in reverse, checking the domain (googlebot.com, google.com or googleusercontent.com) and then resolving it forward. The request is genuine only if both directions lead to the same IP.
  3. Web Bot Auth signatures. Bots sign their requests with HTTP Message Signatures under RFC 9421. Cloudflare has listed such signed agents as Verified Bots since July 1, 2026. Google is testing Web Bot Auth for some AI agents, and the ChatGPT cloud browser signs with the header Signature-Agent: "https://chatgpt.com". An IETF working group is developing the standard.

This is how you check an IP from your log via reverse DNS.

# 1. Reverse lookup host 66.249.66.1 # → crawl-66-249-66-1.googlebot.com # 2. Forward lookup, the IP must match host crawl-66-249-66-1.googlebot.com # → 66.249.66.1

On Cloudflare, bot management performs this check for all bots on the Verified Bots list. A custom rule that blocks or allows everything with “bot” in the user agent bypasses it.

Graduated responses, from throttling to blocking

Good bot defense distinguishes first and decides second. Three principles help.

  1. Analyze behavior. Modern systems assess the behavior and context of a request. Cloudflare assigns a bot score for this.
  2. Respond in stages. Throttle suspicious requests, serve them cached content or challenge them before you block. Let the bots wait and the users through.
  3. Shrink the attack surface. The fewer unnecessary URLs your website has, the less good and bad bots find to fetch. More on this in the next section.
StageCloudflare toolWhen it fits
AllowVerified Bots, custom exceptionsGooglebot, Bingbot and the AI bots you want, after verification
ThrottleRate limiting rulesToo many requests from one source in a short time
Challenge unobtrusivelyManaged Challenge, TurnstileSuspicious requests. Cloudflare picks the challenge itself and so avoids CAPTCHAs; Turnstile also runs invisibly
Remember the challengeChallenge PassageAnyone who passed a challenge is not challenged again for a while, 30 minutes by default
BlockWAF rule with BlockClear attacks, known malicious sources

For users on shared networks, Privacy Pass also lets a browser prove that a human is present without identifying the person.

Using CAPTCHAs accessibly

Since June 28, 2025, Germany's Barrierefreiheitsstärkungsgesetz (BFSG) has applied, implementing EU Directive 2019/882 (European Accessibility Act). It covers many online shops, among others. The usual benchmark for websites is WCAG. Success criterion 3.3.8 of WCAG 2.2 (level AA) requires that logging in does not depend on a cognitive test such as retyping distorted characters, unless there is an alternative or help. Recognizing objects is exempt. The W3C note “Inaccessibility of CAPTCHA” explains why classic CAPTCHAs exclude people with disabilities. Cloudflare states that Turnstile meets WCAG 2.2 AA. This section is not legal advice.

Fewer URLs, less attack surface

While many websites keep building higher walls, the opposite approach often helps. Make your website less rewarding for crawlers by clearing out the maze of unnecessary URLs in which good and bad bots alike waste resources.

Google writes that websites with fewer than a few thousand URLs are usually crawled efficiently without intervention. According to Google, crawl budget becomes relevant for large websites with more than a million pages that change about weekly, and for medium-sized websites with more than 10,000 pages that change daily. Google warns that its crawlers may not explore the rest of a website if they spend too much time on URLs they should not crawl.

When filters create millions of URLs

According to Google, faceted navigation is by far the most common source of overcrawling reported by website owners. A category page with five filters such as color, size, price, availability and sort order can create thousands of separate URLs. Builtvisible describes the case of Very.co.uk with more than 11.2 million indexed URLs for around 160,000 actual pages. After the clean-up, organic revenue rose by 325 % and organic traffic by 220 %, measured against August 2012.

Why do noindex and canonical barely reduce crawling?

noindex and canonical control what goes into the index. To read them, however, a bot has to fetch the page and uses bandwidth and server capacity in the process. In its crawl budget documentation, Google explicitly says that noindex is unsuitable for this because Google still requests the page. Google also advises against using robots.txt only temporarily to reallocate crawl budget.

MethodSaves index budgetSaves crawl budgetReduces bot traffic
CanonicalYesBarely, the page is still fetchedNo
noindexYesNo, according to GoogleNo
robots.txt blockPartly, blocked URLs can be indexed without contentYesFor bots that obey it
Fewer URLs, for example via the PRG pattern or fragmentsYesYesYes

What helps in practice?

  • PRG pattern for filters. Post/Redirect/Get was originally developed to prevent duplicate form submissions. Filters run through a POST form, and the server redirects to the filtered page. Because crawlers generally do not follow POST forms, no crawlable filter URLs are created. This is a practice from the SEO community, described for example in the Seobility wiki. Google has not recommended it.
  • Block filters via robots.txt, for example with wildcards for entire parameter patterns. Google mentions this in its faceted navigation documentation, as well as URL fragments (#) for filters and status 404 for empty filter combinations.
  • Clean up internal links. Remove links to sorted or filtered variants that nobody needs to find.
  • Use parameters sparingly. Avoid session IDs and tracking parameters in internal links. The Search Console URL parameters tool no longer exists.
  • Prune content. Delete or merge pages that bring no traffic for months, and redirect them.

What have others achieved?

Greek price comparison site Skroutz cut its indexed URLs from 25 million to 7.6 million in 2018 and 2019. The team set 2.2 million internal search pages to noindex and redirected 300,000 URLs to matching categories. New URLs then reached the index within a few days instead of two to three months. In the Conductor Academy, Conductor describes how the average crawl budget of its own website rose from 27 to 253 pages a day within two years.

Research also shows how much crawling is wasted. According to the 2025 Crawl4LLM study, existing work often discards more than 90 % of the raw data collected. The authors' approach reaches more than 95 % of the best possible performance while crawling only 2.2 % of the data. At the same time, more and more websites restrict access. In July 2024, the Data Provenance Initiative found that more than 5 % of tokens in the C4 dataset and more than 28 % of its most actively maintained, critical sources were fully restricted via robots.txt. Through terms of service, as much as 45 % was restricted.

PrincipleWhat it meansWhy it matters
Less attack surfaceEvery publicly reachable URL can be a target for scraping, scanning or attacksFewer duplicates, parameter and staging URLs mean fewer targets for automated attacks
Less bandwidth and server loadFewer URLs mean fewer HTTP requests from search engines and botsThis reduces bandwidth and computing load, especially on large and dynamic websites
A clearer view for the defenseFewer unnecessary requests reach rate limiting, the firewall and bot detectionLogs, alerts and anomaly detection become cleaner

How to measure success

  • Crawl efficiency. Share of crawls on important pages out of all crawls, from your log files.
  • Bot share of bandwidth. Bandwidth of bot traffic relative to total bandwidth.
  • Error rate. Share of 4xx and 5xx responses to bots, from the logs.
  • Ratio of URLs to pages. All discoverable URLs relative to the actual content pages, from a full crawl.
  • Search Console crawl stats. Requests per day, response time and responses by status code.

Typical steps by system

  • Online shops. Block filter parameters or move them to the PRG pattern, set canonicals for product variants, handle pagination cleanly.
  • WordPress. Remove unnecessary archives, feeds and parameter URLs, use your SEO plugin's crawl optimization.
  • Enterprise CMS. Custom robots.txt rules, rebuild faceted navigation, remove session IDs from URLs.

How to proceed

  1. Review the bot and AI settings of your CDN and firewall, including the defaults that apply without any action on your part.
  2. Compare them with your robots.txt. Both should want the same thing.
  3. Check in the log files which status Googlebot, Bingbot and the AI bots you want receive. Challenge pages and 403 responses to wanted bots are errors.
  4. Only let bots through after verification via IP list, reverse DNS or signature.
  5. Wherever possible, replace hard blocks with throttling and unobtrusive challenges. Use CAPTCHAs only at sensitive points and offer accessible alternatives.
  6. Besides blocked bots, also measure false positives, meaning real users and wanted bots that get challenged or blocked.
  7. Remove unnecessary URLs, especially from filters and parameters.
  8. Review the settings regularly. Bots, providers and defaults change constantly, and some bots explicitly deserve a seat at the table.

Common mistakes

  • robots.txt allows a bot, but the CDN blocks it anyway.
  • A rule lets through everything with “Googlebot” in the user agent and opens the door to attackers.
  • Data center IPs are blocked across the board and hit the cloud agents of real customers. The guide Optimize your website for AI browsers explains what AI browsers need.
  • 403 or 404 is sent for throttling instead of a temporary 429 or 503.
  • A CAPTCHA on every product page instead of only at login and checkout.
  • Filters create millions of URLs, and the team tries to manage them with noindex and canonical alone.

Frequently asked questions

Can bot protection hurt my Google rankings?

Yes, if it locks out Googlebot. If Googlebot gets a challenge page or status 403 over a longer period, Google cannot fetch the content and in the worst case drops pages from the index. So check in the log files whether Googlebot gets status 200.

How do I know whether a Googlebot is genuine?

Check the IP against the lists Google publishes, or via reverse DNS. The IP must resolve in reverse to googlebot.com, google.com or googleusercontent.com, and that name must resolve forward to the same IP.

Should I block AI crawlers?

That depends on your goal. If you want to be mentioned in AI answers, allow the AI services' search bots and decide separately about training. At OpenAI, GPTBot (training) and OAI-SearchBot (search) are independent settings. The guide AI crawlers has the details.

Which status codes should I use to throttle bots?

For short-term throttling, Google names 429, 500 and 503, ideally with Retry-After, for no more than one or two days. 403 and 404 are unsuitable because Google treats them as the answer for the URL.

Are CAPTCHAs allowed if my website has to be accessible?

Yes, if there is an alternative. WCAG 2.2 does not allow a cognitive test at login without an alternative or help, but recognizing objects is exempt. Invisible challenges such as Turnstile usually avoid the problem. This is not legal advice.

With the Log file analysis add-on, searchVIU shows which status codes Googlebot and AI bots receive on your website, including from Cloudflare. searchVIU checks your robots.txt every 15 minutes and reports every change.

Request a demo

Sources

Retrieved on November 3, 2026. If something is out of date or missing, let us know.

  1. Imperva (Thales), 2026 Bad Bot Report: https://www.imperva.com/resources/resource-library/reports/2026-bad-bot-report/ · Data for 2025
  2. Imperva, 2025 Bad Bot Report: How AI is supercharging the bot threat: https://www.imperva.com/blog/2025-imperva-bad-bot-report-how-ai-is-supercharging-the-bot-threat/ · April 15, 2025
  3. Thales, press release on the 2025 Imperva Bad Bot Report: https://cpl.thalesgroup.com/about-us/newsroom/2025-imperva-bad-bot-report-ai-internet-traffic · April 15, 2025
  4. F5, How bad bots impact your business: https://www.f5.com/resources/white-papers/how-bad-bots-impact-your-business · March 28, 2025
  5. Cloudflare Blog, The crawl-to-click gap: https://blog.cloudflare.com/crawlers-click-ai-bots-training/ · August 29, 2025
  6. Cloudflare Blog, AI search crawl-to-refer ratio on Radar: https://blog.cloudflare.com/ai-search-crawl-refer-ratio-on-radar/ · July 1, 2025
  7. OpenAI, Scaling AI for everyone: https://openai.com/index/scaling-ai-for-everyone/ · February 27, 2026
  8. Read the Docs, AI crawlers need to be more respectful: https://about.readthedocs.com/blog/2024/07/ai-crawlers-abuse/ · July 25, 2024
  9. Baymard Institute, CAPTCHAs Have an 8% Failure Rate, and 29% if Case Sensitive: https://baymard.com/blog/captchas-in-checkout · January 18, 2018
  10. Bigham, Cavender, Evaluating Existing Audio CAPTCHAs and an Interface Optimized for Non-Visual Use, CHI 2009: https://www.cs.cmu.edu/~jbigham/pubs/pdfs/2009/audio-captchas.pdf · 2009
  11. Bursztein et al., How Good are Humans at Solving CAPTCHAs? A Large Scale Evaluation: https://www.stanford.edu/~jurafsky/burszstein_2010_captcha.pdf · 2010
  12. Fastly, CAPTCHAs are costing retailers customers: https://www.fastly.com/blog/captchas-are-costing-retailers-customers
  13. Security.org, VPN Consumer Report: https://www.security.org/resources/vpn-consumer-report-annual/ · September 16, 2026
  14. Cloudflare Docs, Privacy Pass: https://developers.cloudflare.com/waf/tools/privacy-pass/
  15. Cloudflare Blog, iCloud Private Relay: https://blog.cloudflare.com/icloud-private-relay/ · March 2, 2022
  16. Google, Reduce the Google crawl rate: https://developers.google.com/crawling/docs/crawlers-fetchers/reduce-crawl-rate · October 6, 2026
  17. Google Search Central Blog, Don't use 403s or 404s for rate limiting: https://developers.google.com/search/blog/2023/02/dont-404-my-yum · February 17, 2023
  18. Cloudflare Blog, Content Independence Day: https://blog.cloudflare.com/content-independence-day-no-ai-crawl-without-compensation/ · July 1, 2025
  19. Cloudflare Changelog, New AI traffic options: https://developers.cloudflare.com/changelog/post/2026-07-01-ai-traffic-options/ · July 1, 2026
  20. Cloudflare Docs, Managed robots.txt: https://developers.cloudflare.com/bots/additional-configurations/managed-robots-txt/ · November 2, 2026
  21. Google Search Central Blog, AI training control: https://developers.google.com/search/blog/2026/10/ai-training-control · October 30, 2026
  22. Google, Verifying Google crawlers and fetchers: https://developers.google.com/crawling/docs/crawlers-fetchers/verify-google-requests · March 20, 2026
  23. Google Search Central Blog, Crawler IP ranges move: https://developers.google.com/search/blog/2026/03/crawler-ip-ranges · March 31, 2026
  24. Bing Webmaster, Verify Bingbot: https://www.bing.com/webmasters/help/how-to-verify-bingbot-3905dc26
  25. OpenAI, Overview of OpenAI Crawlers: https://developers.openai.com/api/docs/bots
  26. Perplexity, Perplexity Crawlers: https://docs.perplexity.ai/docs/resources/perplexity-crawlers
  27. Cloudflare Docs, Verified bots: https://developers.cloudflare.com/bots/concepts/bot/verified-bots/ · November 2, 2026
  28. Cloudflare Docs, Web Bot Auth: https://developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth/
  29. Google, Web Bot Auth: https://developers.google.com/crawling/docs/crawlers-fetchers/web-bot-auth · October 13, 2026
  30. IETF, Web Bot Auth Working Group: https://datatracker.ietf.org/wg/webbotauth/about/
  31. Cloudflare Docs, Rate limiting rules: https://developers.cloudflare.com/waf/rate-limiting-rules/ · August 25, 2026
  32. Cloudflare Docs, Challenge pages: https://developers.cloudflare.com/cloudflare-challenges/challenge-types/challenge-pages/ · October 20, 2026
  33. Cloudflare Docs, Turnstile: https://developers.cloudflare.com/turnstile/ · August 14, 2026
  34. Cloudflare Docs, Challenge Passage: https://developers.cloudflare.com/cloudflare-challenges/challenge-types/challenge-pages/challenge-passage/ · May 5, 2026
  35. W3C, Inaccessibility of CAPTCHA: https://www.w3.org/TR/turingtest/ · Group Draft Note, December 16, 2021
  36. W3C WAI, Understanding SC 3.3.8 Accessible Authentication (Minimum): https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html · WCAG 2.2
  37. Barrierefreiheitsstärkungsgesetz (BFSG), German Accessibility Strengthening Act: https://www.gesetze-im-internet.de/bfsg/
  38. Google, Crawl budget management for large sites: https://developers.google.com/crawling/docs/crawl-budget · July 22, 2026
  39. Google Search Central Blog, Crawling December: Faceted navigation: https://developers.google.com/search/blog/2024/12/crawling-december-faceted-nav · December 2024
  40. Google, Managing crawling of faceted navigation URLs: https://developers.google.com/crawling/docs/faceted-navigation · December 18, 2025
  41. Builtvisible, Very.co.uk case study: https://builtvisible.com/case-studies/very-co-uk/
  42. Skroutz Engineering, SEO Crawl Budget Optimization 2019: https://engineering.skroutz.gr/blog/SEO-Crawl-Budget-Optimization-2019/ · October 30, 2019
  43. Conductor Academy, Crawl budget: https://www.conductor.com/academy/crawl-budget/ · March 24, 2026
  44. Yu, Liu, Xiong, Craw4LLM: Efficient Web Crawling for LLM Pretraining: https://arxiv.org/abs/2502.13347 · 2025
  45. Longpre et al., Consent in Crisis: The Rapid Decline of the AI Data Commons: https://arxiv.org/abs/2407.14933 · July 2024
  46. Seobility Wiki, Post-Redirect-Get: https://www.seobility.net/de/wiki/Post-Redirect-Get