Directory / plugin
AEOmatic – AEO for AI Search: llms.txt, Schema & AI Crawler Check
v1.2.9 · by Tushar Makwana
Can ChatGPT, Perplexity and Google AI read your site? Check AI crawler access, add llms.txt and schema, fix AEO gaps. Free, no API key.
About this plugin
Can ChatGPT, Perplexity and Google’s AI actually read your WordPress site?
Many sites are invisible to AI search for reasons their owners never see: a CDN, firewall or security plugin quietly blocking AI crawlers; content that only appears after JavaScript runs, which the ChatGPT, Claude and Perplexity crawlers do not execute; or pages with nothing a machine can parse. AEOmatic checks for each of these, fixes what a plugin can fix, and tells you plainly about the rest.
Answer Engine Optimization (AEO), also called Generative Engine Optimization (GEO), LLM SEO or AI search optimization, is mostly good SEO done carefully, plus a few checks that are specific to AI. AEOmatic covers that AI layer and runs beside Yoast SEO, Rank Math, All in One SEO or SEOPress without touching their settings.
What you find out in the first few minutes
- Whether AI crawlers get your real pages. AEOmatic requests your pages as GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Googlebot and Bingbot, and compares each answer with a normal browser. A block, a bot-challenge page or a 404 shows up by name.
- What AI actually reads on a page: the text a crawler that does not run JavaScript receives, and the sentences that only appear after JavaScript runs.
- Your AI readiness score and the three fixes worth doing first, each linked to the page that needs it.
- Which posts are hard to quote: answers buried under filler, missing author signals, orphan pages, thin content. Some have a one-click fix.
Why site owners trust it
- No promises it cannot keep. No plugin can guarantee a citation in ChatGPT or Google AI Overviews, and AEOmatic does not claim to. It measures readiness, the part you control, and the dashboard is labelled that way.
- Every score shows its working. Each check says whether it is a direct check or a heuristic.
- Honest about llms.txt. Google has said it does not use llms.txt, and AI crawlers rarely request it so far. AEOmatic generates it automatically because it costs nothing to keep and some AI tools can use it, not because it is a ranking switch.
- Your data stays on your server. No account, no API key, no telemetry, and no external calls on the front end. The AI crawler log stores no IP addresses.
- Safe beside your SEO plugin. It never edits your titles, meta descriptions, canonicals, sitemaps or another plugin’s settings, and it resolves schema overlap on its own side.
- Clean uninstall. Deleting the plugin removes everything it created.
What it does
It does three jobs:
- Publishes the signals AI systems read. JSON-LD structured data across 21 schema types, an
llms.txtindex at your site root, a/llms-full.txtfull-text endpoint, and per-bot crawl directives inrobots.txt. - Scores how extractable your content is. A site-wide AI readiness score across three categories, plus per-post audits that name the specific thing to fix rather than handing you a number.
- Reports what actually happened. A server-side log of every recognised AI crawler request — which bot, which URL, and the HTTP status your site returned. If you are quietly serving 404s to GPTBot, this is where you find out.
It reads your page builder, not just Gutenberg
Most AI SEO plugins parse post_content and stop. If your pages are built in Elementor or Divi, or your copy lives in ACF fields, that means your schema and your scores are computed against an almost-empty string.
AEOmatic runs one normalising extraction pass that understands Gutenberg, the Classic Editor, Elementor, Divi, Beaver Builder, Bricks, Oxygen and WPBakery, plus ACF text, textarea, wysiwyg, repeater and flexible-content fields. Everything downstream — schema generation, the audit, readiness scoring, llms.txt — reads that single extraction, so a page assembled in a builder is scored on what it actually renders.
Built to sit beside your SEO plugin, not replace it
AEOmatic writes only its own settings and its own post meta. It never touches your titles, meta descriptions, canonicals or XML sitemaps, and it never modifies another plugin’s configuration.
It detects Yoast SEO, Rank Math, All in One SEO, SEOPress and The SEO Framework, can import your organisation details from whichever you run, and flags the case where two plugins would emit the same JSON-LD type on one page — with a one-click fix that adjusts AEOmatic’s output, never theirs.
Check what AI crawlers actually get
Settings pages tell you what you asked for. AI Access tells you what happens:
- Crawler check — reads the robots.txt your site is really serving (including a physical file that overrides WordPress), then requests your home page and recent pages as OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot, Googlebot, Bingbot, GPTBot, ClaudeBot and more, and compares each answer with a normal browser. A firewall, CDN or security plugin that blocks AI crawlers, a bot challenge page, or a crawler-specific noindex shows up by name.
- What AI sees — ChatGPT, Claude and Perplexity crawlers do not run JavaScript. This shows the text they get for a page and lists the sentences from your editor that only appear after JavaScript runs.
Everything included, no account and no API key
-
AI readiness audit, three levels. Site-wide across three categories (Technical readiness, Content readiness, AI crawler access), per post across five categories (Content, Trust, Authority, Entities, Technical), and a per-post 0–100 content rubric of thirteen weighted checks. Every category states whether it is a direct check or a heuristic.
-
Visual schema editor for 21 types — Article, BlogPosting, NewsArticle, TechArticle, Recipe, Review, Product, SoftwareApplication, Service, LocalBusiness, Event, JobPosting, Course, Dataset, Book, Movie, WebPage, AboutPage, ContactPage, CollectionPage, ProfilePage. Fields Google requires are marked, and every node links by @id to one Organization, WebSite and WebPage. The type is auto-detected from your content and every field is editable in the block-editor sidebar with a live JSON-LD preview.
-
Type-specific property extraction — Recipe posts get ingredients and instructions, JobPosting posts get salary ranges, Event posts get dates and venue, LocalBusiness gets address and opening hours. Not generic Article schema on everything.
-
/llms.txtgenerator — a spec-compliant Markdown index at your site root: site summary, curated key pages from your nav menu, then every published item grouped by post type. -
/llms-full.txtendpoint — the extracted body text of your published content at one URL, so an AI crawler can ingest the site in a single request. Bounded and cached so it cannot become a load problem. -
AI crawler control — per-bot Allow/Disallow toggles in
robots.txtfor 18 AI crawlers: GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User, Google-Extended, CCBot, Bytespider, Amazonbot, Applebot-Extended, meta-externalagent, Meta-ExternalFetcher, DeepSeekBot, Cohere-AI, DuckAssistBot. Twenty user agents recognised in the visit log. -
AI crawler log and breakdown — which AI bots requested which URLs, what HTTP status you served them, and when. A 404 or 403 being served to OAI-SearchBot is the kind of thing you want to know, so an Errors only filter lists exactly which URLs failed. Records bot name, URL, user agent and status only: no IP addresses, no cookies, no visitor data, nothing leaves your server.
-
Page-builder support — content is read from Gutenberg, Classic Editor, Elementor, Divi, Beaver Builder, Bricks, Oxygen and WPBakery, plus ACF text, textarea, wysiwyg, repeater and flexible-content fields. Scoring reflects what your pages actually render.
-
WooCommerce Product schema — price, availability, SKU, brand, ratings and sale dates auto-filled; variable products get AggregateOffer with a min/max range.
-
Answer-first fixes — finds answers buried below filler under a question heading (“What is X?” answered in the fourth sentence) and moves them to the top of the section in one click on block-editor and Classic posts. WordPress keeps a revision, so you can undo it.
-
AI Citation Gaps — seventeen local rules-based checks that name why a page is unlikely to be quoted: orphan pages, no opening answer, thin body, no FAQ block, no question heading, schema type mismatch, missing author signal, missing from llms.txt, low outbound links, low alt coverage, no citation hook, no related links, sibling-topic gaps by category, question headings without a snippet-length answer, steps not in a numbered list, missing meta description, buried answers. Three ship a one-click fix.
-
Entity Scanner — scans content, schema, headings and metadata for Organization, Person, Service, Product, LocalBusiness and FAQ entities, returning a coverage score with per-entity confidence, detected signals, missing signals and recommendations.
-
FAQ block — a native Q&A block producing accessible
<details>/<summary>markup, written for featured snippets. The visible Q&A carries lightweight schema.org FAQPage microdata; no FAQPage JSON-LD is added.[aeo_faq]/[aeo_qa]shortcodes for the Classic Editor. -
Setup wizard with a real first audit — six skippable steps: welcome, import from your existing SEO plugin, organisation details, AI crawler access, your first readiness audit, verify. The audit step shows your score and the three highest-value fixes with direct links, so you finish onboarding knowing what to do next.
-
SEO plugin conflict detection — detects Yoast SEO, Rank Math, All in One SEO, SEOPress and The SEO Framework, and checks whether each is currently emitting overlapping schema. One click disables only the overlapping types in AEOmatic; your other plugin’s configuration is never modified.
-
AI HTTP discovery headers —
X-AI-Crawl,X-AI-Citeable,X-Content-License,X-AI-Content-Type,X-AI-Speakableheaders plus aLink: rel="ai-context"pointer to your llms.txt. These are proposed conventions, not a ratified standard, and no AI vendor has committed to reading them. They are on by default and can be switched off under AEOmatic Settings AI discovery headers.X-Content-License(free-to-cite-with-attribution) andX-AI-Content-Type(human-authored) state a licence and an authorship claim for your content, so they are off unless you turn them on in the same section. -
Ask AI tab — type a question, then open ChatGPT, Perplexity, Google AI or Claude in a new tab with it pre-filled, to see for yourself how those engines answer. The plugin only builds the link; nothing is sent from your server.
-
Live verification panel — makes HTTP requests to your own site and shows what is actually being served: llms.txt with size and line count, robots.txt with AI bot count, schema blocks on your latest post with a direct Google Rich Results Test link.
-
VideoObject, Speakable, WebSite and WebPage schema, an author-profile panel, a wp-admin dashboard widget, and a bulk re-audit action on post list screens.
AI crawlers recognised
- ChatGPT / ChatGPT Search (OpenAI) — GPTBot, OAI-SearchBot, ChatGPT-User
- Claude / Claude Search (Anthropic) — ClaudeBot, Claude-User, Claude-SearchBot
- Perplexity — PerplexityBot, Perplexity-User
- Google AI Overviews / Gemini — Google-Extended controls Gemini training; AI Overviews retrieval uses Googlebot
- Microsoft Copilot — no dedicated AI user agent; retrieves from the Bing index via Bingbot
- Meta AI — meta-externalagent, Meta-ExternalFetcher
- DeepSeek — DeepSeekBot
- Apple Intelligence — Applebot-Extended
- Cohere — Cohere-AI
- DuckDuckGo AI answers — DuckAssistBot
- Amazon — Amazonbot
- ByteDance — Bytespider
- Common Crawl — CCBot
Controlling a crawler’s access controls whether it can read you. It does not control whether an engine cites you.
Runs entirely on your own server
Schema and metadata generate server-side and cache in post meta. There are no external API calls on the front end, no account, no API key, no credit limits, and no content sent to a vendor cloud. The verification panel only ever requests URLs on your own site, and only for logged-in administrators. No third-party analytics, no telemetry.
Who it is for
- Business owners and bloggers who see AI answers replacing clicks and want to know whether AI can even read their site
- SEO consultants and agencies who need evidence to show clients, not a vanity score, and a repeatable audit across sites
- Elementor, Divi, Bricks and ACF sites that tools reading only the post content score against a nearly empty page
- Publishers and media who want to be quoted by AI as a source
- Businesses and SaaS companies who want their entity data to be unambiguous to AI systems
- Local businesses and WooCommerce stores who need correct LocalBusiness and Product data
- WordPress developers — 19 filters, a documented REST namespace, and analyzer interfaces to extend
Privacy Policy
AEOmatic does not collect, store, or transmit any personal data to external servers.
Schema, llms.txt, /llms-full.txt and the AI discovery headers are generated server-side on your own site. The verification panel makes HTTP requests only to your own site, only for logged-in administrators, to confirm public output.
The AI crawler visit log records, in your own database only: the matched bot name, the requested URL, the user-agent string (truncated to 255 characters), the HTTP status your site returned, and a timestamp. It records no IP addresses, no cookies, no referrers and no human-visitor data, and only logs requests whose user agent matches a known AI crawler. Retention is configurable from 7 to 365 days (default 90) with a 500-entry ceiling and a daily purge. Nothing in the log ever leaves your site.
AEOmatic makes no external API calls on the front end and ships with no third-party analytics or telemetry.