Three measurement layers
The CDN edge, a browser beacon, and agent fetches of the markdown twins. They count different populations, and the distance between them is the finding — not an error to reconcile.
37 weeks tracked · collected 2026-09-07
69,736 of 94,514 markdown-twin fetches last week came from named AI crawlers. The same bytes go to every client — nothing here varies by user-agent.
A further 23,744 fetches came from clients
presenting an ordinary browser user-agent. Humans do not hand-fetch
index.md, so the AI share is a floor, not a ceiling.
/api, /mcp, bots alike.
226 GB,
17.6% 4xx/5xx.What the browser layer is actually counting
Four indicators read together, not as separate stats. Each one alone is survivable; all four at once is a bot signature.
Daily volume by layer
One shared timeline, one scale per layer. The three differ by orders of magnitude, so plotting them against a common axis would invent a relationship that is not in the data.
The shaded band on the agent panel is time that was never measured. Twin counting began 2026-08-13, when CloudFront access logging was switched on — which is not the same as nobody having come.
Who is fetching
Ranked by fetches of the markdown twins, last week. Search and SEO bots are shown but excluded from the AI share.
Fetchers by user-agent
11 distinct agents, from 9,281,065 logged requests scanned.
How they crawl
The shape of the crawl, not a leaderboard.
Weekly history
An em dash means not measured, never zero. Twin counting began 2026-08-13; printing 0 for the weeks before it would assert that no agent came, which we do not know.
| Week ending | Requests | GB | Err | Views | Sessions | SG % | Bounce | Twins | AI % |
|---|---|---|---|---|---|---|---|---|---|
| 2026-09-06 | 7,294,109 | 226 | 17.6% | 132,063 | 129,940 | 65.0% | 88.9% | 94,514 | 73.8% |
| 2026-08-30 | 9,095,343 | 265 | 15.13% | 222,848 | 219,643 | 62.4% | 95.1% | 83,469 | 73.2% |
| 2026-08-23 | 7,831,319 | 281 | 6.78% | 196,720 | 188,855 | 50.9% | 95.3% | 145,637 | 81.6% |
| 2026-08-16 | 6,479,429 | 187 | 8.77% | 213,379 | 206,851 | 66.0% | 95.4% | 6,322* | 59.2% |
| 2026-08-09 | 6,561,545 | 159 | 14.28% | 104,859 | 101,108 | 34.1% | 96.0% | — | — |
| 2026-08-02 | 9,548,627 | 196 | 16.49% | 526,240 | 502,881 | 83.9% | 83.8% | — | — |
| 2026-07-26 | 6,373,099 | 122 | 10.55% | 124,539 | 95,693 | 39.5% | 92.8% | — | — |
| 2026-07-19 | 5,218,191 | 75 | 5.21% | 111,200 | 103,870 | 16.3% | 89.8% | — | — |
| 2026-07-12 | 6,018,956 | 71 | 5.48% | 123,654 | 115,883 | 20.3% | 91.3% | — | — |
| 2026-07-05 | 6,515,760 | 69 | 9.48% | 229,654 | 222,191 | 55.4% | 95.4% | — | — |
| 2026-06-28 | 5,363,220 | 77 | 5.28% | 161,481 | 152,684 | 25.7% | 91.3% | — | — |
| 2026-06-22 | 1,881,905 | 26 | 14.36% | 74,687 | 68,336 | 7.1% | 88.8% | — | — |
| 2026-06-21 | 1,320,865 | 17 | 15.3% | 75,183 | 70,441 | 6.1% | 88.6% | — | — |
| 2026-06-14 | 2,073,492 | 57 | — | 58,598 | 54,197 | 9.4% | 88.8% | — | — |
| 2026-06-10 | 2,359,591 | 47 | — | 48,367 | 45,731 | 9.2% | 89.0% | — | — |
| 2026-06-03 | 1,386,946 | 42 | — | 13,951 | 13,113 | 88.4% | 96.3% | — | — |
| 2026-05-27 | 1,156,273 | 45 | — | 3,352 | 2,278 | 35.6% | 64.7% | — | — |
| 2026-05-20 | 753,178 | 29 | — | 6,704 | 6,166 | 90.0% | 97.2% | — | — |
| 2026-05-13 | 713,857 | 21 | — | 11,483 | 11,196 | 95.6% | 98.8% | — | — |
| 2026-05-06 | 443,417 | 10 | — | 981 | 432 | 36.3% | 75.0% | — | — |
| 2026-04-29 | 485,605 | 6 | — | 1,503 | 1,301 | 85.7% | 94.9% | — | — |
| 2026-04-22 | 472,289 | 6 | — | 938 | 442 | 19.9% | 81.9% | — | — |
| 2026-04-15 | 368,448 | 7 | — | 376 | 253 | 16.2% | 67.2% | — | — |
| 2026-04-08 | 330,832 | 4 | — | 321 | 197 | 13.7% | 69.0% | — | — |
| 2026-04-01 | 171,944 | 1 | — | 249 | 204 | 20.0% | 68.6% | — | — |
| 2026-03-25 | 128,668 | 1 | — | 264 | 226 | 19.0% | 72.6% | — | — |
| 2026-03-18 | 119,763 | 1 | — | 579 | 357 | 18.2% | 74.5% | — | — |
| 2026-03-11 | 111,269 | 1 | — | 345 | 280 | 12.8% | 74.3% | — | — |
| 2026-03-04 | 227,967 | 1 | — | 714 | 423 | 18.9% | 72.3% | — | — |
| 2026-02-25 | 160,243 | 1 | — | 776 | 483 | 22.7% | 75.8% | — | — |
| 2026-02-18 | 98,957 | 1 | — | 915 | 427 | 24.1% | 73.5% | — | — |
| 2026-02-11 | 94,345 | 1 | — | 650 | 425 | — | 74.4% | — | — |
| 2026-02-04 | 82,281 | 0 | — | 443 | 346 | — | 78.9% | — | — |
| 2026-01-28 | 83,499 | 0 | — | 466 | 364 | — | 77.5% | — | — |
| 2026-01-21 | 50,792 | 0 | — | 383 | 305 | — | 71.5% | — | — |
| 2026-01-14 | 55,066 | 0 | — | 476 | 347 | — | 75.5% | — | — |
| 2026-01-07 | 72,047 | 1 | — | 513 | 350 | — | 77.7% | — | — |
Why the numbers differ
Edge counts everything
- Every HTTP request served — pages and every asset (CSS, JS, images, fonts)
- Bots, crawlers, feed readers, and
/api+/mcpclients - Cached responses served at the edge, which never reach the S3 origin
- Anything that loads before JavaScript runs, and clients with JavaScript off
Browser counts a subset
- Fires only when JavaScript loads and executes successfully
- Ad blockers and privacy extensions suppress the tag — heavily, on a developer audience
- Declared bots are filtered automatically; headless browsers are not
- Carries no source or medium, so it cannot attribute a visit to anything
Agents are invisible to both
- Agents execute no JavaScript, so the browser layer reports zero for them no matter what happens — a gap no tag fix closes
- The edge counts the request but cannot tell a twin fetch from any other hit, which is why this number comes from the access logs
- A twin fetch has no click-through and never will, so it is reported on its own and never blended into a rate beside human traffic
- The same bytes go to every client. Nothing here varies by user-agent, which is the whole point on a network that publishes the tool auditing that behavior