I checked ten pricing pages. Stripe has 133 h1 tags.
I expected a boring afternoon and a post about how the professionals do it properly. The first page I checked had a hundred and thirty-three h1 tags.
- Stripe's pricing page carries 133 h1 tags and Zapier's carries two. The other eight have one each.
- Five of the ten publish no structured data at all: Notion, Vercel, Slack, Asana and Airtable.
- Length ran from 433 words at Linear to 8,081 at monday.com, nineteen times the text for the same page type, both scoring well.
- Internal links out ranged from 18 at Airtable to 300 at Stripe, which is a decision about what a pricing page is for.
- A checker gives facts, not verdicts. The same finding matters differently depending on who owns the page.
I ran our page checker over ten pricing pages from companies whose engineering nobody questions, expecting a boring afternoon and a post about how the professionals do it properly.
Stripe’s pricing page has 133 h1 tags.
Not a typo. One hundred and thirty-three. The specification allows it and browsers render it fine, so nothing is broken in any user-facing sense, but the h1 is meant to say what the page is about, and a page making that claim a hundred and thirty-three times is making no claim at all. Zapier has two, which is the ordinary version of the same mistake. Everyone else has one.
That was the first surprise. The second was structured data.
Five of the ten pages publish none whatsoever. Notion, Vercel, Slack, Asana and Airtable all serve a pricing page with no schema markup on it, which means no Product or Offer information, and no possibility of a rich result. Stripe, Linear, Figma, Zapier and monday.com each have some.
I had assumed this was solved. It is not solved.
Then I looked at length and stopped assuming anything. Linear’s pricing page runs 433 words. monday.com runs 8,081. Same page type, same job, nineteen times the text. Both scored well on the check and both are perfectly reasonable pages, which tells you something useful: there is no correct length for a pricing page, and anybody quoting you one is repeating a number they read somewhere.
Internal links spread almost as wide. Airtable points at 18 pages from its pricing page. Stripe points at 300.
Three hundred internal links from one page is not an error either. It is a decision about what a pricing page is for, and Stripe has decided theirs is a hub. Airtable has decided theirs is a destination. You can defend both, and you cannot defend having never thought about it, which is the state most pricing pages are actually in.
Here is what the exercise taught me about audits, which is really what this is about.
A checker gives you facts, not verdicts. It can tell you there are 133 h1 tags. It cannot tell you whether that matters for Stripe, whose brand search volume means they will rank for their own pricing page regardless of how the headings are marked up. The finding is real, the consequence depends entirely on who owns the page, and every audit that reports issues without that second half is producing a list nobody will action.
The thing worth stealing is the shape of the check. Status, indexability, canonical, title length, one h1, heading order, internal links, structured data, word count. Nine things. They cover most of what actually goes wrong, and you can look at all nine on a page in about two minutes without any tool at all.
What I keep turning over is Asana. Their page scored lowest of the ten, at 84, on a title of 75 characters and missing structured data. Seven thousand words of carefully written pricing content, and the two things holding the score down would take somebody twenty minutes on a Tuesday. Nobody has done it, and I suspect nobody has done it because nobody owns the page in a way that includes the head of the document.
Questions people ask about this
Is more than one h1 actually a problem?
The specification allows it and browsers render it fine. The h1 is meant to state what the page is about, so repeating it 133 times states nothing. For a domain with Stripe's brand search it will change little in practice.
Does a pricing page need structured data?
It is the difference between being eligible for a rich result and not being eligible. Five of these ten have chosen not to be, and it does not appear to have stopped them.
How long should a pricing page be?
There is no correct length. This sample runs from 433 to 8,081 words and both extremes score well. Anybody quoting you a target is repeating something they read.
What should a quick audit actually check?
Status, indexability, canonical, title length, one h1, heading order, internal links, structured data and word count. Nine things, about two minutes per page, no tool required.
- HTML Living Standard, section 4.3.11 on heading elements and multiple h1 usage. Checked 2026-08-16.
- Google Search Central, Structured data general guidelines. Checked 2026-08-16.
- Google Search Central, Introduction to structured data markup. Checked 2026-08-16.
- Google Search Central, Consolidate duplicate URLs with canonical tags. Checked 2026-08-16.
- Google Search Central, Influencing your title links in search results. Checked 2026-08-16.
- Google Search Central, Crawling and indexing: links best practices. Checked 2026-08-16.
- Schema.org, Product and Offer types used for pricing information. Checked 2026-08-16.
- Our own checks on ten public pricing pages, run 16 August 2026. Checked 2026-08-16.
Run the free check on the page you care about. It reads the live HTML and reports what a crawler sees: status, noindex, canonical, headings, links and structured data.
Run the free check → Open the glossary