Title: Redirect Priority Conflicts
Last modified: September 21, 2026

---

# Redirect Priority Conflicts

 *  Resolved [mariosem](https://wordpress.org/support/users/editor/)
 * (@editor)
 * [1 week, 5 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/)
 * Hello, 
   Running the diagnostics tool, I see that the main problems come from 
   template_redirect priority conflicts. Since this conficts are involving many 
   plugins, I think RankReady should adapt itself and its priority, and not asking
   the user to contact other plugins developers.
 * The page I need help with: _[[log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fredirect-priority-conflicts%2F%3Foutput_format%3Dmd&locale=en_US)
   to see the link]_

Viewing 6 replies - 1 through 6 (of 6 total)

 *  Plugin Author [Aditya Ranjan Sharma](https://wordpress.org/support/users/adityaarsharma/)
 * (@adityaarsharma)
 * [1 week, 3 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/#post-19027577)
 * Hi [@editor](https://wordpress.org/support/users/editor/) ,
 * Thanks for using RankReady.
 * I had a look at your site, and I’m glad to say nothing seems to be conflicting
   there. Your llms.txt is serving correctly, the Markdown version of your homepage
   is serving correctly, and both discovery links are in place on your home page.
 * The two that come back empty, the full index and WebMCP, are switched off in 
   your settings rather than blocked by anything.
 * Sorry for the confusion that warning caused. It flags anything sitting near RankReady
   on the same WordPress hook whether or not it’s causing trouble, so it ends up
   showing on almost every site. That’s on us, and we’re reworking it to only speak
   up when something is genuinely broken, and to stop pointing at other plugins.
 * So there’s nothing you need to do here. But if you have seen something actually
   misbehaving beyond that warning, please tell me what you noticed and I’ll look
   into it properly.
 * Thanks again for flagging it, it’s genuinely useful.
 *  Thread Starter [mariosem](https://wordpress.org/support/users/editor/)
 * (@editor)
 * [1 week, 3 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/#post-19027596)
 * Hello,
 * Thanks for your reply. The llms.txt actually gave a 404 message. I turned it 
   off, I’m currently using a code snippet and your plugin finds it. Quite strange.
 * I think your plugin is very promising, I hope it will be further improved in 
   the next releases.
 * Mario
 *  Plugin Author [Aditya Ranjan Sharma](https://wordpress.org/support/users/adityaarsharma/)
 * (@adityaarsharma)
 * [1 week, 3 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/#post-19027668)
 * Hello,
 * The file is served through a WordPress rewrite rule rather than a real file on
   disk, so a few things can make it 404: the rules going stale, permalinks set 
   to Plain, or your host caching the 404 before the rules got refreshed.
 * Your site sits behind a page cache, so that last one would explain why it looked
   permanent.
 * I can’t tell which it was from outside. If RankReady is still installed, go to**
   Settings → Advanced → Diagnostics**, hit **Run Diagnostics**, then **Copy Diagnostic
   Report** and paste it here.
 * That covers all three. Leave your snippet running, it won’t affect the result.
 * One heads up before you do: that report lists your plugins and versions, so trim
   anything you’d rather not have in a public thread.
 * Thanks for the patience, and for the kind words.
 *  Thread Starter [mariosem](https://wordpress.org/support/users/editor/)
 * (@editor)
 * [1 week, 3 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/#post-19027688)
 * ╔══════════════════════════════════════════════════════════════════════╗
   ║ RankReady
   Diagnostic Report — Support Bundle ║╚════════════════════════════════════════
   ══════════════════════════════╝
 * Generated: 2026-09-23 18:26:25 UTC
   Site URL: Plugin: RankReady 1.3.1WordPress:
   7.1.2PHP: 8.4.25 (SAPI: fpm-fcgi)MySQL: 11.8.9Theme: Server: nginxMultisite: 
   noHTTPS: yesPermalinks: /%year%/%monthnum%/%day%/%postname%/WP_DEBUG: false WP_DEBUG_LOG:
   false
 * Summary: 11 pass · 1 warn · 3 fail · 8 info
 * ═══ PROBE RESULTS ═════════════════════════════════════════════════════════
 * ℹ INFO /llms.txt loads
   Toggle is OFF in AI Visibility → LLMs.txt.FIX → Enable
   LLMs.txt to expose your site index to AI engines.
 * ℹ INFO /llms-full.txt loads
   Requires LLMs.txt to be enabled (it’s OFF).FIX → 
   Enable AI Visibility → LLMs.txt first.
 * ✗ FAIL Homepage .md route
   HTTP 200 but Content-Type is text/html; charset=UTF-
   8 (HTML returned).FIX → Theme template is winning. Add ?format=md to URL as a
   workaround.(url: )(content_type: text/html; charset=UTF-8)
 * ✗ FAIL Post .md route
   HTML returned instead of Markdown.FIX → Page builder intercepting.
   Check template_redirect priority conflicts.(url: )(content_type: text/html; charset
   =UTF-8)
 * ✓ PASS /robots.txt has RankReady block
   RankReady block present with crawler directives.(
   url: [https://&#8230](https://&#8230);./robots.txt)(body_len: 1486)
 * ℹ INFO /.well-known/mcp.json loads
   WebMCP toggle is OFF.FIX → Enable AI Visibility
   → WebMCP Manifest to expose 16 abilities to Claude/Cursor/VS Code.
 * ✓ PASS Rewrite rules flushed
   107 rewrite rules registered.
 * ℹ INFO Webserver detected
   Nginx — Nginx requires server-block configuration (
   no .htaccess support). RankReady ships an Nginx snippet via the “Server bypass
   snippet” section below. The standard WP server block “try_files $uri $uri/ /index.
   php?$args;” rule is required for REST routes.(family: nginx)(server_software:
   nginx)(recommended_snippet: nginx)
 * ✗ FAIL REST API reachable (loopback)
   HTTP 401 from [https://xxxxxxxx/wp-json/rankready/v1](https://xxxxxxxx/wp-json/rankready/v1)—
   REST API is not routing. Diagnostics + bulk operations + freshness scan will 
   fail until this resolves.FIX → Visit Settings → Permalinks → Save (rewrites .
   htaccess on Apache/LiteSpeed). On Nginx, add the “Server bypass snippet → Nginx”
   block from below to your server config.(url: [https://xxxxxxxx/wp-json/rankready/v1](https://xxxxxxxx/wp-json/rankready/v1))(
   code: 401)
 * ✓ PASS Cron firing
   31 events scheduled (WP-Cron). None overdue.
 * ✓ PASS Crawler log DB table
   Table exists, 1,892 rows logged.(table: wp_3878964_rnrd_crawler_log)(
   rows: 1892)
 * ✓ PASS WP Abilities API (6.9+)
   wp_register_ability() is available — MCP uses 
   native registration.
 * ✓ PASS Page cache plugin
   Perfmatters — RankReady bypass rules applied
 * ℹ INFO Page builder
   No major page builder detected.
 * ✓ PASS SEO plugin
   xxxxxx detected. Schema merging active, double meta-robots 
   tag prevented.(plugin: xxxxxxx)
 * ℹ INFO Cache constants
   WP_CACHE = true; DONOTCACHEPAGE = defined; DISABLE_WP_CRON
   = false
 * ℹ INFO Edge cache HIT scan
   /llms.txt is disabled; skipped.
 * ✓ PASS Markdown endpoint (/index.md)
   Markdown is served at the distinct /index.
   md URL (cache-safe path). Same-URL Accept negotiation is off by default — the
   canonical homepage correctly returns HTML, so no cache can be poisoned. AI agents
   discover /index.md via the Link header and llms.txt.(content-type: text/markdown;
   charset=utf-8)
 * ⚠ WARN template_redirect priority race
   5 competing hook(s) at priority ≤ 5: priority
   0: _wp_admin_bar_init; priority 0: xxxxxxx\Extension\Origin_go; priority 1: xxxxxx_opengraph_meta_tagsFIX
   → If /llms.txt or /.well-known/mcp.json returns HTML, ask the conflicting plugin
   to lower its template_redirect priority below 1. RankReady cannot go any earlier.
 * ✓ PASS Brand Identity filled
   All 3 core fields are populated (name, summary, 
   about).
 * ✓ PASS PHP version
   PHP 8.4.25
 * ✓ PASS WordPress version
   WordPress 7.1.2
 * ℹ INFO LLM provider keys
   Not tested — click “Test API keys” to verify reachability(
   uses 1 API call per provider).
 * ═══ WHAT TO FIX FIRST (plain English) ═════════════════════════════════════
    1. Homepage .md route
       What we saw: HTTP 200 but Content-Type is text/html; charset
       =UTF-8 (HTML returned).What to do: Theme template is winning. Add ?format=md
       to URL as a workaround.Why it matters: AI bots request your homepage with Accept:
       text/markdown. If you return HTML, they parse it inefficiently or skip you.
    2. Post .md route
       What we saw: HTML returned instead of Markdown.What to do: Page
       builder intercepting. Check template_redirect priority conflicts.Why it matters:
       Each post needs a .md route so AI bots can grab clean Markdown instead of parsing
       your full HTML/JS bundle.
    3. REST API reachable (loopback)
       What we saw: HTTP 401 from [https://xxxxxxx/wp-json/rankready/v1](https://xxxxxxx/wp-json/rankready/v1)—
       REST API is not routing. Diagnostics + bulk operations + freshness scan will
       fail until this resolves.What to do: Visit Settings → Permalinks → Save (rewrites.
       htaccess on Apache/LiteSpeed). On Nginx, add the “Server bypass snippet → Nginx”
       block from below to your server config.Why it matters: See the FIX line above
       for the action to take.
 * ═══ LIVE ENDPOINT RESPONSE HEADERS ════════════════════════════════════════
   (
   What an AI crawler actually sees when it fetches each URL right now.)
 * ── GET /llms.txt ──
   HTTP status: 200Body bytes: 19264server: cloudflarecontent-
   type: text/plain; charset=utf-8cache-control: public, max-age=3600, s-maxage=
   300cf-cache-status: DYNAMIClink: ; rel=”alternate”; type=”text/markdown”, ; rel
   =”describedby”; type=”text/plain”
 * ── GET /llms-full.txt ──
   HTTP status: 404Body bytes: 100474server: cloudflarecontent-
   type: text/html; charset=UTF-8cache-control: no-cache, must-revalidate, max-age
   =0, no-store, privatecf-cache-status: DYNAMIClink: ; rel=”alternate”; type=”text/
   markdown”, ; rel=”describedby”; type=”text/plain”Body preview: Pagina non trovata
   | xxxxxxxx <!– Jetpack Site Verification Tag
 * ── GET /robots.txt ──
   HTTP status: 200Body bytes: 1486server: cloudflarecontent-
   type: text/plain; charset=utf-8age: 41cf-cache-status: HITlink: ; rel=”alternate”;
   type=”text/markdown”, ; rel=”describedby”; type=”text/plain”Body preview: User-
   agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php User-agent: AhrefsBot
   User-agent: AhrefsSiteAudit User-agent: barkrowler User-agent: DataForSeoBot 
   User-agent: dotbot User-agent: rogerbot User-agent: S
 * ── GET /.well-known/mcp.json ──
   HTTP status: 503Body bytes: 30server: cloudflarecontent-
   type: application/json; charset=utf-8cache-control: no-cache, must-revalidate,
   max-age=0, no-store, privatecf-cache-status: DYNAMIClink: ; rel=”alternate”; 
   type=”text/markdown”, ; rel=”describedby”; type=”text/plain”Body preview: {“error”:”
   WebMCP is disabled”}
 * ═══ PHYSICAL FILES IN WEBROOT ═════════════════════════════════════════════
   (
   These trump WordPress rewrite rules. A physical robots.txt wins at thewebserver
   level before WP even runs.)robots.txt (not present) /wordpress/core/7.1.2/robots.
   txtllms.txt (not present) /wordpress/core/7.1.2/llms.txtllms-full.txt (not present)/
   wordpress/core/7.1.2/llms-full.txt.htaccess (not present) /wordpress/core/7.1.2/.
   htaccess
 * ═══ REWRITE RULES MATCHING llms.txt / robots / .md / mcp ══════════════════
   ^(?!
   wp-admin|wp-content|wp-includes|wp-json)(.+)\… → index.php?rnrd_md_path=$matches[
   1]robots.txt$ → index.php?robots=1
 * ═══ HOOKS ON `robots_txt` FILTER (priority order, lower = earlier) ════════
   priority
   10 SEO\RobotsTXT\Main::get_robots_txtpriority 12 Automattic\Jetpack\Jetpack_Mu_Wpcom\
   Blog_Privacy\robots_txtpriority 9223372036854775807 RNRD_Robots::add_to_robots_txt
 * ═══ HOOKS ON `template_redirect` (early priorities only — these race for /llms.
   txt etc.) ═
   ⚠ priority 1 xxxxxx_opengraph_meta_tags⚠ priority 1 Automattic\Jetpack\
   Stats\Main::template_redirect⚠ priority 1 wpcom_handle_post_like_from_email✓ 
   priority 1 RNRD_Llms_Txt::handle_request✓ priority 1 RNRD_Markdown::handle_request
   ✓ priority 1 RNRD_MCP::handle_request⚠ priority 1 [Closure@20-llms-txt.php](https://wordpress.org/support/topic/redirect-priority-conflicts/Closure@20-llms-txt.php?output_format=md):
   140⚠ priority 2 [Closure@atomic-platform-virtual-patches.php](https://wordpress.org/support/topic/redirect-priority-conflicts/Closure@atomic-platform-virtual-patches.php?output_format=md):
   28267✓ priority 2 RNRD_Markdown::handle_accept_header
 * Legend: ✓ = RankReady (expected), ⚠ = other plugin/theme racing us
 * ═══ SEO PLUGIN ACTUAL CONFIG (what RankReady defers to vs. takes over) ════
   xxxxxxx•
   schema_enabled managed by (default ON when active)
 * ═══ CACHE PLUGIN EXCLUSION STATUS ═════════════════════════════════════════
   xxxxxx
   unknown — RankReady applies exclusion filters but cache plugin doesn’t expose
   verification API
 * ═══════════════════ End Diagnostic Report ═══════════════════
 * Here it is. Please consider I’m on a wordpress.com Business Plan, with their 
   own edge cache. I’m also on Cloudflare
 *  Plugin Author [Aditya Ranjan Sharma](https://wordpress.org/support/users/adityaarsharma/)
 * (@adityaarsharma)
 * [1 week, 3 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/#post-19027940)
 * Thanks [@editor](https://wordpress.org/support/users/editor/), that report clears
   it up.
 * The `llms.txt` / `llms-full.txt` 404s as RankReady’s own `llms.txt` output is
   turned off on this setup, and the snippet is answering instead, so there’s nothing
   to fix there.
 * The real findings are the two FAILs around the homepage and post `.md` routes
   returning HTML. From what I understand, this isn’t a RankReady bug.
 * The site is on WordPress.com Business behind Cloudflare, and Cloudflare doesn’t
   vary its cache by the `Accept` header by design. So same-URL content negotiation
   can’t reliably work in this setup.
 * The good news is that it isn’t actually needed here. The report shows that `/
   index.md` is already passing with the correct Markdown content and content type.
   That’s the distinct, cache-safe URL RankReady points AI crawlers to through the`
   Link` header on every page, so it looks like the setup is already working as 
   intended.
 * The REST 401 and priority warning also appear to be the same cosmetic issues 
   mentioned earlier.
    -  This reply was modified 1 week, 3 days ago by [Aditya Ranjan Sharma](https://wordpress.org/support/users/adityaarsharma/).
 *  Thread Starter [mariosem](https://wordpress.org/support/users/editor/)
 * (@editor)
 * [1 week, 3 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/#post-19027948)
 * Good news, then, thanks!

Viewing 6 replies - 1 through 6 (of 6 total)

You must be [logged in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fredirect-priority-conflicts%2F%3Foutput_format%3Dmd&locale=en_US)
to reply to this topic.

 * ![](https://ps.w.org/rankready-ai-llm-seo/assets/icon-256x256.png?rev=3549132)
 * [RankReady – AI SEO, Schema, llms.txt, AEO and GEO for ChatGPT, Gemini and Perplexity](https://wordpress.org/plugins/rankready-ai-llm-seo/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/rankready-ai-llm-seo/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/rankready-ai-llm-seo/)
 * [Active Topics](https://wordpress.org/support/plugin/rankready-ai-llm-seo/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/rankready-ai-llm-seo/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/rankready-ai-llm-seo/reviews/)

 * 6 replies
 * 2 participants
 * Last reply from: [mariosem](https://wordpress.org/support/users/editor/)
 * Last activity: [1 week, 3 days ago](https://wordpress.org/support/topic/redirect-priority-conflicts/#post-19027948)
 * Status: resolved