Troubleshooting & FAQ
Questions from the first day, and the cases found on real sites: SEO plugins, page builders, WooCommerce, caches, shadowing files and a blocked loopback.
Updated 2026-10-08 · applies to Acid AEO 1.0.4
My files return 404
Go to Settings → Permalinks and press Save Changes once. That rebuilds the rewrite rules the virtual files depend on. If they still 404, a physical file or a server rule is answering first: see Hosting.
There is already a robots.txt, llms.txt or ai.txt on my server
The web server answers with the file on disk before WordPress runs, so the generated copy is never seen at that path. The audit reports No robots.txt on disk or No conflicting llms.txt on disk. Delete or rename the file and the generated one takes over at once.
Does it conflict with Yoast, Rank Math or another SEO plugin?
No. It detects Yoast SEO, Rank Math, SEOPress, All in One SEO, The SEO Framework and Slim SEO, and with schema.defer_to_seo on it leaves Organization, WebSite, WebPage, Breadcrumb and Article to them. What stays on is what they do not do: FAQPage, Speakable, extended Person data, the AI files and the crawler policy.
A page you marked noindex in any of those plugins is left out of llms.txt, llms-full.txt and the Markdown endpoint. A plugin not on the list can answer through the acid_aeo_is_noindex filter. See Filters.
My page builder's shortcodes appear in llms.txt
Fixed in 1.0.2. Builders register their shortcodes only for the screens they draw, so a text file printed [vc_row …] as content. The plugin now removes anything shaped like a shortcode and keeps the prose between the tags; a tag must start with a letter, so a footnote like [1] survives. After updating, run wp acid-aeo regenerate.
WooCommerce: cart and checkout in llms.txt
Fixed in 1.0.2. The cart, checkout and My account pages are left out of the generated files; the shop page stays. WooCommerce marks the three noindex only at request time, so the plugin names them directly.
Pages built with Elementor, Bricks or Oxygen look empty
These builders keep the page in post meta and leave the post content empty, so the page used to be listed as a bare link. Since 1.0.2 the plugin reads the rendered content as a last resort, only for pages that nothing cheaper could describe. A builder that renders from a template still gives none: write a summary in the AI readiness box.
The sitemap line is wrong or doubled
The sitemap address is no longer guessed from the SEO plugin's name. The audit and the daily maintenance pass fetch the candidate addresses in order and store the first that answers like a sitemap, refreshed by a new audit. robots.txt gets a Sitemap: line from the plugin only when nothing else has named one.
The audit says my llms.txt was written by someone else
Fixed in 1.0.2: the check used to read only the start of the file, while llms.txt signs its last line. It now asks the Static files module, which reads both ends. If the warning remains after updating, the file has no Acid AEO marker: rename it and let the plugin write its own.
The audit shows Skipped everywhere
The site could not reach itself. A timeout, a DNS or TLS error, or a 5xx on the home page makes Loopback requests warn and skips every check that needs a fetch. A 401 or 403 is different: the file checks Fail until you pass credentials with acid_aeo_loopback_args. Details: When the site cannot reach itself.
I use a page cache; does citation tracking still work?
Server-side tracking only sees requests that reach PHP, so pages served from a full-page cache are invisible to it. The wizard detects common cache plugins and offers the browser beacon, a first-party script that reports AI-answer visits to your own REST endpoint. See Privacy and Page caches.
Does it slow the site down?
No. Generated files are cached and rebuilt only when content or settings change.
How do I stop the "Updated on" line on a post?
It is off until you enable it. To remove it site-wide, untick Show a "last updated" line on posts under Acid AEO → Settings → Content tools. To hide it on one post, tick Hide the "last updated" line on this post in the AI readiness box; that sets the _acid_aeo_hide_updated post meta. A theme can replace the line with the acid_aeo_last_updated_html filter.
Does it work on multisite?
Yes. Activate per site or network-wide. Each site keeps its own settings, events table and scheduled tasks; sites created after a network activation are prepared as they are created.
Is there a WP-CLI interface?
Yes, eight commands, including wp acid-aeo audit as a deployment gate (exit code 1 below 50). See WP-CLI.
Known limitations
- IndexNow does not read the per-post
noindexflag of your SEO plugin. It stops at the site-wide Discourage search engines option. Untick that post type under IndexNow, or turn automatic submission off and usewp acid-aeo indexnow submit <url>. - Static files need the
directfilesystem method. If WordPress would ask for FTP credentials, nothing is written and the audit says so. The virtual files keep working. - Open Graph tags are added only when no SEO plugin is detected. An SEO plugin that is installed but unconfigured leaves the head without them; set
head.og_fallbacktoonif you want ours.
Still stuck?
Ask on the support forum or write to [email protected]. Include the plugin version, your SEO and cache plugins, and the output of wp acid-aeo audit --format=json.
Found a mistake or something missing? Write to [email protected].