# Stripe pricing teardown · 65/100 · Onto
> Stripe passes every structural check the AIO scanner runs — JSON-LD present, heading hierarchy strong, robots.txt allowed. But it serves AI agents the same 690 KB React payload it serves humans. The result: 849× more bytes than the agent actually needs, and a $1.76 GPT-4 call for a page that should cost $0.002.

**Source:** /case-studies/stripe-pricing
**Extracted:** 2026-05-20T20:59:17.646Z

---
TeardownStripe · May 2026

## Stripe's pricing page ships 690 KB of noise  
_for a 0.8 KB story._

Stripe passes every structural check the AIO scanner runs — JSON-LD present, heading hierarchy strong, robots.txt allowed. But it serves AI agents the same React payload it serves humans. The result: 849× more bytes than the agent actually needs, and a **$1.76** GPT-4 call for a page that should cost **$0.002**.

[Live target · stripe.com/in/pricing](https://stripe.com/in/pricing)

65/100

Needs workAIO Score · weighted across 3 pillars

Read time6 min read

ScannedMay 2026

// TL;DR

Stripe's pricing page is two-thirds bloat by byte count. The structure is fine; the delivery isn't. An AI agent fetching this URL today burns 176,640 tokens to read what amounts to a four-paragraph rate sheet. With one middleware install, that becomes 208 tokens, identical meaning, sub-15 ms edge delivery — a 849× reduction with zero change to the human experience.

01 // Pillar breakdown

### Where the 35 points went.

The AIO score is subtractive — every penalty traces to a specific structural issue. Stripe loses points in two of three pillars; the second is where they punch above weight.

01Weight · 40%

React Tax

How much of the HTML is noise?

68.5%of downloaded bytes are visual noise

CSS rules, JS framework overhead, layout divs — all irrelevant to semantic understanding. Roughly two-thirds of every byte Stripe ships to an agent does no work for that agent.

Raw payload

690 KB

Semantic text

15,080 chars

02Weight · 35%

Semantic Richness

Does the HTML tell a structured story?

2 / 2structural checks pass

Stripe ships strong heading hierarchy, JSON-LD structured data, and proper landmark elements. This is the only pillar where Stripe actually shines — and it's why the page is still salvageable.

JSON-LD schema

Present

Heading hierarchy

Strong

03Weight · 25%

Content Negotiation

Does the server speak Markdown?

Missingno Accept-header negotiation

When an AI client sends Accept: text/markdown or arrives with a known AI User-Agent, Stripe responds with the same 690 KB React payload it serves humans. There is no Markdown surface, no agent-aware routing, no opt-out.

Markdown serving

No

Robots.txt

Allowed

02 // Agent-readiness checklist

### 4 of 5 checks pass. One is fatal.

Stripe's infrastructure is mostly agent-aware — they explicitly allow AI crawlers, their WAF doesn't block bot traffic, and their HTML is structured. The single failing check is the one that matters most.

01Robots.txt allows agent crawlingPass

02WAF passing agent trafficPass

03Native Markdown content negotiationFail

04JSON-LD schema verificationPass

05Deep semantic hierarchy (H1–H3)Pass

03 // What an AI agent receives

### Clean Markdown, byte-for-byte deterministic.

Below is exactly what Onto's cleaning engine extracts when an AI agent calls Stripe's pricing URL — preserved heading hierarchy, lists, structured metadata. `0.8 KB` instead of `690 KB`. Zero semantic information lost.

.onto/md · stripe-pricing · 0.8 KB

\# Pricing & Fees
\> Find Stripe fees and pricing information. Find our processing fees
\> for credit cards, pricing models and pay-as-you-go fees for businesses.
\*\*Source:\*\* https://stripe.com/in/pricing
\## Standard
\### 2%
\### 3%
\## Custom
\#### Navigate to:
\## Build your custom package
\## Get the support you need
\### Report
\## The Total Economic Impact™ Of Stripe
\## Learn why BMW chose Stripe to power e-commerce
\## See how Amazon simplified cross-border payments
\## See how Maersk tapped into new technology
\## See how Twilio increased authorisation rates by 10%
\#### How are payment fees calculated?
\#### Will I be charged tax?
\#### Are there additional fees for refunds?
\#### Do you have setup fees or monthly fees?
\#### Do you offer any discounts?
\# Protocol · Semantic\_Extraction\_v1.0
\# Hallucination risk · Low

849×Smaller

176,640 → 208Tokens (raw → clean)

LowHallucination risk

04 // Recommended fixes

### Two fixes. One is one line of code.

The high-priority fix doesn't require Stripe's frontend team to touch a single page component. The medium fix is a broader render-strategy conversation.

01High priority

Install @ontosdk/next

Zero change required to application code. Automates Markdown extraction at build-time, routes agents to the .onto payload at the edge.

[Fix with Onto](/serve-sdk)

02Medium priority

Reduce React Tax

High code-to-content noise detected. Use server-side extraction to reduce LLM token waste even on the human surface.

[Fix with Onto](/serve-sdk)

05 // Projected impact

### What changes after one middleware install.

849×

Payload reduction

690 KB → 0.8 KB

100%

Token waste eliminated

176,640 → 208 tokens

$0.0021

Cost / GPT-4 query

was $1.766 · with Onto

<15 ms

Edge response

p99 · CDN edge node

If Stripe ran Onto

### Want this analysis on your own site?

Run the AIO scanner — same checks, your URL, sub-second report. Free, no signup, results in your browser.

[Scan your site](/#scanner)// No card · No signup · 4 seconds

[← All teardowns](/case-studies)[Scoring methodology →](/scoring)