www.linear.app

Report from 9/20/2026, 1:02:00 PM https://www.linear.app
Latest run · lab, cold cache
67
9/20/2026
28-day score · p75 · the standard
67
20 runs
CRR90%latest
SSD55%latest
TC2192 toklatest
TTFUT266 ms28-day p75

Scored by v3 · source-of-truth hashes: score db860d6ac94e · thresholds e94f8b33e500 — verifiable against the canonical scorer.

The 28-day score is the p75 of nightly runs — the stable number to cite. Deterministic metrics (CRR/SSD/TC) show their latest value (they move only when the site changes); timing (TTFUT) and answer-fidelity (AF) are smoothed by 28-day p75 — the same lab-vs-field split Core Web Vitals uses. Synthetic daily measurement, not real-user field data.

Core Agent Vitals badge  Embed this badge

Show your agent-readiness score anywhere — it links back to this report.

[![Core Agent Vitals](https://agentvitals.dev/badge/linear.app.svg)](https://agentvitals.dev/results?url=https%3A%2F%2Fwww.linear.app)
<a href="https://agentvitals.dev/results?url=https%3A%2F%2Fwww.linear.app"><img src="https://agentvitals.dev/badge/linear.app.svg" alt="Core Agent Vitals" height="20"></a>
What AI tells your customers about youAgent confidence: LOW
🟡Business nameLinear – The system for product development · guessed from page text (no structured data)
Categorynot found
Pricenot applicable · not applicable to this page type
Locationnot applicable · not applicable to this page type
Hoursnot applicable · not applicable to this page type
Productsnot applicable · not applicable to this page type
🟡DescriptionPurpose-built for planning and building products with AI agents. · guessed from page text (no structured data)

An agent is likely to fabricate missing details rather than say “I don’t know”. 0/3 applicable facts come from machine-readable structured data.

67
Overall score
weighted CAV (0–100)
WARN
0–4950–8990–100

Metrics

90%
CRR Content Recovery Needs work
0.55
SSD Semantic Signal Density Needs work
2,192 tok
TC Token Cost Good
156 ms
TTFUT Time to First Useful Token N/A

Token Cost breakdown

Where the page's tokens go (≈5,912 across regions). Most tokens are real content — the agent isn't paying much for chrome.

Content
91.5% · 5,410
Chrome (nav / header / footer)
8.3% · 492
Boilerplate (cookie / ad)
0% · 0
Other
0.2% · 10

Final screenshot

Final screenshot of https://www.linear.app

Diagnostics

medium CRR Content is hidden behind JavaScript

pre-JS raw HTML

Evidence10% of content requires JS · 90% of rendered content recovered (rest is placeholder/wrong)
ImpactA non-rendering agent never sees the JS-injected content.
Effort1–4 h

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.

medium SSD Low signal-to-noise for agents

content vs chrome/boilerplate

Evidencesignal 0.91 (full) · JSON-LD 0/1 · missing: structured-data
ImpactAgent spends tokens parsing nav/boilerplate instead of content.
Effort30–90 min

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 90/100 · Agent Ready

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 Learn →
robots.txt (AI bots) Major AI bots allowed Learn →
sitemap.xml Found at /sitemap.xml Learn →
JSON-LD structured data No JSON-LD found Learn →
agents.json Found at /agents.json Learn →
WebMCP endpoint Found at /webmcp.json Learn →
OpenAPI / API docs Found at /openapi.json Learn →

Issues (1)

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/

Passed audits (11)

✓ robots.txt allows AI bots✓ No CAPTCHA wall✓ No content-blocking cookie wall✓ Machine-readable prices✓ llms.txt present + valid✓ No login wall on public content✓ XML sitemap present + fresh✓ Server response (TTFB)✓ agents.json discovery✓ WebMCP endpoint✓ API documentation

Transport & Trust (SEC 1.0.0)

HTTPS, HSTS, CSP, sniffing, referrer and CORS posture. Diagnostic only — this does not affect the CAV score. A security header does not make a page more legible to an agent, so scoring it would reward a CDN toggle that changes nothing an agent can recover. We measure it and say so.

73Transport posture (0–100, unscored)
3pass
1warn
1fail
Per-header findings (6)
HeaderEvidence
✅ HTTPSserved over HTTPS
✅ HSTSmax-age=63072000; includeSubDomains
⚠️ Content-Security-Policyscript-src allows 'unsafe-inline'
❌ X-Content-Type-Optionsmissing nosniff
✅ Referrer-Policysame-origin
➖ CORS exposureno CORS headers on the document (normal for an HTML page)
Full profile — how to improve · unused JS · network · timing

How to improve

mediumSplit the heaviest unused bundle

DefaultRenderer-CHRfes1m.js — 107 KiB transferred, 80.9% unused

EvidenceCDP JS coverage: 87 KiB of this bundle is never executed on load.
Impact~-87 KiB transfer; lower Token Cost + faster agent parse.
Effort30–90 min
FixDynamic-import() the below-the-fold parts of DefaultRenderer-CHRfes1m.js, or drop unused dependencies.
mediumBreak up long main-thread tasks

longest task 163 ms (9 total)

EvidenceMain thread blocked 163 ms by the longest task.
ImpactFaster interactivity + content settling.
Effort1–4 h
FixSplit heavy work, defer third-party scripts, move compute off the main thread.
mediumCut total transfer weight

3.1 MB total

Evidence3.1 MB transferred.
ImpactCheaper, faster fetch on slow links.
Effort1–3 h
FixEnable Brotli, serve WebP/AVIF images, defer non-critical resources.

Wasted JavaScript (by bundle)

Transfer-accurate — each bundle's transfer size × its unused %, ranked by wasted bytes (the biggest code-splitting wins). Unused JS also inflates Token Cost (TC).

BundleTransferUnusedWasted
https://static.linear.app/web/_next/static/chunks/DefaultRenderer-CHRfes1m.js107 KiB80.9%87 KiB
https://static.linear.app/web/_next/static/chunks/RootActionBoundary-BZpVTzpS.js66 KiB83.5%55 KiB
https://static.linear.app/web/_next/static/chunks/framework-CjFkntPc.js67 KiB62.2%42 KiB
https://static.linear.app/web/_next/static/chunks/module-DYjh5FNu.js55 KiB70%38 KiB
https://static.linear.app/web/_next/static/chunks/index-B-ahiwZ8.js62 KiB47.9%30 KiB
https://static.linear.app/web/_next/static/chunks/vinext-DNwWJSFw.js46 KiB63.6%29 KiB
https://e.linear.app/static/surveys.js?v=1.257.135 KiB83.6%29 KiB
https://static.linear.app/web/_next/static/chunks/client-mO8OUDRH.js32 KiB80.5%26 KiB
https://static.linear.app/web/_next/static/chunks/dist-BPeK2maz.js28 KiB81.8%23 KiB
https://static.linear.app/web/_next/static/chunks/code-diff-B8O9bXWk.js25 KiB82%20 KiB
https://static.linear.app/web/_next/static/chunks/schemas-DjXhKnyP.js24 KiB81.6%20 KiB
https://static.linear.app/web/_next/static/chunks/MediaPlayer-BkfYoWg5.js21 KiB89.9%19 KiB
https://static.linear.app/web/_next/static/chunks/Providers-pjaIWOr7.js105 KiB17.4%18 KiB
https://static.linear.app/web/_next/static/chunks/SidePanel-D2onhsLJ.js22 KiB78.9%18 KiB
https://static.linear.app/web/_next/static/chunks/HeroIllustration-PtUjyTNz.js33 KiB46.1%15 KiB

Network

483Requests
3210 KiBTransferred
364Scripts
0%3rd-party
9Long tasks
Script (364)
1614 KiB
Image (9)
739 KiB
Fetch (9)
353 KiB
Document (1)
176 KiB
Font (2)
158 KiB
Stylesheet (91)
138 KiB
Other (6)
29 KiB
Manifest (1)
2 KiB
Heaviest requests (30)
URLTypeStatusTransfer
https://static.linear.app/web/_next/static/media/grain-default.mxaw2efG.pngImage200681 KiB
https://linear.app/api/search-indexFetch200208 KiB
https://linear.app/homepageDocument200176 KiB
https://static.linear.app/fonts/Berkeley-Mono-Variable.woff2?v=3.2Font200158 KiB
https://static.linear.app/web/_next/static/chunks/DefaultRenderer-CHRfes1m.jsScript200107 KiB
https://static.linear.app/web/_next/static/chunks/Providers-pjaIWOr7.jsScript200105 KiB
https://static.linear.app/web/_next/static/chunks/framework-CjFkntPc.jsScript20067 KiB
https://static.linear.app/web/_next/static/chunks/RootActionBoundary-BZpVTzpS.jsScript20066 KiB
https://static.linear.app/web/_next/static/chunks/index-B-ahiwZ8.jsScript20062 KiB
https://static.linear.app/web/_next/static/chunks/module-DYjh5FNu.jsScript20055 KiB
https://linear.app/customers?_rsc=olkCpsUiiOqNbCEhFetch20051 KiB
https://linear.app/now?_rsc=olkCpsUiiOqNbCEhFetch20050 KiB
https://static.linear.app/web/_next/static/chunks/vinext-DNwWJSFw.jsScript20046 KiB
https://e.linear.app/static/surveys.js?v=1.257.1Script20035 KiB
https://static.linear.app/web/_next/static/chunks/HeroIllustration-PtUjyTNz.jsScript20033 KiB
https://static.linear.app/web/_next/static/chunks/client-mO8OUDRH.jsScript20032 KiB
https://static.linear.app/web/_next/static/chunks/dist-BPeK2maz.jsScript20028 KiB
https://linear.app/cdn-cgi/imagedelivery/fO02fVwohEs9s9UHFwon6A/c7fa8f5f-d439-4329-6a65-de549b51e300/f=auto,fit=scale-down,metadata=none,width=2560Image20026 KiB
https://static.linear.app/web/_next/static/chunks/code-diff-B8O9bXWk.jsScript20025 KiB
https://static.linear.app/web/_next/static/chunks/schemas-DjXhKnyP.jsScript20024 KiB
https://webassets.linear.app/images/ornj730p/production/f79251b06e9edeeacbf2875384defe629e000b3c-352x352.png?w=72&q=95&auto=format&dpr=2Image20024 KiB
https://static.linear.app/web/_next/static/chunks/SidePanel-D2onhsLJ.jsScript20022 KiB
https://static.linear.app/web/_next/static/chunks/proxy-Dz_JLKQJ.jsScript20022 KiB
https://static.linear.app/assets/pwa/icon_180.png?v=3Other20021 KiB
https://static.linear.app/web/_next/static/chunks/MotionConfigContext-CR5RYqEK.jsScript20021 KiB
https://static.linear.app/web/_next/static/chunks/MediaPlayer-BkfYoWg5.jsScript20021 KiB
https://static.linear.app/web/_next/static/chunks/PlanFeature-yPgB8Xbk.jsScript20018 KiB
https://static.linear.app/web/_next/static/chunks/Logos-DcKvdXlS.jsScript20017 KiB
https://linear.app/now/introducing-loops?_rsc=olkCpsUiiOqNbCEhFetch20016 KiB
https://static.linear.app/web/_next/static/chunks/tsx-D0-aSICp.jsScript20016 KiB

Long tasks (>50 ms)

StartDuration
731 ms163 ms
911 ms69 ms
269 ms61 ms
1175 ms57 ms
1261 ms54 ms
1392 ms54 ms
1323 ms53 ms
1026 ms52 ms
1088 ms52 ms
Analyzing…
running mobile + desktop · ~30s