How we measure what AI agents actually read

· Rafi · updated

Key takeaways

This page covers: What each number means; The pipeline; Worked example: this site; What this challenges; Reproduce it; Limitations; About the author; What to do with this.

What each number means

Every draft in the SiftServe review desk ships with two things: an audit score and a set of capture stats. The audit score comes from the 80-item check covered in the CORE-EEAT scoring methodology post [F11]: "Every page is checked twice using the same 80-item CORE-EEAT standard." This post is about the other half: the capture stats (page weight, token cost, and readable-content yield) and how they're measured, so customers can check the math instead of taking it on faith. These are also the numbers quoted about SiftServe itself: ~90% fewer tokens per page, +37% more readable content, 114 KB → 29 KB on the homepage. It covers what each number means, the measurement pipeline, a worked example, and the limitations; it does not cover the audit rubric itself, which has its own post.

This page is for pilot customers checking their audit report and for skeptics who want to run the measurement themselves. It covers the four capture-stats measurements and the pipeline that produces them — it does not cover the CORE-EEAT audit rubric, which lives in its own post.

Capture stats are the four measurements SiftServe reports for every page: page weight, token cost, readable-content yield, and coverage. Together they describe how much an AI agent can actually read of a page, and at what cost.

The pipeline

We sift our own site, so it is the example we can show end to end. We tested the homepage measurement across multiple versions and found what the limitations below describe: capture stats are per-version snapshots, not one fixed number — the homepage weighed 114 KB at draft v6, 368 KB at the version measured for the v10 audit, and about 121 KB at a later live fetch. Each new sift re-measures.

  1. Fetch like an agent. One raw HTTP GET with a crawler user-agent. No JavaScript, no rendering: the document GPTBot or ClaudeBot receives.
  2. Extract what's readable. Strip <head>, scripts, styles, and inline SVG; collapse the markup; keep text and structured data. This mirrors what a non-rendering reader can use.
  3. Count. Document bytes, extracted-text bytes, and tokens for both.
  4. Sift, then measure again. The same pipeline runs on the sifted document: semantic HTML, FAQs, structured data, and facts that were locked inside images restated as text.
  5. Audit both. The original and the sifted copy each get the full 80-item CORE-EEAT check. That pair of scores (like the 33 → 44 on our own homepage) is what the review desk shows.

Problems encountered

Problem 1: client-rendered content never reached the measurement. No major AI crawler executes JavaScript, so what renders client-side never reaches the measurement; this is also why 57% of top sites show AI crawlers a nearly empty page. The fix built into the pipeline: fetch like an agent, with one raw HTTP GET and a crawler user-agent, no JavaScript and no rendering, so the measured document is the document GPTBot or ClaudeBot actually receives.

Problem 2: facts locked inside images were missed. The fetch measures the HTML document, which is all a text crawler receives — facts that exist only inside images are invisible to it. The fix: sifting restates them as text, which is part of where the +37% readable-content gain comes from. The result on our own homepage: the sifted copy carries more readable text than the original (16,787 vs 11,957 bytes, +40% on this measurement) because sifting restates facts locked inside images and adds FAQs and structured data.

Worked example: this site

MeasurementOriginal pageSifted page (v10)
Page weight368 KB32 KB (−91%)
Readable text (live, 2026-08-26)11,957 bytes · 1,885 words16,787 bytes · 2,700 words
Readable-content yield3.2%~51%
Coverage—96% (3 items flagged)
CORE-EEAT audit score6576

We sift our own site, so it is the example we can show end to end. The numbers below are the homepage's published capture stats — version 10, the sift currently serving AI traffic — plus a live measurement from 2026-08-26 that you can re-run yourself with the snippet in the next section.

