---
title: "What websites cost an AI to read | Hydrafetch"
url: https://hydrafetch.com/reports/token-index/
description: "Measured: how many tokens of markup a site sends for every token of content. 40 well-known sites, 6:1 to 918:1."
---

[hydrafetch](https://hydrafetch.com/)[Book a call](https://hydrafetch.com/demo/)[Get started](https://app.hydrafetch.com/)

Endpoints

[ScrapeClean markdown from one URL](https://docs.hydrafetch.com/endpoints/scrape)[MapEvery URL on a site, one call](https://docs.hydrafetch.com/endpoints/map)[CrawlWhole sites as one job](https://docs.hydrafetch.com/endpoints/crawl)[SearchRanked results, already fetched](https://docs.hydrafetch.com/endpoints/search)[ExtractTyped records from a schema](https://docs.hydrafetch.com/endpoints/extract)[BrandA company from its domain](https://docs.hydrafetch.com/endpoints/brand)
Concepts

[FormatsMarkdown, structured, links](https://docs.hydrafetch.com/concepts/formats)[QualityConfidence on every response](https://docs.hydrafetch.com/concepts/quality)[CreditsOne a page, failures free](https://docs.hydrafetch.com/concepts/credits)[CachingFresh or cached, your call](https://docs.hydrafetch.com/concepts/caching)

[Quickstart A first clean response in a minute](https://docs.hydrafetch.com/quickstart)
Web data for AI

[Ground RAG in fresh contentCrawl a site on a schedule and pipe clean Markdown into your embeddings.](https://hydrafetch.com/use-cases/rag/)[Give an agent the live webSearch mid-answer and get results already fetched, cleaned and citable.](https://hydrafetch.com/use-cases/agents/)[Turn listings into a datasetPoint a JSON schema at a directory and get typed rows back.](https://hydrafetch.com/use-cases/structured-extraction/)[Watch pages for changesRe-run a set on a schedule and diff what came back.](https://hydrafetch.com/use-cases/change-monitoring/)[Track prices and competitorsMap a catalogue, pull every page, and extract the fields that move.](https://hydrafetch.com/use-cases/competitor-intelligence/)
Company and brand data

[Enrich a company from its domainOne call returns the name, industry, assets, palette and socials.](https://hydrafetch.com/use-cases/company-enrichment/)[Theme your app per tenantResolve a domain to a full design system and restyle your UI at runtime.](https://hydrafetch.com/use-cases/white-label-theming/)[Autofill onboardingTurn a work email domain into a filled-in company form.](https://hydrafetch.com/use-cases/onboarding-autofill/)

[All use cases Each one worked end to end, on real captures](https://hydrafetch.com/use-cases/)
[DocsEndpoints, formats and limits](https://docs.hydrafetch.com/)[BlogHow the engine is measured](https://hydrafetch.com/blog/)[Extraction benchmarkWord-level F1 against the field](https://hydrafetch.com/reports/extraction-benchmark/)[Token indexWhat a page costs once it is clean](https://hydrafetch.com/reports/token-index/)
[Talk to a human Thirty minutes, and bring your hardest URL](https://hydrafetch.com/demo/)

Measured August 25th 2026

# What your website costs an AI to read

Every page an agent reads is billed by the token, and most of what a modern site sends is not content. We measured 40 well-known sites. The gap between the markup they send and the words they deliver runs from 5.7:1 to 918:1.

One homepage eachNothing droppedHarness published

A typical page in this set9 of every 1,000 tokens
it sends are content.

contentmarkup

Heaviest

918:1figma.com

Median of 40

107:1

Leanest

5.7:1postgresql.org

## Check your own

Same measurement, on any page. No signup. Your result shows where the page would place, and the published ranking does not move.

## The ranking

Markup sent, content delivered, and the ratio between them. Lower is better. Every row is one homepage, fetched once, counted at four characters per token. This is a list chosen for names you will recognise, not a sample of the web, so read it as 40specific measurements rather than an estimate of anything wider.

- hydrafetch.com

- hydrafetch.com

- hydrafetch.com

- hydrafetch.com

Logarithmic to 1,000:1. Median 107:1 across 40. The pair on the right is markup tokens over content tokens. Hover or tap any row to read it.

## A page, one cell at a time

Each grid is one homepage cut into a thousand cells, drawn to scale. The lit cells are the content an agent can use; every other cell is markup it pays for and discards.

Figmafigma.com1 / 1000
0.11% content. One cell in a thousand is the page. The rest is markup.

Redisredis.io1 / 1000
0.13% content. One cell in a thousand is the page. The rest is markup.

Atlassianatlassian.com2 / 1000
0.17% content. 998 of these cells are markup an agent pays for and discards.

Kuberneteskubernetes.io89 / 1000
8.9% content. 911 of these cells are markup an agent pays for and discards.

news.ycombinator.comnews.ycombinator.com95 / 1000
9.5% content. 905 of these cells are markup an agent pays for and discards.

PostgreSQLpostgresql.org175 / 1000
17.5% content. 825 of these cells are markup an agent pays for and discards.

hydrafetch.com

## No single culprit

The obvious explanation is inline script. If it were the whole story, these points would climb left to right. They do not, and the sites that fill their pages with icon sprites or stylesheets land just as high.

Vertical is the markup-to-content ratio, horizontal is how much of the document is inline script. If script explained the ranking these would climb left to right. Hover any logo to read it.

## What the numbers say

The sites built for developers by well-funded companies are the expensive ones. The plain ones win by an order of magnitude, and it is not close: postgresql.org sends six tokens of markup per token of content, and several developer-tool homepages send more than four hundred.

None of this shows up in a page-weight budget, because the cost is not bandwidth. A browser renders the markup and throws it away. A model pays for all of it.

## How we measured

One homepage per site, fetched once on August 25th 2026. Markup sent is the HTML as delivered. Content is what survives extraction. Tokens are counted at four characters each, the same convention throughout.

40 sites attempted, 40 measured. Nothing was dropped. A drop rate that is not published turns a survey into a survivorship filter, and the sites hardest to read are plausibly the heaviest ones. One caveat we would want asked of us: the content figure is what our own extractor kept, so a page we under-read scores worse than it deserves. These are measurements of pages as read by one extractor, not properties of the pages.

The harness and the full dataset are on GitHub, MIT licensed, at [Hydrafetch/token-cost-index](https://github.com/Hydrafetch/token-cost-index). Point it at any site and it prints the same numbers.

[ Start ]

## Clean web data is one call away.

250 free credits, no card required. Failures are never billed.

[Get API key](https://app.hydrafetch.com/)[Read the docs](https://docs.hydrafetch.com/)
