Content Negotiation Checker
Sends the same URL with five different Accept headers -- HTML, Markdown, JSON, XHTML, and */* -- and compares status, Content-Type, Vary, redirect behavior, and body content across them.
Based on: RFC 9110 — HTTP Semantics
About this validation
Sends text/html, text/markdown, application/json, application/xhtml+xml, and */* Accept headers against RFC 9110's HTTP content-negotiation semantics and compares the resulting responses. Absence of a representation (e.g. no Markdown support) is not treated as an error -- only an inconsistency is.
- Protocol / standard:
- Rules reviewed:
- Sep 1, 2026
Standards and vendor-documented behavior can change. This reflects the source as last reviewed above, not a permanent guarantee.
What This Test Checks
Verifies that a server's Accept-based content negotiation is actually consistent: whether a claimed Markdown response is plausible Markdown (not HTML mislabeled), whether HTML and Markdown versions represent the same primary content, whether a missing Vary header could cause a cache to serve the wrong representation, and whether one representation quietly redirects somewhere the others don't.
FAQ
Is this the same as testing AI crawler User-Agents?
No. This tool changes only the Accept header while keeping a normal browser User-Agent, to test HTTP content negotiation specifically. The User-Agent Checker and AI Agent Readiness Checker separately test what happens when the User-Agent itself changes.
Is it a problem if a site doesn't support Accept: text/markdown?
No. Most sites have no Markdown representation at all, and that is not treated as an error here -- only an actual mismatch (e.g. claiming Content-Type: text/markdown while returning HTML) is flagged.
What does a missing Vary: Accept mean?
If a server genuinely returns different content based on the Accept header but doesn't declare Vary: Accept, a shared cache sitting in front of it (a CDN, a proxy) may serve the wrong representation to a different client.