Docs / for WordPress / Troubleshooting
AEO Ultimate for WordPress
When something looks wrong
Most problems here are one of three things: rewrite rules that were never flushed, a module that is switched off, or another plugin already owning the output. Each section below tells you how to confirm which, and what to do about it.
Before working through these: open TWT AEO → Diagnostics. It captures fatal errors anywhere in the plugin’s load chain and is the fastest way to rule out a genuine crash before you go hunting for a configuration problem.
Why do /llms.txt and /aeo-sitemap.xml return 404?
Because WordPress has not been told those routes exist yet. They are virtual — no file is written to disk — so they only resolve once rewrite rules are rebuilt.
The fix, and it is always this
Go to Settings → Permalinks and click Save Changes once. You do not need to change anything on that screen — saving is what flushes the rules.
Then check all three routes resolve:
Virtual routes
/llms.txt
/llms-full.txt
/aeo-sitemap.xml
/okf/
If they still 404 after saving permalinks, your host may be caching aggressively at the edge. Purge that cache and retry. If you are on nginx without try_files falling back to index.php, virtual routes cannot work at all — that is a server configuration issue, not a plugin one.
Why is no schema appearing on my pages?
Work through these in order — the first two account for most cases.
01
The module is off. Every feature toggles independently. Open TWT AEO → Modules and confirm Schema Engine is enabled. A freshly activated install does not switch everything on for you.
02
Another SEO plugin already published it. This is by design. AEO Ultimate detects Yoast, Rank Math and AIOSEO and steps back from anything they already output — Organization, Article, Open Graph — rather than publishing a competing copy. The schema is there; it just is not ours. Use TWT AEO → Schema Detector to see which block a page is actually emitting.
03
You are looking through a tag manager. If schema is injected through Google Tag Manager it will not exist for crawlers that do not run JavaScript. AEO Ultimate renders server-side; if the Detector warns that GTM is present, make sure you are not relying on GTM-injected markup as well.
04
You are viewing a cached copy. Front-end schema is cached for one hour via the Transients API. Purge your page cache, or use TWT AEO → Bot View, which renders the page as a crawler sees it.
Why does a product say “Could not build schema for this product”?
Because the product is missing something the schema cannot honestly invent. The most common cause is no price set. A product with no price publishes no offer at all — deliberately, because an offer saying the item costs zero is worse than no offer.
Check, in this order: the product has a price; it is published rather than draft; and if it is a variable product, at least one variation has its own price. The Products Dashboard under TWT AEO → WooCommerce walks your whole catalogue and names exactly what each product is missing.
Related messages you may see, and what they mean:
“Could not resolve the product image URL”
No featured image, or it is missing from the media library
“Could not confidently match a Google Product Category”
Set it by hand rather than guessing
A coupon “cannot be described honestly”
Its rules do not map to a truthful price spec — the Coupons tab gives the reason per coupon
“Expired. Its end date has already passed”
Working as intended — expired promotions are not published
Why are the WooCommerce screens missing?
The commerce screens — WooCommerce, Smart Collections, Promotions — only register when WooCommerce is active. If they are absent, WooCommerce is deactivated or not installed. Activate it and they appear on the next page load.
If you also run AEO Ultimate for WooCommerce, this plugin stands down automatically so nothing is published twice. That is expected, not a fault.
Why did an AI action fail?
AI features use a key you supply. Nothing is sent anywhere until you configure a provider and trigger an action, so a failure is almost always one of: no key saved, a key without credit at the provider, or a provider outage.
Check the key under TWT AEO → Settings, then confirm the balance in your own account with Anthropic, OpenAI, Google, Perplexity, xAI or Mistral. Because you pay the provider directly at their rate, a spend limit or exhausted balance on their side surfaces here as a generic failure.
“Request failed or timed out. PageSpeed can take up to a minute” is not an AI error — Google’s PageSpeed API is genuinely slow. Retry before assuming anything is broken.
Why is my author or company schema incomplete?
E-E-A-T signals come from data you have to enter once. Two places:
- TWT AEO → E-E-A-T → Company tab — publisher identity. If you see “Business Name is required”, that field is empty and nothing downstream can be built.
- Users → All Users — each writer’s credentials, expertise and sameAs links. The completeness scorecard shows who is missing what; “Fill in the missing author profiles” is pointing at exactly that.
Why is my robots.txt not showing the AI crawler rules?
Because a physical robots.txt file on disk always wins over WordPress’s dynamic one. If one exists, WordPress never gets asked, so blocked-bot rules never appear.
The AI Ready screen offers to delete it for you, after which WordPress serves robots.txt dynamically. That deletion cannot be undone, so copy anything custom out of the file first.
Will blocking AI bots affect my real visitors or Google?
No. The rate limiter matches on User-Agent against the known AI crawler list only. Ordinary browsers and traditional search crawlers such as Googlebot pass through untouched. Blocking a bot writes a Disallow entry to the virtual robots.txt and returns 403 to that agent — advisory and enforced together, because the advisory half alone is widely ignored.
Something crashed. Where do I look first?
TWT AEO → Diagnostics. The plugin arms a fatal-error catcher before anything else loads, so crashes anywhere in the load chain are captured there rather than leaving you with a white screen and no explanation.
If Diagnostics is empty and the site is still misbehaving, the problem is likely outside this plugin. Requirements are WordPress 6.2+ and PHP 7.4+ — for WordPress 7.0 and its newer data views, MySQL 8.0 and a PHP memory limit of at least 256MB are recommended. A memory limit below that is a common cause of blank admin screens on large catalogues.
Nothing here matches my problem
Then it is worth telling me, because that means the documentation has a gap. Send the URL of the page, the edition you are running and what you expected to happen — that is enough to reproduce almost anything.
Still stuck?
Message me directly — free tier included. Most replies land within the hour during Tampa working hours. Get support →