Skip to content

How to Control the OpenAI Crawlers With robots.txt: A Guide for Growing Businesses

A bigger site means a more precise robots.txt. Here is how to control each OpenAI crawler by path, keep it consistent, and avoid the traps.

John Cravey with AIFounder9 min readUpdated Jul 6, 2026

A one-page business can control the OpenAI crawlers with two lines in a file and never think about it again. A growing business with dozens of pages, several sections, and maybe a subdomain or two cannot, and not because the rules changed. It is because you now have structure worth being precise about: content you want learned from and content you want protected, a main site and maybe a shop or a blog on their own hosts, and a rate of change that makes drift a real risk. robots.txt becomes a configuration to manage deliberately, not a one-line fix to set and forget.

Free estimate · 2 minutes

AI search is already sending buyers. Be citable.

Build the estimate to see the AI-visibility work we would ship for your site in the first thirty days. Sixty seconds, no opt-in.

The plain-English version

robots.txt is the file that tells crawlers what they may access, and OpenAI runs several crawlers each controlled by its own named group in that file (the crawler docs). For a growing business, two capabilities of the file become important that a tiny site never needs. First, rules apply by path, so you can allow a crawler on most of your site and block it from specific directories, which is how you protect a paid or proprietary section without hiding the rest. Second, the file is per-host, so each subdomain needs its own, which is a common gap once a business grows a shop or a blog on a separate host.

The mental model that keeps this manageable is to treat robots.txt as a small piece of infrastructure configuration, the same way you would treat any other setting that affects your whole site. It has a correct state, defined by a house standard you write down, and the job is keeping every host in that state as the site changes. The failure mode at your size is not usually a wrong decision, it is drift: a subdomain that never got the standard, a section that changed structure so the old path rule no longer matches, or a replatform that reset the file to a default.

The rules are the same; the site got structured enough that precision and consistency now matter.

The precedence and path rules you need

Two technical rules do most of the work. The first is precedence: a named group for a specific crawler wins over the wildcard User-agent: * group. So if a broad Disallow exists, an explicit OAI-SearchBot allow group overrides it and keeps you findable, which is the safeguard every growing site should have in place deliberately rather than by luck. The second is path matching: within a crawler's group, Allow and Disallow take paths, so Disallow: /members/ blocks just that directory while Allow: / permits the rest. Combining them lets you express a real policy, like allow training everywhere except the paid library, in a few precise lines.

Getting these two rules right is what separates a robots.txt that expresses your actual intent from one that vaguely gestures at it. A growing business often has a genuine policy in mind, keep us findable, let AI learn from the public content, protect the paid section, but if the file is not written with named groups and path-scoped rules, that intent is not actually encoded. The audit question is always: does this file, read literally by a crawler, produce the behavior we intend, on every host. Often it does not, and the gap is invisible until someone checks.

The technical version: a managed configuration

Here is a house standard for a growing business: findable everywhere, training allowed on public content but blocked on a protected library, with the sitemap declared. Adjust the paths to your structure, and deploy the same pattern on every host.

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Allow: /
Disallow: /resources/premium/
Disallow: /members/

Sitemap: https://www.yourbusiness.com/sitemap.xml
A growing-business standard: findable everywhere, training scoped, sitemap declared. Deploy an equivalent file on every host, including subdomains.

OAI-SearchBot is allowed across the whole site, protecting the search visibility covered in the growing-business search guide. GPTBot is allowed generally and blocked on the protected directories, which is the training decision covered in the growing-business training guide. The Sitemap line is doing real work at your size, because it is how crawlers discover the deep pages your homepage does not link directly. Remember that this file must exist, in an equivalent form, on every host: your main domain, and any shop, blog, or app subdomain, each with its own sitemap URL.

The work is consistency across hosts and over time, not any single clever rule.

A worked example: a business with a shop subdomain

Make the per-host rule concrete, because it is the trap that catches the most growing businesses. Picture a company with its main marketing site at www.example.com and an online store at shop.example.com, on a separate platform. The marketing team, doing everything right, sets a clean robots.txt on the main domain: OAI-SearchBot allowed, GPTBot decision made, sitemap declared. Everyone considers the job done. But shop.example.com is a different host, so it has its own robots.txt, managed by the e-commerce platform, and nobody ever looked at it. It might be blocking crawlers by default, or exposing checkout paths it should not, or simply carrying whatever default the platform ships. The store, which is where the actual transactions happen, is completely unmanaged.

The fix is to treat every host as its own site for this purpose. Inventory your hosts, the main domain and every subdomain, the shop, the blog, the help center, the app, and confirm each one has a correct robots.txt with its own sitemap URL. It is tedious the first time and then trivial to maintain, and it closes the single most common gap at your size. The instructive part is that nothing was wrong with the decision or the main file. The failure was purely structural: a per-host rule that the team did not know applied, leaving the most commercially important host running on an unexamined default.

