
Disclosure: Some links on this page are affiliate links. We may earn a commission at no extra cost to you.
Concurrent forensic HTTP telemetry across 100 live domains measuring TTFB, mobile LCP estimation, JSON-LD schema graphs, compression, and llms.txt endpoints
76.9% failed mobile LCP (>2.5s), 28.6% lacked Schema, and SaaS led AI readiness (96%) while Agencies lagged at 27.3%
There is a persistent disconnect between frontend architectural best practices and how websites actually load for mobile visitors. Teams frequently celebrate clean builds, edge deploys, and generative AI features, while end users face multi-second rendering freezes, megabyte-heavy DOM payloads, and missing metadata. Over the past 24 hours, our engineering lab ran automated forensic HTTP probes across 100 live production websites across four distinct sectors: SaaS and Developer Tools, E-Commerce and DTC Brands, Indie Hackers, and Digital Agencies. The collected telemetry establishes a rigorous, unvarnished baseline: 76.9% of audited production websites fail Google Core Web Vitals mobile LCP, 28.6% have zero structured schema data, and a dramatic divide separates developer tools from creative agencies in AI crawler readiness.
Executive Benchmark: How the Four Sectors Compare
To understand how different web development philosophies impact real-world performance, we segmented our 100-domain cohort into four distinct sectors: SaaS and Developer Tools, E-Commerce and Direct-to-Consumer Brands, Indie Hackers and Micro-SaaS, and Digital Agencies and Design Studios.
Each domain was queried using standardized HTTP probes emulating a mobile user agent. We captured Time to First Byte (TTFB), content encoding, raw HTML payload sizes, total script count, image formats, Schema.org JSON-LD presence, and verified llms.txt endpoints. Across the 91 responsive domains, average TTFB stood at 1,034ms and average estimated mobile LCP reached 4.58s: nearly double Google recommended 2.5-second threshold.
The data demonstrates clear sector-specific tradeoffs: developer tools prioritize modern protocols and AI discoverability but accumulate client hydration weight; e-commerce accumulates massive tag manager overhead; indie hackers maintain exceptional asset discipline; and design studios prioritize visual aesthetics at the complete expense of AI machine-readability.
| Sector Cohort | Sample | Avg TTFB | Avg Mobile LCP | Avg HTML Size | Schema Adoption | llms.txt Readiness |
|---|---|---|---|---|---|---|
| SaaS & Developer Tools | 25 sites | 769ms | 5.06s | 717.7 KB | 80.0% | 96.0% |
| E-Commerce & DTC | 22 sites | 1,388ms | 6.51s | 849.5 KB | 77.3% | 90.9% |
| Agencies & Studios | 22 sites | 998ms | 3.85s | 426.4 KB | 68.2% | 27.3% |
| Indie Hackers & Micro-SaaS | 22 sites | 1,017ms | 2.86s | 141.9 KB | 59.1% | 36.4% |
| Cross-Sector Average | 91 sites | 1,034ms | 4.58s | 540.0 KB | 71.4% | 63.7% |
Cohort 1: SaaS & Developer Tools (The AI Search Leaders)
The SaaS and Developer Tools cohort represented the most technically sophisticated group in our benchmark. An extraordinary 96.0% of sites in this category (24 of 25) publish an active llms.txt file at the root, making them readily parseable by generative search engines such as Perplexity, ChatGPT, and Claude.
Furthermore, 80.0% of SaaS domains incorporate JSON-LD structured data. Average server TTFB was the fastest of any sector at 769ms, driven by modern edge networks such as Cloudflare, Vercel, and AWS CloudFront.
However, SaaS marketing sites suffered from substantial client-side script overhead. With an average HTML size of 717.7 KB and dense client JavaScript bundles, average mobile LCP hovered at 5.06s. While edge servers deliver initial bytes rapidly, main-thread compilation of interactive React components delays visual paint on mobile devices.
| Platform | TTFB | Est LCP | HTML Size | Schema | llms.txt | Encoding |
|---|---|---|---|---|---|---|
| Axiom | 556ms | 6.31s | 1365.2 KB | Yes | Yes | Brotli |
| Cal.com | 579ms | 8.48s | 2107.0 KB | No | Yes | Brotli |
| Clerk | 843ms | 6.84s | 1165.0 KB | Yes | Yes | Brotli |
| Cursor | 290ms | 4.98s | 629.8 KB | Yes | Yes | Brotli |
| Dub | 758ms | 5.63s | 690.0 KB | Yes | Yes | Brotli |
| Fly.io | 364ms | 2.06s | 91.1 KB | Yes | Yes | Brotli |
| incident.io | 263ms | 4.05s | 407.9 KB | Yes | Yes | Brotli |
| Linear | 2202ms | 8.8s | 1265.7 KB | No | Yes | Brotli |
| Loops | 533ms | 6.37s | 1398.4 KB | Yes | Yes | Brotli |
| Mintlify | 990ms | 4.6s | 370.9 KB | No | Yes | Gzip |
| Modal | 1718ms | 4.01s | 403.9 KB | Yes | Yes | Gzip |
| Neon | 554ms | 3.85s | 420.3 KB | Yes | Yes | Brotli |
| PostHog | 468ms | 6.86s | 1544.2 KB | Yes | Yes | Brotli |
| Railway | 570ms | 2.49s | 246.9 KB | Yes | Yes | Gzip |
| Raycast | 1419ms | 4.47s | 385.1 KB | No | No | Brotli |
| Render | 1417ms | 5.39s | 391.6 KB | Yes | Yes | Gzip |
| Replit | 499ms | 4.97s | 655.6 KB | No | Yes | Brotli |
| Resend | 720ms | 4.72s | 400.6 KB | Yes | Yes | Brotli |
| Supabase | 288ms | 7.01s | 1306.6 KB | Yes | Yes | Brotli |
| Tinybird | 817ms | 3.97s | 304.3 KB | Yes | Yes | Brotli |
| Trigger.dev | 1058ms | 3.26s | 434.0 KB | Yes | Yes | Brotli |
| Turso | 254ms | 2.58s | 148.8 KB | Yes | Yes | Brotli |
| Upstash | 297ms | 3.38s | 286.9 KB | Yes | Yes | Brotli |
| v0 | 1308ms | 6.83s | 1008.7 KB | Yes | Yes | Brotli |
| Vercel | 449ms | 4.49s | 514.2 KB | Yes | Yes | Brotli |
Cohort 2: E-Commerce & DTC Brands (The Tag Manager & Script Bloat Trap)
E-Commerce websites in our audit recorded the highest latency metrics across every single category. The average mobile LCP was 6.51 seconds, and server TTFB averaged 1,388ms: over 40% slower than SaaS platforms.
The primary bottleneck for direct-to-consumer websites is not usually server capacity, but the compounding weight of third-party marketing tags: Google Tag Manager containers, Facebook Conversions API pixels, TikTok pixels, Klaviyo popups, and review widgets (Yotpo, Okendo, Gorgias).
Furthermore, e-commerce homepages averaged 849.5 KB of raw HTML payload before stylesheets and images even load. On the positive side, 90.9% of these brands maintain llms.txt discovery endpoints, and 77.3% implement Schema.org markup (predominantly Product and Organization entities).
| Brand | TTFB | Est LCP | HTML Size | Schema | llms.txt | Encoding |
|---|---|---|---|---|---|---|
| Allbirds | 659ms | 5.42s | 652.5 KB | No | Yes | Brotli |
| Away Travel | 1646ms | 7.12s | 991.8 KB | Yes | Yes | Brotli |
| Bellroy | 1370ms | 5.94s | 589.3 KB | No | No | Gzip |
| Brooklinen | 1188ms | 8.59s | 1633.9 KB | Yes | Yes | Brotli |
| Casper | 671ms | 5.38s | 735.0 KB | Yes | Yes | Brotli |
| Chubbies | 3201ms | 7.17s | 748.3 KB | Yes | Yes | Brotli |
| Cotopaxi | 909ms | 4.79s | 360.0 KB | Yes | Yes | Gzip |
| Olipop | 925ms | 7.26s | 1278.4 KB | Yes | Yes | Brotli |
| Feastables | 373ms | 4.45s | 525.6 KB | Yes | Yes | Brotli |
| Glossier | 1258ms | 5.62s | 519.1 KB | No | Yes | Brotli |
| Graza | 1097ms | 5.28s | 459.4 KB | Yes | Yes | Brotli |
| Gymshark | 862ms | 3.45s | 50.0 KB | No | Yes | Brotli |
| Harry's | 5823ms | 14.35s | 2148.5 KB | Yes | Yes | Brotli |
| Liquid Death | 717ms | 7.55s | 1445.3 KB | No | Yes | Brotli |
| Magic Spoon | 679ms | 4.57s | 462.5 KB | Yes | Yes | Brotli |
| Partake Foods | 372ms | 4.13s | 318.9 KB | Yes | Yes | Brotli |
| Ridge | 1453ms | 8.79s | 1612.6 KB | Yes | Yes | Brotli |
| Rothy's | 1557ms | 7.67s | 1105.7 KB | Yes | Yes | Brotli |
| Solo Stove | 977ms | 6.81s | 1109.4 KB | Yes | No | Brotli |
| UNTUCKit | 921ms | 4.88s | 387.4 KB | Yes | Yes | Brotli |
| Vuori | 1614ms | 5.8s | 528.9 KB | Yes | Yes | Brotli |
| Warby Parker | 2253ms | 8.13s | 1026.6 KB | Yes | Yes | Brotli |
Cohort 3: Indie Hackers & Micro-SaaS (The Lean Payload Champions)
Indie hackers and solo developers delivered by far the fastest mobile load times in our entire study. With an average mobile LCP of 2.86 seconds and average HTML payload of just 141.9 KB, indie products outpaced enterprise SaaS by over 2.2 seconds.
Tools like Plausible, Bannerbear, Senja, Protohype, and Spellblaze avoid heavy marketing technology suites and nested corporate tracking pixels. Their landing pages serve clean HTML with minimal render-blocking JavaScript.
The Achilles heel for indie hackers, however, is structured data and machine discoverability. Only 59.1% included JSON-LD schema on their landing pages, and only 36.4% published an llms.txt file. By neglecting structured entity graphs, indie builders leave significant organic and AI search visibility on the table.
| Product | TTFB | Est LCP | HTML Size | Schema | llms.txt | Encoding |
|---|---|---|---|---|---|---|
| Bannerbear | 994ms | 1.96s | 22.8 KB | Yes | Yes | Brotli |
| Buttondown | 971ms | 3.21s | 104.8 KB | Yes | Yes | Brotli |
| Calibre | 1567ms | 3.13s | 208.4 KB | Yes | Yes | Gzip |
| Carrd | 235ms | 1.43s | 24.9 KB | No | No | Gzip |
| Fathom Video | 1251ms | 4.39s | 213.4 KB | Yes | No | Gzip |
| Feedbackly | 2052ms | 5.11s | 165.2 KB | Yes | No | Gzip |
| iLovePDF | 338ms | 2.01s | 118.8 KB | No | No | Gzip |
| Photopea | 1642ms | 2.43s | 15.8 KB | No | No | Brotli |
| Plausible Analytics | 198ms | 1.66s | 74.8 KB | Yes | No | Brotli |
| Protohype | 242ms | 0.99s | 1.8 KB | No | Yes | Brotli |
| ReferralPromoCodes | 1660ms | 4.11s | 416.1 KB | Yes | No | Brotli |
| remove.bg | 1599ms | 3.05s | 58.6 KB | No | No | Gzip |
| Screen Studio | 2736ms | 6.32s | 260.8 KB | Yes | No | Brotli |
| Senja | 526ms | 2.29s | 129.0 KB | Yes | No | Brotli |
| Simple Analytics | 2322ms | 4.83s | 435.6 KB | Yes | No | Gzip |
| Spellblaze | 188ms | 1.84s | 77.7 KB | No | No | Brotli |
| Tally Forms | 811ms | 4.2s | 290.1 KB | Yes | Yes | Gzip |
| Testimonial.to | 190ms | 1.85s | 114.1 KB | No | Yes | Brotli |
| TinyBrains | 806ms | 1.56s | 3.2 KB | No | Yes | None |
| Transistor.fm | 440ms | 2.47s | 262.8 KB | Yes | No | Brotli |
| Fathom Analytics | 319ms | 1.52s | 99.4 KB | Yes | Yes | Brotli |
| Wagtail Rocket | 1295ms | 2.49s | 24.1 KB | No | No | None |
Cohort 4: Digital Agencies & Design Studios (Visual Polish vs AI Blindness)
Digital agencies and design studios present a fascinating paradox. Because many agency sites emphasize clean typography, curated case studies, and editorial imagery, their average mobile LCP was a respectable 3.85 seconds, and HTML size averaged 426.4 KB.
However, agencies scored lowest in AI discovery readiness: a meager 27.3% (6 of 22) have implemented an llms.txt file. Over 72% of design studios are completely unoptimized for AI search agents and LLM scrapers.
Additionally, 31.8% of agency websites lacked Schema.org Organization markup, preventing Google Knowledge Graph from validating their client portfolio, verified social profiles, and service taxonomies.
| Agency / Studio | TTFB | Est LCP | HTML Size | Schema | llms.txt | Encoding |
|---|---|---|---|---|---|---|
| AREA 17 | 587ms | 2.36s | 191.6 KB | Yes | No | Gzip |
| BASIC/DEPT | 698ms | 2.72s | 180.2 KB | No | No | Brotli |
| Cheruvo | 243ms | 1.4s | 26.6 KB | Yes | No | Brotli |
| Clay Global | 702ms | 3.23s | 241.7 KB | Yes | Yes | Brotli |
| GC Crafted | 2036ms | 3.68s | 81.5 KB | Yes | No | Gzip |
| Fantasy Interactive | 812ms | 3.01s | 200.5 KB | Yes | Yes | Brotli |
| Framepin | 359ms | 1.45s | 24.6 KB | Yes | No | Brotli |
| Huge Inc | 949ms | 4.31s | 299.3 KB | Yes | No | Brotli |
| Instrument | 1542ms | 13.01s | 3436.6 KB | Yes | No | Brotli |
| Koto Studio | 472ms | 4.66s | 463.2 KB | Yes | No | Brotli |
| Folk | 1395ms | 4.84s | 215.8 KB | Yes | No | Gzip |
| Monopo London | 910ms | 2.53s | 128.1 KB | No | No | Brotli |
| Pentagram | 2477ms | 7.36s | 1160.6 KB | Yes | No | Gzip |
| Portreeve | 575ms | 3.47s | 132.9 KB | No | Yes | Brotli |
| Resn | 311ms | 1.48s | 4.2 KB | No | No | None |
| Spielwave | 574ms | 1.32s | 1.7 KB | No | Yes | Brotli |
| Studio Meta | 1445ms | 4.16s | 491.2 KB | Yes | Yes | Brotli |
| Ueno (Archive) | 1749ms | 5.59s | 505.9 KB | Yes | No | Brotli |
| COLLINS | 1117ms | 2.45s | 169.6 KB | No | No | Brotli |
| Envoy | 1740ms | 3.8s | 180.6 KB | No | No | Brotli |
| Wheelz | 644ms | 2.63s | 135.9 KB | Yes | No | Brotli |
| Work & Co | 618ms | 5.27s | 1109.6 KB | Yes | Yes | Gzip |
Unresponsive Domains & Connection Failures
Of the 100 domains audited, 9 failed to return a valid 200 HTTP response during our concurrent probe pass. The failures stemmed from DNS resolution timeouts, restrictive Web Application Firewall (WAF) rate limits, or SSL certificate handshake drops.
When an automated crawler or search engine bot encounters a connection timeout, it consumes crawl budget without indexing page updates. Engineering teams should monitor origin availability across multiple regional egress IPs.
| Website Name | Domain | Category | Observed Failure |
|---|---|---|---|
| Digitaly Space | digitaly.space | Agencies & Studios | Uncompressed HTML |
| Real Resizer | realresizer.com | Agencies & Studios | Crawl Error: HTTPSConnectionPool(host='realresizer.co |
| Sunny Shores Creative | sunnyshorescreative.com | Agencies & Studios | Crawl Error: HTTPSConnectionPool(host='sunnyshorescre |
| Bombas | bombas.com | E-Commerce | Uncompressed HTML |
| Huckberry | huckberry.com | E-Commerce | Missing JSON-LD Schema |
| MeUndies | meundies.com | E-Commerce | Uncompressed HTML |
| Leave Me Alone | leavemealone.app | Indie Hackers | Crawl Error: HTTPSConnectionPool(host='leavemealone.a |
| Roast My Website | roastmywebsite.net | Indie Hackers | Crawl Error: HTTPSConnectionPool(host='roastmywebsite |
| Typfully | typfully.com | Indie Hackers | Crawl Error: HTTPSConnectionPool(host='typfully.com', |
Three Universal Architectural Fixes for Modern Web Performance
Across all 100 audited domains, our forensic probes revealed three recurring failure modes that degrade mobile Core Web Vitals and search rankings. Implementing these three fixes will immediately move most websites into Google green zone (LCP <= 2.5s).
Fix 1: Preload and Priority Hint the LCP Hero Asset. If your Largest Contentful Paint element is an image or background hero, instruct the browser to fetch it immediately using fetchpriority="high" and rel="preload".
Fix 2: Offload Third-Party Tag Managers. Do not execute tracking scripts synchronously in the initial HTML head. Use modern script workers (such as Partytown) or tag execution deferral after window load to prevent main-thread locking.
Fix 3: Publish Complete JSON-LD Knowledge Graphs. Ensure your primary entity is disambiguated with an @id URI, official social channels in sameAs, and explicit publisher relationships.
<!-- 1. Preload Hero Image in Document Head with High Priority -->
<link rel="preload" as="image" href="/assets/hero-banner.webp" type="image/webp" fetchpriority="high" />
<!-- 2. Responsive Hero Image with Modern WebP/AVIF Formats -->
<img
src="/assets/hero-banner.webp"
alt="Forensic website performance audit dashboard showing Core Web Vitals telemetry"
width="1200"
height="630"
fetchpriority="high"
decoding="async"
loading="eager"
class="w-full h-auto object-cover rounded-xl"
/>
<!-- 3. Minimal Connected Schema.org Knowledge Graph -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Acme SaaS",
"url": "https://example.com",
"sameAs": [
"https://twitter.com/acmesaas",
"https://github.com/acmesaas"
]
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"url": "https://example.com",
"name": "Acme SaaS",
"publisher": { "@id": "https://example.com/#organization" }
}
]
}
</script>- Ensure raw HTML payload is under 200 KB before client hydration bundles
- Verify Brotli compression (content-encoding: br) is active on edge CDN layers
- Eliminate synchronous third-party scripts from the initial document head
- Assign fetchpriority="high" to the mobile LCP candidate image
- Implement a valid llms.txt markdown summary at https://yourdomain.com/llms.txt
- Validate connected Schema.org JSON-LD without disconnected orphan nodes
Audit Your Own Website with Our Free Forensic Suite
Every metric collected in this 100-website benchmark was captured using our open forensic tool suite. You can run these exact diagnostic scans on your own production domains for free.
Inspect server response times and compression headers with the Website Speed Test.
Isolate viewport bottlenecks and mobile paint elements with the Mobile LCP Highlighter.
Verify entity disambiguation and Knowledge Graph syntax with the JSON-LD Schema Validator.
Check AI bot discovery and llms.txt configuration with the GEO & AI Readiness Checker.
Trace mobile horizontal scroll and layout shift issues with Overflow Trace.
Benchmark Your Website Speed and AI Readiness
Run an instant, comprehensive forensic audit on your production domain to discover your true mobile LCP, Knowledge Graph integrity, and AI crawler readiness.
Run Free Forensic AuditFrequently Asked Questions
Q1:Why do 76.9% of production websites fail Google mobile LCP target?
Modern websites frequently bundle dozens of client-side JavaScript libraries, analytics tags, and uncompressed media onto the mobile viewport. When a mobile CPU parses multiple megabytes of JavaScript, the main thread locks, delaying visual image and text paints well past Google 2.5-second threshold.
Q2:What is llms.txt and why are 96% of developer tools adopting it?
llms.txt is an emerging web standard that provides a curated, clean markdown summary of a website for AI crawlers like PerplexityBot, GPTBot, and ClaudeBot. Developer tools adopted it aggressively to ensure their documentation and APIs are accurately cited in AI answer engines.
Q3:How does server TTFB affect Largest Contentful Paint?
Time to First Byte (TTFB) is the foundational baseline for all page metrics. If your origin server takes 1,000ms just to send the first HTML byte, the browser cannot even begin discovering images or scripts until second 1.0, leaving only 1.5 seconds for all subsequent downloads, parsing, and rendering.
Q4:Why did Indie Hackers achieve faster mobile load times than enterprise SaaS?
Indie Hackers typically build with lean, minimal tech stacks and avoid layering dozens of enterprise tracking pixels (Marketo, HubSpot, Segment, 6sense, Clearbit). Their average HTML payload was 141.9 KB compared to 717.7 KB for enterprise SaaS, allowing mobile devices to render content instantaneously.
Architectural Verdict & Summary
Our 100-website benchmark reveals that the modern web is suffering from severe script bloat and payload inflation: 76.9% of production sites fail Google mobile LCP benchmark, while over 28% lack basic structured data. While SaaS platforms lead in AI search readiness with 96% llms.txt adoption, indie developers hold the crown for lean mobile performance. By pruning unnecessary third-party tags, preloading hero assets, and establishing machine-readable Knowledge Graphs, engineering teams can dramatically outperform their competitors in both user conversion and organic search rankings.