www.khanacademy.org

Report from 7/2/2026, 10:22:29 AM https://www.khanacademy.org
28
Overall score
weighted CAV (0–100)
FAIL
0–4950–8990–100

Metrics

0%
CRR Content Recovery Poor
0.12
SSD Semantic Signal Density Poor
457 tok
TC Token Cost Good
158 ms
TTFUT Time to First Useful Token N/A

Final screenshot

Final screenshot of https://www.khanacademy.org

Diagnostics

high CRR Content is hidden behind JavaScript

100% of content requires JS

Fix: Server-render or statically generate the main content so a non-JS agent still receives it; make client rendering a progressive enhancement, not the source of truth.

high SSD Low signal-to-noise for agents

signal 0.23 · JSON-LD 0/1 · missing: structured-data

Fix: Wrap the real content in <main>/<article>, cut repeated nav/boilerplate, and keep the primary content dense and early in the DOM.

Rendered profile: headless

Agent Discoverability 73/100 · Needs Work

Access & discovery checks — separate from the gated CAV metrics above. Click an issue for business impact, what we measured, and how to fix. · Take the Agent Readiness course →

Agent files & endpoints

~ llms.txt Found at /llms.txt but missing H1/blockquote Learn →
robots.txt (AI bots) Major AI bots allowed Learn →
~ sitemap.xml Sitemap found but no <url>/<loc> entries Learn →
JSON-LD structured data No JSON-LD found Learn →
agents.json Found at /agents.json Learn →
WebMCP endpoint Found at /.well-known/webmcp Learn →
OpenAPI / API docs Found at /openapi.json Learn →

Issues (4)

~ Machine-readable prices medium impact No prices found (fine for non-commercial sites)

Business impact When a user asks an agent 'how much does X cost', it needs readable pricing. Hidden, JS-only or 'request a quote' pricing means the agent can't answer — and recommends someone who can.

What we measured We scan the HTML for price patterns and Schema.org Offer/PriceSpecification markup.

How to fix Expose prices (or a starting-from range) in HTML and add Schema.org Offer.

<script type="application/ld+json">{"@type":"Offer","price":"29.90","priceCurrency":"EUR"}</script>

Spec: https://schema.org/Offer

~ llms.txt present + valid high impact Found at /llms.txt but missing H1/blockquote

Business impact llms.txt is the robots.txt for AI: it tells agents what your site is, what matters, and where to find it. Without it AI guesses — and guessing means inaccurate recommendations and lost visibility.

What we measured We fetch /llms.txt and /.well-known/llms.txt and validate the spec (H1 title + a one-line blockquote summary). We also note /llms-full.txt (your full content as Markdown).

How to fix Create /llms.txt with a short summary + key pages; optionally /llms-full.txt with full content in Markdown.

Learn how to implement →

# Your Site
> One-line description for AI agents.

## Key pages
- /products — catalog
- /pricing — plans
- /docs — documentation

Spec: https://llmstxt.org

Structured data (JSON-LD) medium impact No JSON-LD found

Business impact Schema.org JSON-LD tells agents what a page IS (product, article, business) with typed fields (price, rating, hours). Without it agents extract less reliably.

What we measured We parse <script type=application/ld+json>, validate it, and check for populated @type fields.

How to fix Add JSON-LD: Organization/LocalBusiness on the homepage, Product on product pages, Article on posts.

Learn how to implement →

<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Your Co","url":"https://example.com"}</script>

Spec: https://schema.org/

~ XML sitemap present medium impact Sitemap found but no <url>/<loc> entries

Business impact A sitemap is your table of contents for AI crawlers. Without it agents follow homepage links and miss deep pages (products, docs, pricing) — shrinking what they can recommend.

What we measured We fetch /sitemap.xml (and /sitemap_index.xml), confirm valid XML with <loc> entries, and check <lastmod> freshness.

How to fix Generate an XML sitemap of all public pages with current lastmod dates and reference it in robots.txt.

Learn how to implement →

# robots.txt
Sitemap: https://example.com/sitemap.xml

Spec: https://www.sitemaps.org/

Passed audits (8)

✓ robots.txt allows AI bots✓ No CAPTCHA wall✓ No content-blocking cookie wall✓ No login wall on public content✓ Server response (TTFB)✓ agents.json discovery✓ WebMCP endpoint✓ API documentation
Full profile — how to improve · unused JS · network · timing

How to improve

highReduce unused JavaScripthighest leverage

2373 KiB (55%) of JS goes unused. Code-split, lazy-load below-the-fold scripts, and drop unused dependencies — less JS also lowers CAV Token Cost (TC) and speeds up agent parsing.

highReduce layout shift

CLS is 0.316. Set explicit width/height on images and reserve space for late-loading content.

mediumCut total transfer weight

3.0 MB transferred. Enable Brotli, serve WebP/AVIF images, and defer non-critical resources.

JavaScript coverage

2373 KiB unused of 4307 KiB (55% unused JS) — unused JS inflates Token Cost (TC) and slows the agent's parse.