Page weight: 368 KB on the original page, 32 KB on the sifted page (v10), a 91% reduction. Readable text, measured live on 2026-08-26: 11,957 bytes and 1,885 words on the original, 16,787 bytes and 2,700 words on the sifted page. Readable-content yield: 3.2% on the original, ~51% on the sifted page. Coverage: 96% (3 items flagged) on the sifted page. CORE-EEAT audit score: 65 on the original, 76 on the sifted page.

About 97% of what an AI agent downloads from the original homepage is delivery, not content: of 376,286 bytes (roughly 94,000 tokens), roughly 3,000 tokens are readable text.

The read, in tokens: the original document is 376,286 bytes. At the ≈4-characters-per-token estimate (OpenAI's published rule of thumb for English text), that is roughly 94,000 tokens of document for roughly 3,000 tokens of readable text. About 97% of what an AI agent downloads here is delivery, not content.

And this is an already-clean, statically rendered page; it weighed 114 KB at draft v6 and grew to 368 KB after a mobile-performance pass inlined its CSS, which speeds up the page for human visitors and is pure overhead for a text crawler. The sifted copy hands the same agent about 8,300 tokens, roughly half of it readable content, and it carries more readable text than the original (16,787 vs 11,957 bytes, +40% on this measurement) because sifting restates facts locked inside images and adds FAQs and structured data.

What 96% coverage looks like in practice: three source items were not carried into v10 — a section heading and two near-duplicate FAQ entries that review deduplicated. Each one is listed by name in the review desk, and publishing meant signing off on exactly that list. Coverage below 100% fails review. Sifting is translation, not summarization; a draft that drops a fact does not ship — the v10 page published at 96% because the three flagged items were named individually and signed off on, not because the 100% standard was waived generally.

That ratio is the mechanism behind the headline numbers. Serving an agent just the content, instead of the whole delivery vehicle, is where ~90% fewer tokens per page comes from (−91% on this page). Restoring what the original hid from non-rendering readers (facts inside images, FAQs, structured data) is where +37% more readable content comes from; today's measurement reads +40%, and we quote the conservative figure. The per-page numbers behind both ship in every pilot's audit report.

What this challenges

The assumption worth challenging: if a page renders fine in a browser, an AI crawler reads it the same way. It does not — no major AI crawler executes JavaScript (Vercel × MERJ analyzed 500M+ GPTBot fetches and found zero JS execution). This is also why 57% of top sites show AI crawlers a nearly empty page (ModPageSpeed, May 2026): what renders client-side never reaches the measurement. On our own homepage — an already-clean, statically rendered page — about 97% of what an agent downloads is delivery, not content.

Reproduce it

The human-view measurement needs nothing but curl and Python:

curl -s https://siftserve.com/ | wc -c

curl -s https://siftserve.com/ | python3 -c "import re, sys; h = sys.stdin.read(); h = re.sub(r'<head[\s\S]*?</head>|<script[\s\S]*?</script>|<style[\s\S]*?</style>|<svg[\s\S]*?</svg>', ' ', h); t = re.sub(r'<[^>]+>', ' ', h); t = re.sub(r'\s+', ' ', t).strip(); print(len(t.encode()), 'bytes of readable text,', len(t.split()), 'words')"

Point it at your own homepage and you have your own content yield in under a minute.

Limitations

We only tested this pipeline — a raw, non-rendering HTTP GET with a crawler user-agent — run against our own homepage across draft versions v6 and v10 plus one later live fetch; we did not test browser rendering or every page type on the site.

About the author

This post is written by Rafi, a SiftServe founder with more than 17 years of experience architecting large-scale data and AI-driven systems, with a strong foundation in machine learning, personalization systems, and data platform engineering. Questions about this post can be sent to info@siftserve.com.

What to do with this

The capture stats turn "AI-readable" into numbers you can check. If you run the snippet on your own homepage and the yield comes back under 10%, most of what an agent downloads from you is markup. That is the gap sifting closes, and the what-is-SiftServe guide explains how. To see the full measurement run on your site, become a research partner.


Key facts

Visual content

Main image: A beige SiftServe graphic says, “Your next visitor isn’t human,” followed by “Make your site readable to AI agents” and “ask → read → convert.” A simple icon of three black horizontal lines with scattered red and gray dots appears on the right.

No hero image is visible; the page opens with a text-only blog article headed “How we measure what AI agents actually read.”

About this company

SiftServe restructures website content into semantic HTML, explicit facts, FAQs, and Schema.org structured data for machine retrieval. Customers review and approve each page before an edge worker serves it to AI and bot traffic at the same URL, while human visitors and search-engine crawlers continue to receive the original site. SiftServe is a product of NextON Consulting FZE, a UAE-based data and research services firm.

Headquartered in United Arab Emirates.

Target customers:

Experience & expertise

People behind the company:

Products

Integrations

Contact

Social

Legal

Pricing

Company

Pages

Frequently asked questions

What is SiftServe?
SiftServe is an infrastructure layer that creates AI-readable versions of existing website pages and serves them to AI and bot traffic.
How does SiftServe work?
SiftServe crawls a site's sitemap, compiles an editable company profile and voice guidelines, rebuilds each page as semantic HTML with explicit facts, FAQs, and structured data, submits it for human approval, and serves the approved version to bots through an edge worker.
Does SiftServe change the website seen by human visitors?
No. Human visitors, Googlebot, and Bingbot continue to receive the original website, while identified AI and bot traffic receives the approved sifted page at the same URL.
How is SiftServe priced?
The service is currently offered as a free eight-week pilot for one domain.
What platforms does SiftServe support?
SiftServe is live with Cloudflare and Azure edge serving, and it reads rendered pages from stacks including WordPress, Next.js, React, and Vue. AWS and Google Cloud support are listed as coming.
What are the requirements for starting a SiftServe pilot?
A pilot requires a live domain, someone with authority to approve content, and a willingness to measure the results.
How does SiftServe handle visitor and customer data?
Its edge software records no visitor IP addresses and sets no cookies, dashboards show visitor data only in aggregate, and model providers are accessed through business APIs whose terms do not permit training on customer content.
How does SiftServe measure results?
Every page receives before-and-after audit scores and per-page capture statistics, while the eight-week pilot tests whether sifted pages increase citations and AI referrals against the unsifted baseline.
Does SiftServe require CMS plugins or origin code changes?
No. SiftServe sits at the edge in front of the site, requires no CMS plugin or origin code changes, and can be removed at any time.
What does 100% coverage mean in a SiftServe audit?
Coverage is the 1:1 trace check: every claim in the original page must be present in the sifted copy. 100% coverage means nothing was summarized away. The 100% figure is the target the audit measures against; a shortfall can still publish only as a named, reviewed exception — for example, the homepage's v10 sift shipped at 96% coverage after three specific flagged items (a section heading and two near-duplicate FAQ entries) were listed by name and signed off on.
Why does SiftServe count tokens instead of kilobytes?
Agents work inside context budgets denominated in tokens, not kilobytes. Two pages of equal weight can cost very different token amounts depending on how much of the document is markup, so the readable-content yield — not the raw KB figure — decides how much of a page's story an agent can actually hold.
Why don't the homepage's published KB figures match each other?
Each capture-stat figure belongs to a specific page version and fetch, not a single constant. The homepage weighed 114 KB at draft v6, grew to 368 KB after a mobile-performance pass inlined its CSS (the figure used in the v10 worked example), and measured about 121 KB at a later live fetch. The page has been revised multiple times since v6, and every revision gets sifted, measured, and audited again.
Does the capture-stats measurement account for facts inside images?
No — the fetch measures only the HTML document, which is all a text crawler receives, so facts that exist only inside images are invisible to that measurement. The sifting step restates those facts as text, which is part of where the +37% (measured here as +40%) readable-content gain comes from.

How this page was built

Cited sources

Key actions