AJ Agent Crawl Optimizer – AI Readiness Scanner & llms.txt for WordPress
AJ Agent Crawl Optimizer – AI Readiness Scanner & llms.txt for WordPress

AJ Agent Crawl Optimizer – AI Readiness Scanner & llms.txt for WordPress

5/5 (3 ratings) 40 active installs Updated Nov 12, 2026
Dashboard — the 0–100 score ring with grade, Level badge, per-layer bars, "Next level" panel, and impact-ranked check cards with one-click fixes.

Dashboard — the 0–100 score ring with grade, Level badge, per-layer bars, "Next level" panel, and impact-ranked check cards with one-click fixes.

AJ Agent Crawl Optimizer is a free WordPress plugin that scans your site against 33 AI-agent-readiness checks — Cloudflare’s 21 isitagentready.com checks plus 12 modelled on what hosted scanners like ora.ai and is-agentic.com grade for — scores it 0–100 with a letter grade and a Level 0–5 readiness ladder, fixes failing checks in one click, and lets you hand-curate the llms.txt that AI agents like ChatGPT, Claude, and Perplexity read.

It makes your site legible to AI agents — and proves it. The built-in readiness scanner runs 33 checks against your live site, scores you 0–100 with a letter grade (A+ to F) and on the Level 0–5 agent-readiness ladder (Not Ready Basic Web Presence Bot-Aware Agent-Readable Agent-Integrated Agent-Native), and shows the full evidence trail — every request and response — behind every verdict. Failing checks get a Fix now button that enables the right feature and re-scans that single check to prove it went green; two more (Organization details, a real MCP server) get a guided button to the right screen; anything the plugin can’t fix in WordPress (DNS records, server config) gets a copy-paste prompt for your coding agent.

This is the technical, agent-readiness layer of answer engine optimization (AEO) and generative engine optimization (GEO): it improves your AI visibility by making your content legible to AI agents through llms.txt, JSON-LD, Markdown negotiation, and AI crawler rules. It is not a content SEO plugin — it doesn’t write titles or meta descriptions, and it doesn’t track brand mentions or AI citations. It prepares your WordPress site so AI search engines and agents can read, trust, and route on it, then verifies that over real HTTP.