Treat robots.txt like code, not content

A useful mindset shift for a growing business is to stop thinking of robots.txt as a settings page someone tweaks and start thinking of it as configuration that belongs in your deployment process. The reason is that content-style management, someone edits it when they remember, is exactly what produces drift. Configuration-style management, the file is part of how the site is built and deployed, is what keeps it consistent. In practice this means the house standard lives somewhere durable, new hosts get it as part of being set up, and any change to the file is reviewed the way a code change would be, rather than quietly edited in a CMS by whoever had access.

This is also what makes the file survive the events that most often break it: replatforms, CMS migrations, and new subdomains. If robots.txt is treated as content tied to a particular platform, it vanishes the moment you change platforms. If it is treated as a standard you deploy, it comes along. Growing businesses that adopt this discipline early avoid the slow accumulation of host-by-host inconsistency that otherwise sets in as the site sprawls, and they make the quarterly verification a quick confirmation rather than a fresh investigation into what each host is currently doing.

The sitemap's quiet importance at your size

The Sitemap directive in robots.txt punches above its weight for a growing business, and it is worth understanding why. As your site grows, more and more of your pages are not one click from the homepage: the deep service pages, the location pages, the individual resource entries. Crawlers discover those pages partly by following links and partly by reading your sitemap, and the sitemap is the reliable path for the ones that are not well-linked. Declaring the sitemap in robots.txt is how you point every crawler, including OpenAI's, at the full inventory of pages you want discovered, rather than hoping they find their way through your navigation.

The practical discipline is to make sure the sitemap is both declared in robots.txt on every host and actually current, listing your new and deep pages. A stale sitemap that predates your last several service pages quietly hides exactly the deep content that live buyers ask about. So the sitemap line in robots.txt and a genuinely up-to-date sitemap file work as a pair: the line tells crawlers where to look, and the file tells them what is there. For a growing business, keeping that pair honest is one of the higher-leverage, lower-effort things you can do to make sure your whole site, not just the front door, is discoverable.

The common thread across everything above is that a growing site fails at robots.txt through structure and drift, not through bad decisions. The team usually knows what it wants. What it lacks is a mechanism to make sure the file expresses that intent on every host and keeps expressing it as the site changes. That is why the answer at this size is process, a written standard, per-host deployment, and re-verification on change, rather than a cleverer file. The precision matters, but consistency is what actually protects you.

The mistakes that catch growing businesses

  • A perfect main file, a forgotten subdomain. robots.txt is per-host. A shop or blog on its own host with no file or a stale one is unmanaged, and often invisible or over-exposed.
  • Path rules that no longer match. A site restructure can leave a Disallow: /old-path/ that protects nothing, while the new path is wide open. Re-verify path rules after any restructure.
  • No named allow for the search crawler. Without it, a broad disallow anywhere catches OAI-SearchBot. Set it explicitly on every host.
  • A replatform reset the file. Migrations often drop a default robots.txt. Re-deploy the standard as part of any platform change.
  • Expecting the file to control live fetches. It does not, for user-initiated reads. Manage those through page readiness.

A quick word on verification, because it is the step growing businesses most often skip and it is what makes the difference between intending a policy and having one. After any change, confirm three things at each host: that the file is actually live at the origin, by fetching it directly rather than trusting a cached or local copy; that OpenAI has had time to process it, which takes roughly a day; and that the crawlers are actually reaching the pages you expect, which you can see if you log requests by user agent. Verification is not paranoia. robots.txt is a file that quietly does exactly what it literally says, including the parts you did not intend, so reading it back and confirming behavior is the only way to know your intent and the file's actual effect match. Especially on a multi-host site, an unverified change is a guess, and the whole point of managing this deliberately is to stop guessing about something that controls your visibility.

Who owns it, and how often to check

This does not need a new role, but it needs an owner and a trigger-based cadence. The owner is whoever controls the site and can deploy changes, usually a marketing lead working with a developer or agency. The cadence has two parts: a scheduled review, quarterly, that confirms every host still carries the standard, and a triggered check after any structural change, a replatform, a new subdomain, a CMS migration, or a new security service. The triggered check matters most, because that is when robots.txt silently drifts. Fold it into your release process so a major site change is never considered done until the crawler configuration has been re-verified.

Written down, the standard is also what lets you delegate this safely. A documented house robots.txt policy means a developer or agency can apply and verify it without re-deriving your intent each time, and a new subdomain can be brought into compliance in minutes. The alternative, a policy that lives only in one person's head, is exactly how the forgotten-subdomain and reset-by-replatform failures happen. Precision plus consistency, encoded in a written standard and checked on the right triggers, is the whole discipline at this size.