ScriptSizeUnused
https://cdn.kastatic.org/khanacademy/khanacademy.75a94b56b0207a4a.js2334 KiB1365 KiB (58%)
https://www.googletagmanager.com/gtm.js?id=GTM-WSX5PBP469 KiB282 KiB (60%)
https://cdn.cookielaw.org/scripttemplates/202310.2.0/otBannerSdk.js426 KiB261 KiB (61%)
https://cdn.kastatic.org/khanacademy/20349.d9b431b866fd55e7.js154 KiB114 KiB (74%)
https://cdn.kastatic.org/khanacademy/30384.eb80796dc2c59272.js78 KiB65 KiB (84%)
https://cdn.kastatic.org/khanacademy/42157.d185f0a3e4c50a8c.js66 KiB47 KiB (72%)
https://cdn.kastatic.org/khanacademy/24546.a962fd8482f9d954.js46 KiB36 KiB (78%)
https://cdn.kastatic.org/khanacademy/8162.2962948d564a8c14.js72 KiB35 KiB (49%)
https://cdn.kastatic.org/khanacademy/8273.21563b95fbb018c4.js33 KiB26 KiB (79%)
https://cdn.kastatic.org/khanacademy/77327.58f1ec83c590f305.js28 KiB16 KiB (59%)
https://cdn.kastatic.org/khanacademy/14953.05ad24aa10dcf7d0.js18 KiB15 KiB (84%)
https://cdn.kastatic.org/khanacademy/57819.91e6a2fe98d3050f.js22 KiB14 KiB (66%)

Network

146Requests
3091 KiBTransferred
35Scripts
0%3rd-party
2Long tasks
Image (81)
1370 KiB
Script (35)
1231 KiB
Fetch (19)
190 KiB
Font (5)
164 KiB
Document (1)
119 KiB
Stylesheet (2)
14 KiB
XHR (2)
3 KiB
Other (1)
1 KiB

Heaviest requests

URLTypeStatusTransfer
https://cdn.kastatic.org/ka-mpp/df8ccf02-5534-4732-a5a9-ecdae7c0ba0b.pngImage200783 KiB
https://cdn.kastatic.org/khanacademy/khanacademy.75a94b56b0207a4a.jsScript200725 KiB
https://www.googletagmanager.com/gtm.js?id=GTM-WSX5PBPScript200158 KiB
https://www.khanacademy.org/Document200119 KiB
https://cdn.kastatic.org/khanacademy/images/[email protected]Image200108 KiB
https://cdn.cookielaw.org/scripttemplates/202310.2.0/otBannerSdk.jsScript200103 KiB
https://www.khanacademy.org/api/features/sdk-u16yaYPyqdZ0OHuZFetch20097 KiB
https://cdn.kastatic.org/khanacademy/images/327662a27ed8e9d6-math-unicorn-donate-collage.webpImage20079 KiB
https://cdn.kastatic.org/khanacademy/images/[email protected]Image20074 KiB
https://cdn.kastatic.org/khanacademy/images/[email protected]Image20072 KiB
https://cdn.kastatic.org/sounds/khanmigo/audio_samples_v2/error/lmnt:khanmigo-m-1:en.txtFetch20048 KiB
https://cdn.kastatic.org/khanacademy/fonts/71fc01820777da89-LatoLatin-Italic.woff2Font20045 KiB
https://cdn.kastatic.org/khanacademy/fonts/1cf13853095a62e2-LatoLatin-Bold.woff2Font20044 KiB
https://cdn.kastatic.org/khanacademy/fonts/d45d409d2fa42169-LatoLatin-Regular.woff2Font20043 KiB
https://cdn.kastatic.org/khanacademy/20349.d9b431b866fd55e7.jsScript20038 KiB
https://cdn.kastatic.org/images/ie-warning/browser_firefox.pngImage20029 KiB
https://cdn.kastatic.org/khanacademy/images/5524c161fa4ef39b-boost-scores.webpImage20025 KiB
https://cdn.kastatic.org/khanacademy/8162.2962948d564a8c14.jsScript20025 KiB
https://cdn.kastatic.org/khanacademy/30384.eb80796dc2c59272.jsScript20023 KiB
https://cdn.cookielaw.org/logos/static/ot_company_logo.pngImage20019 KiB
https://cdn.cookielaw.org/consent/757b7941-c87a-4c66-8f35-eed366c64b57/018dd1ad-8ae3-7978-89b9-87c467eef3d1/en.jsonFetch20017 KiB
https://cdn.kastatic.org/khanacademy/42157.d185f0a3e4c50a8c.jsScript20017 KiB
https://cdn.kastatic.org/khanacademy/fonts/03ac24f73354c182-SourceSerifPro-Regular.woff2Font20016 KiB
https://cdn.kastatic.org/khanacademy/fonts/b430c69579ae2887-SourceSerifPro-Semibold.woff2Font20016 KiB
https://cdn.kastatic.org/khanacademy/runtime.c55414019efae9d7.jsScript20014 KiB
https://cdn.kastatic.org/khanacademy/24546.a962fd8482f9d954.jsScript20014 KiB
https://cdn.cookielaw.org/scripttemplates/202310.2.0/assets/v2/otPcCenter.jsonFetch20013 KiB
https://cdn.kastatic.org/khanacademy/khanacademy.b274f0d95d7d3d64.cssStylesheet20013 KiB
https://cdn.kastatic.org/khanacademy/72690.337d2cb05ca8c2d9.jsScript20012 KiB
https://toolbox.marketingtools.apple.com/api/badges/download-on-the-app-store/black/en-us?releaseDate=1331424000Image20011 KiB

Long tasks (>50 ms)

StartDuration
213 ms76 ms
464 ms66 ms
Analyzing…
running mobile + desktop · ~30s