The scan fix verify loop

  • Dashboard (Agent Ready Dashboard) — a 0–100 score ring with letter grade, per-layer point bars, the Level badge, a trend since your last full scan, check cards ranked by impact with points at stake, filters (failing / one-click fixes / bonus), and a “Next level” panel listing exactly which checks unlock the next level.
  • 33 checks across 5 categories — Discoverability (robots.txt, sitemap and lastmod, Link headers, identity metadata, trust pages, Organization schema, DNS-AID), Content Accessibility (Markdown negotiation, alternate link, frontmatter, agent-friendly 404, content without JavaScript, llms.txt lint), Bot Access Control (AI bot rules, user-request agents allowed, Content Signals, Web Bot Auth), API/Auth/MCP Discovery (API catalog, agent resource catalog, OAuth discovery, OAuth Protected Resource, auth.md, MCP server card, MCP server, A2A agent card, Agent Skills, WebMCP), and Commerce (x402, MPP, UCP, ACP, AP2 — informational bonus, never counted against you).
  • Weighted score and grade — every check carries points; checks that don’t apply (or can’t be reached) drop out of the denominator instead of counting against you, emerging protocols add capped bonus points, and grade bands match ora.ai (A+ 95, A 86, B 70, C 48, D 28). The Level 0–5 ladder stays criterion-referenced to Cloudflare.
  • Evidence timelines — fetch/parse/conclude steps with request/response snapshots, so you can audit why a check passed or failed and catch page caches or server rules silently breaking your endpoints.
  • One-click fixes with verification — 17 checks are fixable in one click, each re-scanned immediately; a bulk “Fix all safe items” sheet handles the rest. Organization schema and MCP server get a guided button instead (fill in the fields; install the official WordPress MCP Adapter).
  • Hosting diagnosis — the plugin writes no files, but some hosts block requests before WordPress runs (nginx dot-path rules 403 /.well-known/*, static-file rules 404 /llms.txt). When that happens the Dashboard says so and hands you copy-paste nginx and Apache fixes.
  • Score badge & hosted-scanner cross-check — the [agent_ready_badge] shortcode (and an opt-in public /agent-ready-badge.svg) shows the score, grade and Level as a static SVG; on request, the Dashboard looks up this site’s score on ora.ai and is-agentic.com (read-only, keyless) next to ours.
  • REST API and WP-CLI — POST /wp-json/ajaco/v1/scan, /scan/check, /fix, GET /external, POST /llms/preview, a public GET /health; wp agent-ready scan|status|fix with --format=summary|json|agent and --min-score / --min-level CI gates that exit non-zero.

Each publishing capability is a separate toggle under Agent Ready Settings and ships opt-in (everything starts off). On first activation, a Quick Setup wizard suggests defaults based on your environment (it skips JSON-LD when an SEO plugin is detected) — re-runnable any time.

Curated llms.txt — you decide what agents read

Most plugins generate llms.txt from fixed rules and hand you the result. This one hands you the controls.

  • A dedicated editor (Agent Ready llms.txt) — write the intro that tells an agent what your site is for, choose which content types appear (custom post types and WooCommerce products are detected automatically), and set each section’s heading, item count and order. Add your own Markdown block above or below.
  • Live preview — see exactly what /llms.txt will serve, with entry, byte and token counts, before you save.
  • Per-post control — every post and page gets an “Agent Ready (llms.txt)” panel in the editor (block and classic): keep an entry out of the agent indexes entirely, or write a Summary for AI agents that overrides the excerpt. An excerpt is written for a human skimming; that line is written for a model deciding whether to fetch the page — the single highest-leverage field in the plugin.
  • /llms-full.txt serves the full content of the same curated entries. Password-protected content is always excluded from both.

Discovery — help agents find what your site offers

  • API Catalog (RFC 9727) — /.well-known/api-catalog linkset advertising your REST API, plus a Link: rel="api-catalog" header on every response.
  • MCP Server Card (SEP-1649 draft) — /.well-known/mcp/server-card.json describing the site to MCP-aware agents. The plugin does not run an MCP server itself. When the official WordPress MCP Adapter (or any plugin registering REST routes under the mcp namespace) is active, the card advertises its real Streamable HTTP endpoint and the Application Password login; otherwise it states plainly that the REST API is the only machine interface.
  • MCP server integration — with the adapter active, the agent resource catalog, API catalog, llms.txt and auth.md all list the server endpoint, and the mcpServer check connects to it (JSON-RPC initialize) to prove it answers. Without one, the check fails with an “Install the MCP Adapter” button (the adapter needs WordPress 6.9+).
  • Agent resource catalog (ARD / AI Catalog) — /.well-known/ard.json (and the predecessor /.well-known/ai-catalog.json) indexing every enabled agent-facing endpoint, linked from every page with rel="ard" / rel="ai-catalog".
  • Agent Skills Index (RFC v0.2.0) — /.well-known/agent-skills/index.json listing six skills plus per-skill SKILL.md artifacts with verifiable sha256 digests.
  • Discovery links — <link rel> tags and Link headers for the sitemap, OpenAPI document, llms.txt and catalogs, so agents find every file from the pages they already visit.
  • Sitemap lastmod — adds <lastmod> dates to the WordPress core sitemap on versions that lack them; a no-op where core or an SEO plugin already provides them.
  • IndexNow — non-blocking ping to Bing and Yandex on every post publish so search engines re-crawl within minutes.

Presentation — format content for agents

  • Markdown Negotiation — when a request includes Accept: text/markdown, the page is served as clean Markdown that opens with a YAML frontmatter block (title, url, site, modified), with X-Markdown-Tokens for context budgeting. Every page advertises its Markdown twin with <link rel="alternate" type="text/markdown"> and a matching Link header, and missing pages return a real 404 as Markdown. Browsers (which send text/html) are unaffected.
  • JSON-LD Schema — WebSite, Organization, Article, BreadcrumbList, and auto-detected FAQPage. Logo resolved from your theme’s custom logo or site icon. The Organization details fields (official profile URLs, contact email or phone, postal address) add sameAs, contactPoint and address to the Organization node.
  • Identity meta tags — a canonical link on the home page and archives plus Open Graph basics (og:type, og:site_name, og:title, og:url, og:image, og:description). Auto-suppressed when an SEO plugin is active, like JSON-LD.
  • OpenAPI 3.0.3 — /openapi.json returns a complete spec generated dynamically from rest_get_server(), including plugin-registered REST routes.
  • WebMCP Tools — four read-only in-page tools (search_site_content, list_recent_posts, list_site_pages, get_site_info) registered with document.modelContext.registerTool() per the W3C WebMCP draft (Chrome origin trial), each with a typed input schema and a readOnlyHint annotation, with a fallback for the earlier preview API.

Declarations

  • AI Bot Rules — to be cited by an AI engine, you must first allow its crawler. The plugin writes explicit robots.txt User-agent groups for 20 AI crawlers (GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-User, Claude-Web, PerplexityBot, Perplexity-User, Google-Extended, CCBot, Bytespider, …), each allowed or blocked per a filterable per-bot policy. A crawler added in a later release inherits your stored decision for its purpose, so an upgrade never un-blocks a category you blocked. A dedicated check verifies the user-request agents are never blocked, since an answer engine cannot cite a page its agent cannot fetch. Groups honor “Discourage search engines”.
  • Content-Signals — appends a Content-Signal: ai-train=no, search=yes, ai-input=no directive to robots.txt per contentsignals.org. Composes with Yoast/Rank Math/AIOSEO — their additions are preserved, our directive lands last.
  • auth.md — publishes /auth.md honestly documenting how agents authenticate to your REST API via Application Passwords (creation, Basic-auth usage, scope, revocation), and the MCP endpoint when one is detected. No fictional OAuth endpoints.

How it compares to other AI / llms.txt plugins

Most AI and llms.txt plugins only generate a file from fixed rules. AJ Agent Crawl Optimizer also scans your live site over real HTTP, scores it 0–100 with a grade and the Level 0–5 ladder, shows the request/response evidence behind every verdict, and fixes failures in one click — then re-scans to prove the check turned green. It writes per-bot robots.txt rules for 20 AI crawlers and lets you hand-curate what AI agents read instead of auto-dumping every post. Scan score fix verify, not generate-and-hope.

Why use it

  • No conflicts with your SEO plugin. JSON-LD and meta tags auto-suppress when Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO, Squirrly SEO, Schema Pro, or SASWP is active.
  • Multisite-aware. Every endpoint also resolves at /{subsite}/... paths automatically.
  • Cached and performance-conscious. OpenAPI is cached for a day, llms.txt for an hour, with proper invalidation. Markdown conversion runs in an output-buffer callback so other shutdown hooks are untouched; endpoint handlers early-return after one path check; IndexNow pings are non-blocking.
  • Extensible. Nineteen filter hooks cover skills, schemas, bot policies, llms.txt curation, catalogs, MCP detection, scan behavior, and content — see the FAQ.
  • Private by design. Everything is stored on your own server; the only outbound requests are the ones you trigger (scans, IndexNow, the hosted-scanner cross-check) — see the FAQ for exactly what is sent where.
  • Accessible. The Dashboard score ring carries a dynamic aria-label, copy buttons announce success via aria-live, and decorative icons are hidden from screen readers.