By Greg Nowak. Updated 2026-07-19.
AI crawler control is not a single switch. A business may want its expertise cited in search tools, refuse model-training crawlers, reduce unnecessary server load, and keep private material private. Those goals require different controls.
The practical starting point is therefore not âblock AI.â It is deciding which content should be discoverable, which uses you want to discourage, and which URLs should never have been publicly accessible. Once that policy is clear, robots.txt, page directives, server headers, authentication, and Cloudflare can each do the job they are suited to.
Make four decisions before changing the site
Review content by type rather than applying one rule to the whole domain. Service pages, documentation, campaign previews, client portals, downloadable files, and internal search results rarely deserve identical treatment.
| Content or business goal | Sensible default | Primary control | Owner to involve |
|---|---|---|---|
| Service pages and useful articles | Allow search discovery | Crawlable, indexable, and snippet-eligible | Marketing or SEO |
| Appear in ChatGPT search but opt out of OpenAI training | Allow search; refuse training | Allow OAI-SearchBot; disallow GPTBot |
Marketing and legal |
| Public page with text Google should not quote | Keep the page crawlable; restrict selected reuse | nosnippet, max-snippet, or data-nosnippet |
SEO and content |
| PDFs, feeds, and generated exports | Decide file by file | X-Robots-Tag response header |
Web operations |
| Client, staging, preview, or confidential material | Require access control | Authentication, authorization, or removal | IT or security |
Separate ChatGPT search from model training
OpenAI currently documents three relevant user agents with different purposes. OAI-SearchBot supports ChatGPT search results. GPTBot crawls content that may be used to improve and train OpenAIâs generative models. ChatGPT-User is used for certain user-triggered visits rather than automatic web crawling.
This separation lets a business remain eligible for ChatGPT search while expressing a training opt-out:
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Disallow: /internal-search/
Disallow: /preview/
Treat this as a starting policy, not a universal file to paste into production. Confirm that the paths match the real WordPress, Drupal, or custom application structure. OpenAI also recommends allowing requests from its published IP ranges when search inclusion matters, and says a robots.txt change may take about 24 hours to reach its systems.
Most importantly, OpenAI says robots.txt rules may not apply to user-initiated ChatGPT-User requests. That is another reason confidential material needs authentication. A crawler directive is a published preference, not a security boundary.
Use each control at the right layer
robots.txt is appropriate for broad crawl instructions. It can reduce requests to low-value archives, filtered URL sets, internal search pages, and duplicate paths. It should not be used as a substitute for noindex or access control.
For Google, page-level robots directives control indexing and search presentation. nosnippet prevents a text snippet, max-snippet sets a limit, and data-nosnippet can exclude selected HTML elements. The last option can be useful for boilerplate, repeated legal copy, or text that adds little when quoted out of context.
There is an easy implementation trap here: Google can follow those directives only after crawling the page. If the URL is blocked in robots.txt, Google may never see its noindex or snippet instruction. Keep a public page crawlable when Google needs to read its page-level rules.
For PDFs and other non-HTML assets, use an HTTP response header such as:
X-Robots-Tag: noindexGoogle says no additional AI-specific markup is required for AI Overviews or AI Mode. To be eligible as a supporting link, a page must be indexed and eligible to appear in ordinary Google Search with a snippet. Good technical SEO remains the foundation: crawl access, useful text, internal links, accurate structured data, and content written for people.
Cloudflare helps enforce the policyâbut rule order matters
Cloudflare AI Crawl Control can show crawler activity, report robots.txt violations, and apply allow or block actions to individual crawlers. Blocking is implemented through a WAF custom rule, which makes the dashboard useful for ongoing operations rather than just initial configuration.
However, an âAllowâ selection does not guarantee that another WAF rule will not block the request first. Cloudflare specifically advises checking upstream custom rules when an allowed crawler still fails. Conversely, direct edits to the underlying AI Crawl Control WAF rule are not reflected back in the dashboard, even though supported custom additions can be preserved.
On Cloudflareâs free plan, crawler identification is based on user-agent strings. That is useful for known, self-identifying crawlers, but it is not strong proof of identity or a confidentiality mechanism.
Test the live result, not the admin screen
A clean rollout should have a named owner, a short policy record, and evidence from production. Check every relevant hostname, including language versions and asset domains.
- Fetch the production
robots.txtand confirm that no deployment process replaced it. - Inspect representative service pages, archives, previews, and downloadable files.
- Confirm that headers survive the CDN and are returned on the final response after redirects.
- Review Cloudflare events and origin logs for expected crawler status codes.
- Retest after CMS, CDN, firewall, or migration changes.
curl -sS https://example.com/robots.txt
curl -sS -D - -o /dev/null https://example.com/services/
curl -sS -D - -o /dev/null https://example.com/brochure.pdf
The real work is aligning content policy, CMS output, server headers, and edge security so they do not contradict one another. If nobody internally owns that join between marketing and operations, Greg can audit the current setup, document the decisions, and coordinate the rollout across WordPress, Drupal, Cloudflare, and the origin stack. See how Greg works as your digital project manager.
Related on GrN.dk
- ChatGPT Visibility Without Open Access: robots.txt Is Only the Start
- Cloudflare Page Rules Debt: The Quiet Way Business Websites Break
- AI crawler permissions now belong in a licensing register
Need help with this kind of work?
Talk to Greg about crawler control Get in touch with Greg.