Generated or cached robots.txt
The file is produced at request time and may be cached. What you edited and what is served can differ.
On WordPress, crawler access is decided by a stack: a generated robots.txt, an SEO plugin, a security plugin, a cache, a host and often a CDN. Any layer can override the one above it, and usually nobody chose the result.
WordPress rarely serves a static robots.txt. It is generated, and an SEO plugin usually manages it. A security plugin may add its own rules on top. A caching layer can serve a stored copy of any of it. The host may add rules of its own, and a CDN may add more.
The result is that the same site can be restrictive at one layer and permissive at another, and the layer that wins is not obvious from any admin screen. It is also why plugin settings appear to revert: another layer is producing the output.
This audit works from the outside in. It records what an identified automated client actually receives, then identifies which layer the behaviour appears to originate at, so the fix is applied where it will hold.
The file is produced at request time and may be cached. What you edited and what is served can differ.
SEO plugins commonly own robots output and directive tags. Their settings can be overwritten by an update, an import or another plugin.
Security plugins may restrict automated clients as a category, which can affect AI retrieval agents alongside the traffic they were aimed at.
A cache can serve an older policy or an older page to an automated client long after the source changed.
Managed hosts and CDNs add their own automated-traffic handling, independent of anything in WordPress.
Directives applied per template or per post type restrict use separately from crawler access, and are easy to apply more broadly than intended.
Observed behaviour first, then the layer it appears to originate at.
The served robots policy graded across the frozen panel, with the exact source line behind every verdict.
What our identified crawler received on the homepage and a representative set of templates.
Whether an observed restriction appears to originate at the generated file, a plugin, the cache, the host or the CDN.
What is present before JavaScript runs, since that is what a non-rendering fetcher receives.
noindex and nosnippet signals observed on the templates tested.
The chain an identified automated client experiences, including the URL finally reached.
What is restricted and at which layer it appears, so the change is made where it will actually hold.
The precise robots lines, plugin settings, header or cache changes, written for your developer or hosting company.
Findings that belong to the host or CDN, described so you can raise them as a support request without translation.
Primary content restrictions first; secondary and operational paths after.
The Full AI Access Audit includes a free re-check after your fixes, which matters most where settings have reverted before.
Every item is tied to what was observed, so a plugin is never blamed on a hunch.
Delivered remotely; no admin login is required for the audit itself.
Access is necessary for retrieval and citation but does not guarantee either. We report what Digital Dominator’s identified audit crawler observed; that is evidence about our crawler and is never presented as proof of another provider’s crawler behaviour, and we do not request from a vendor network or impersonate a vendor crawler. Training crawlers, search and discovery crawlers, user-triggered fetchers and data-use controls are not interchangeable and are graded separately. llms.txt is optional and emerging, not a ranking requirement. One discipline is worth stating for WordPress specifically: we do not name an individual plugin as the cause of a restriction without evidence. Where behaviour is consistent with a plugin or host layer, that is reported as an observation for your team to confirm.
Start with how to check whether your site is blocking AI, then the 21 AI crawlers explained for which agents actually matter. Pricing and method are on the central AI Access Audit page.