?mode=agent — A Dedicated View for Agents
Your homepage is built for a human scrolling with a mouse. An agent parsing it pays the full token cost of your nav bar, hero animation, and cookie banner just to find one fact. ?mode=agent is the simplest fix.
The Problem
A typical marketing homepage is mostly chrome: navigation, a hero section, animations, a cookie banner, footer links, tracking scripts. None of it is useful to an agent trying to extract a fact — pricing, a feature list, a contact method — from the page. But an agent fetching the page gets all of it anyway, parses the full DOM, and pays the token cost for the boilerplate along with the substance.
?mode=agentis a convention, not a formal RFC: append the query parameter to any URL on your site and get back a stripped-down version of the same content — same information, none of the decoration.
What 'Meaningfully Different' Actually Means
The failure mode this check is designed to catch is the no-op implementation: a site accepts ?mode=agentwithout erroring, but silently ignores it and returns the exact same HTML either way. That technically doesn’t break anything, but it provides zero benefit to an agent that specifically requested the lighter view.
The AX Audit catches this by fetching the same URL twice and diffing the results:
GET / → 200, text/html, 43604 bytes
GET /?mode=agent → 200, text/html, 17357 bytes
// 60% smaller, same content-type, same status.
// A real implementation.A response that comes back byte-identical (or near-identical) to the baseline fails the check, even though nothing about the request itself was wrong.
What to Strip
Remove
Navigation chrome, marketing hero copy, animations, tracking/analytics scripts, cookie and consent banners, ads, decorative images.
Keep
The actual content an agent came for: product details, pricing, API references, structured facts, and links to deeper resources.
A Minimal Implementation Pattern
In a server-rendered app, this is usually a conditional render branch keyed off the query parameter, not a separate route — the same page component, choosing what to include based on the request:
export default async function Page({ searchParams }) {
const isAgentMode = searchParams?.mode === 'agent';
if (isAgentMode) {
return <AgentStrippedView content={pageContent} />;
}
return <FullMarketingPage content={pageContent} />;
}The exact stack doesn’t matter — what matters is that the two code paths genuinely diverge in output size, not just in a conditional that does nothing.
Where This Fits in AR-* and the AX Score
This check falls under AR-CONT, the category covering how content is delivered to an agent once discovered. In the live AX Audit, ?mode=agent Dedicated Agent View is its own named check worth up to 4 of the 100 points, scored entirely on whether the two responses meaningfully differ.
ainative.ax implements this on its own homepage: requesting it with ?mode=agentreturns about 17KB versus roughly 44KB for the normal page — a real, measurable 60% reduction, not a no-op. It’s one of the checks this site currently scores full marks on.
Frequently Asked Questions
Is this the same thing as Content Negotiation (Accept: text/markdown)?▼
Does this need to apply to every page, or just the homepage?▼
What if my page is already lightweight?▼
Check Your Agent View Score
The AX Audit requests your homepage twice — once normally, once with ?mode=agent — and measures whether the two responses genuinely differ.
Check your agent view score→Free audit. No signup required.