Reference

Every RankReady endpoint, referenced

A complete table of the URLs RankReady serves, what each one returns, how it caches, and which setting turns it on.

Last updated August 25, 2026

Use this page to look up any URL RankReady adds to your site. Each row tells you what the URL returns, how it behaves under caching, and which admin screen controls it. Everything here is verified against RankReady 1.3.0.

The endpoint table

URL What it serves Format Caching Where you control it
/llms.txt An AI-readable index of the site: brand identity plus links to your content. Plain text Supports ETag. Returns 304 to a request carrying a matching If-None-Match. AI Visibility, sub=llms
/llms-full.txt The full corpus in a single file rather than an index of links. Plain text No conditional request support confirmed. AI Visibility, sub=llms
/{post-slug}.md Any single post or page rendered as clean Markdown with YAML frontmatter. Markdown No conditional request support confirmed. AI Visibility, sub=markdown
/index.md Your homepage as Markdown. This is the homepage’s own distinct Markdown URL. Markdown No conditional request support confirmed. AI Visibility, sub=markdown
/.well-known/mcp.json The WebMCP manifest describing your site to MCP-aware clients. JSON manifest No conditional request support confirmed. AI Visibility, sub=webmcp
/okf/ An Open Knowledge Format bundle of your content. OKF bundle Supports ETag. Returns 304 to a request carrying a matching If-None-Match. AI Visibility, sub=okf
/robots.txt Your existing robots.txt, plus a managed block that RankReady owns. Plain text Served by WordPress as normal. AI Visibility, sub=robots

Two of these support conditional requests: /llms.txt and /okf/. A client that stored the ETag from a previous fetch can send it back and get a 304 with no body, which saves bandwidth on both sides. The other endpoints are served fresh.

The managed robots.txt block

RankReady never rewrites your whole robots.txt. It owns one fenced region:

# BEGIN RankReady
... RankReady's crawler rules and Content Signals ...
# END RankReady

Anything you or another plugin wrote outside those two markers is left alone. Anything inside them is regenerated from your AI Visibility settings, so edit the settings rather than the file.

Canonical URLs versus distinct .md URLs

This is the distinction that trips people up, so it is worth stating precisely. There are two separate ways to get Markdown out of RankReady, and they behave differently on purpose.

Distinct .md URLs

/your-post.md and /index.md are their own URLs. They always serve Markdown, whatever Accept header the client sends. That is deliberate. A URL that returns one fixed representation is safe for any cache, any CDN and any proxy to store, because there is no second representation for it to confuse with the first.

The canonical URL

Your normal page URL, /your-post/, does content negotiation. It looks at the request’s Accept header and picks a representation:

Request sends Canonical URL returns
Accept: text/markdown Markdown
Accept: text/html Your normal HTML page
An unsupported type only 406 Not Acceptable

The 406 is the correct HTTP answer when a client demands a format the server cannot produce. It is not an error in your setup. A browser sends a broad Accept header, so a browser will never see it.

Practical consequence: if you are testing with curl and want to prove negotiation works, test the canonical URL. If you want a stable link to hand to an agent or paste into a tool, use the distinct .md URL.

Verifying an endpoint from the command line

curl -I https://example.com/llms.txt
curl -H "Accept: text/markdown" https://example.com/your-post/
curl https://example.com/your-post.md

Every endpoint above is only served when its feature is switched on in the matching AI Visibility subtab. If you get a 404, check the toggle first.

Two known server-level issues

/.well-known returns 403 on nginx

On nginx, paths beginning with a dot are blocked by default, so /.well-known/mcp.json returns 403 before WordPress is ever reached. No plugin can override that, because the request never gets to PHP. The server-side fix is one block:

location ^~ /.well-known/ {
    allow all;
    default_type text/plain;
    try_files $uri $uri/ /index.php?$args;
}

Add it in your host’s nginx configuration, reload nginx, then request the URL again.

Endpoints 404 on some stacks

On some stacks, LiteSpeed running alongside Rank Math being the reported case, rewrite rules get intercepted and RankReady’s URLs return 404. Version 1.3.0 adds a raw request-path fallback for this. If you are still seeing a 404, go to Settings then Permalinks in wp-admin and press Save, which rebuilds stale rules. Earlier versions also left a raw 404 behind after you switched a feature off; 1.3.0 clears those stale rules when you toggle a feature.

Remember what these endpoints do and do not prove. Serving them makes your content available in formats agents can read. A hit in your logs tells you a page was fetched. It does not tell you the page was quoted anywhere.