WordPress
Make a WordPress site agent-ready: robots.txt, llms.txt, sitemap, and AI bot rules.
WordPress powers more than 40% of the web, and most AIScan checks map to either a plugin setting or a small functions.php snippet. The Content dimension gets a 1.2× weight on WordPress because content is what readers (and agents) come for.
Start from the platform guide index if you're comparing stacks; for stores, compare this with the Shopify guide. The WordPress fixes below map mainly to Discoverability, Content, Bot Access, and Capabilities checks.
Fix with ThinkRank (recommended)
ThinkRank is the sibling WordPress SEO plugin built around exactly the signals AIScan measures: robots.txt, robots meta, XML sitemaps, generated llms.txt, schema, AEO/GEO and IndexNow instant indexing — all from wp-admin. AIScan detects ThinkRank automatically and switches every fix guide to ThinkRank-specific steps.
- robots.txt — ThinkRank → Sitemaps & Crawling → Robots.txt
- Sitemap — ThinkRank → Sitemaps & Crawling → XML sitemaps
- llms.txt — ThinkRank → Sitemaps & Crawling → LLMs.txt for AI (generated from live content)
- Schema / JSON-LD — ThinkRank → Schema → Schema Manager, then Validate your schema
- Instant indexing — ThinkRank → Instant Indexing (IndexNow)
Let your AI assistant apply the fixes (MCP)
ThinkRank ships a free MCP server, so Claude or ChatGPT can read and write your SEO directly instead of you clicking through wp-admin. Turn on ThinkRank → MCP → Enable MCP access, copy the connection URL, and add it as a custom connector (Claude: Settings → Connectors; ChatGPT: Settings → Plugins with developer mode on). You approve the connection with a normal WordPress login, so it runs as you and honours your role — and flipping the toggle off cuts every connection instantly.
Then combine both servers in one prompt: "Scan example.com with AIScan and fix the failing checks with ThinkRank." AIScan's MCP server (https://aiscan.site/api/mcp) returns the failing checks and remediation, and ThinkRank applies them on the site. Full setup: ThinkRank MCP docs.
Fix with Rank Math
Already on Rank Math? AIScan detects it and keeps the guides on Rank Math's settings. For the few things Rank Math doesn't cover (response headers, root-level files), pair it with the WPCode plugin to add small PHP snippets safely.
robots.txt (D1)
Open Rank Math → General Settings → Edit robots.txt and paste your full ruleset there — Rank Math overrides the virtual WordPress file. Add the Content-Signal directive and explicit AI bot rules in the same editor.
User-agent: *
Allow: /
Sitemap: https://yoursite.com/sitemap_index.xml
Content-Signal: search=yes, ai-train=no, ai-input=yes
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /Sitemap (D2)
In Rank Math → Sitemap Settings, enable the XML sitemap. Rank Math publishes /sitemap_index.xml with richer metadata than the WordPress 5.5 core sitemap. Make sure it's referenced in your robots.txt.
Link header (D3)
WordPress can't set arbitrary response headers without code. Add this as a WPCode PHP snippet (preferred) or to your child theme's functions.php:
add_action('send_headers', function () {
header('Link: </.well-known/api-catalog>; rel="api-catalog"', false);
});llms.txt (C2)
Create a file called llms.txt and upload it to the same folder as wp-config.php (your WordPress root) using FTP, cPanel File Manager, or a plugin like WPCode that can create root-level files. WordPress will serve it at https://yoursite.com/llms.txt.
Markdown copy at /index.md (C1)
Install WPCode and add a snippet that listens for /index.md and returns a plain markdown version of your homepage with Content-Type: text/markdown:
add_action('init', function () {
if (trim($_SERVER['REQUEST_URI'], '/') !== 'index.md') return;
$page = get_post(get_option('page_on_front'));
header('Content-Type: text/markdown; charset=utf-8');
echo "# " . get_bloginfo('name') . "\n\n";
echo wp_strip_all_tags(apply_filters('the_content', $page->post_content));
exit;
});AI bot rules (B2)
Back in Rank Math → General Settings → Edit robots.txt, add explicit Allow rules for each major AI crawler so your policy is unambiguous (see the robots.txt block above).
/.well-known endpoints (P1, P4)
For P1 — API catalog: upload a JSON file to /.well-known/api-catalog via FTP or cPanel, then use WPCode to serve it with Content-Type: application/linkset+json. For P4 — OAuth discovery: upload /.well-known/oauth-authorization-server with your site's issuer URL.
Structured HTML & JSON-LD (C3)
Rank Math emits schema.org JSON-LD automatically (Organization, WebSite, Article, Product when WooCommerce is active). Validate at schema.org validator. Most modern themes ship a single <h1>; classic themes sometimes don't — check with your theme author.
Further reading
- Content Signals in robots.txt: 117 of 799 Sites Declare One
Of 799 sites in our scan database on 2 November 2026, 117 serve a robots.txt with a ContentSignal line 14.6%. Among the 677 sites that serve a usable robots.txt at all, that is 17.3%. Another 682…
- Your RSS Feed Returns 403 to Feed Readers and Agents: Cloudflare and Firewall Rules That Block It
Cloudflare's Bot Fight Mode and its "block AI bots" switch can answer your RSS feed with a 403 challenge page, and a feed reader or AI agent has no way to solve one. On 1 November 2026 we requested…
- ChatGPT Says It Can't Access Your Website: Five Causes and How to Tell Which
When ChatGPT says it cannot open your page, one of five things happened, and a short script of four curl requests sorts four of them in about a minute. The fifth is that ChatGPT never tried. This…
- Block Fake AI Crawlers From Probing .env and .git Files
Some of the traffic that calls itself GPTBot or ClaudeBot is not a crawler. It is a scanner that borrowed a famous name and asks your server for /.env, a .git folder or a wpconfig.php.bak. The fix is…
- Your robots.txt blocks everything by accident: find the leftover Disallow: / and stop it coming back
If your robots.txt says Useragent: followed by Disallow: /, every crawler that obeys the file is told to stay off your whole site. It takes one line to cause and about a minute to find, and Google's…
- Does robots.txt Need a Sitemap Line? 782 Sites Show What Happens
Of 782 sites in our scan database on 29 October 2026, 572 serve a robots.txt that declares a sitemap, 89 serve a robots.txt with no Sitemap line, and 121 fail the robots.txt check outright. Declaring…
- JSON-LD in Google Tag Manager is missing from your served HTML: test it and move it server-side
If your JSONLD is added by a Google Tag Manager Custom HTML tag, a plain HTTP fetch of your page contains zero schema blocks. Google can still read it, because Googlebot renders JavaScript. Crawlers…
- One h1, title, meta description and JSON-LD on Ghost, Lovable, Next.js, Replit, Webflow, Wix and WordPress
One page needs one <h1, a <title, a meta description and a JSONLD block, and AIScan check C3 structured HTML passes only when all four are in the HTML the server returns. Who writes each of the four…