robots.txt at your size is a managed configuration: path-scoped, per-host, consistent, and re-verified on change. Get it right across every host and each OpenAI crawler does exactly what you intend. Controlling access is the foundation; being the business the model actually names is the authority work in the answer engine optimization cornerstone. If you have grown into many properties and an edge you do not fully control, step up to the mid-market robots.txt governance guide; if this is heavier than you need, the micro-business version is simpler.

Want us to audit robots.txt across all your hosts and hand you the house standard? Run discovery or see what we ship.

Answers

Frequently asked questions

Can we allow OpenAI crawlers on most of our site but block them from some sections?

Yes. robots.txt rules apply by path, so within a crawler's group you can Allow the site generally and Disallow specific directories. This lets you, for example, allow training on public content while blocking it on a paid resource library, all while keeping OAI-SearchBot allowed across the site.

Do we need a separate robots.txt for subdomains?

Yes. robots.txt is per-host, so a subdomain like shop.example.com or blog.example.com needs its own robots.txt at its own root. A common growing-business gap is a correct main-domain file while a subdomain has no file or an outdated one, leaving that host's crawler behavior unmanaged.

How do we keep robots.txt consistent as the site changes?

Treat it as a managed configuration: a documented house standard, applied to every host, checked after any replatform or CMS change, and reviewed on a cadence. Include the Sitemap directive so crawlers discover new pages, and verify changes at the origin after the roughly 24-hour processing window.

Does robots.txt control the live fetch when someone asks ChatGPT about us?

No. ChatGPT-User, the live-fetch agent, does not obey robots.txt for user-initiated actions, so that path is managed through page readiness and, if you use one, your CDN or WAF configuration, not the file. robots.txt governs OAI-SearchBot, GPTBot, and OAI-AdsBot.

How do path rules work in robots.txt?

A Disallow matches by path prefix, so a rule for a directory covers everything beneath it, and a more specific Allow can carve an exception back out. That is what lets a growing business keep gated directories out while leaving the marketing site fully readable, which is usually the right shape.

Which crawler should we be most careful not to block?

The search crawler behind ChatGPT search. Blocking it removes you from those answers entirely, and because nothing errors and no report flags it, the loss is invisible until someone thinks to check. Training is the one people mean to block; search is the one they block by accident.

How do we manage the file as the site grows?

Put it in source control, review changes like code, and verify the deployed version after each release. Once a site has multiple contributors and a CDN in front of it, the file people edit and the file crawlers read can quietly diverge, and nobody notices until visibility drops.

Should we add llms.txt as well?

It costs little and it is advisory rather than enforced. Treat it as a courtesy pointer to your best content rather than a control, and do not let it substitute for the things that actually matter: pages that answer questions directly, correct structured data, and a robots file that does not block the crawlers you want.

How do we test that our rules do what we think?

Fetch the live file, then check each crawler's user-agent against it deliberately rather than assuming. Most robots mistakes are precedence mistakes: a named group silently replacing the wildcard directives that were doing the real work. Reading the file top to bottom per crawler is the only reliable check.

Does blocking a crawler remove content it already has?

No. Every robots rule is forward-looking. Content already crawled, already learned from, or already quoted elsewhere is unaffected. If removal is the goal, robots.txt is the wrong instrument entirely and the conversation belongs with the platform's own removal process.

How often should a growing business review this?

After every site migration without exception, and otherwise once or twice a year. Migrations are where robots files get regenerated by a platform default, and a default that blocks staging paths on the old structure can block real content on the new one.

What is a sensible default configuration?

Allow the search and live-fetch crawlers everywhere. Allow training on the marketing site. Disallow training, and everything else, on gated or paid directories. Comment each group with the reason. That configuration is defensible, easy to explain, and does not cost you visibility you wanted.

Question we did not answer? Ask us directly and we will answer it here.

John Cravey, Founder
Written by
John Cravey
Founder

Founder of Frontend Horizon. Writes most of the long-form work on the FH blog.

Newer post
How to Control the OpenAI Crawlers With robots.txt: A Micro Business Guide
Older post
Multi-Agent Content Systems: Research to Published Post on Autopilot
Keep reading

More from the blog

AI·9 min

Should You Let AI Train on Your Content? A Small Business Guide

You have real content assets now. The train-or-block decision deserves a real answer, made once, deliberately, and written down.

SEO·10 min

On-Page SEO Automation: Titles, Meta, Schema, and Internal Links

The boring on-page work is where most SEO is won and lost. It is also exactly the work AI does faster than you and never forgets.

AI·10 min

AI Content Engines: Automating SEO Blog Production With n8n

A keyword goes in one end, a published post comes out the other. Here's how to build that without publishing garbage.