Content structure
Content structure, and the parts a machine cannot judge
Heading order, page length, reading level and spelling are all machine-readable. Whether the writing is any good, and whether it is true, are not — and the report keeps the two apart.
What the check reads
The content checks run on the rendered page — after JavaScript has put the copy in place — because that is what a visitor sees and what Google indexes. Where the headless browser cannot load the page, the check falls back to the raw HTML the server sent. Nothing is installed and no access to your hosting is needed.
Each analyser parses its own scratch copy of that page before stripping anything out. Doing it in place, on the one page object every analyser shares, is what caused the worst bug in this project's history: three findings — no header, no nav, no footer — appeared in 12 of 12 real reports, on sites that plainly had all three. The tags had been deleted by an earlier check.
Where a check cannot run it is recorded as unmeasured, with the reason. Too little text to score, or a spelling service that timed out, is a fact about the measurement, not a defect on your page, and the two are never written up as the same thing.
Heading order, and what it is actually worth
A page with no H1 at all is critical: search engines lose the clearest signal of what the page is about. More than one H1 is a warning. If the first heading in the document is not an H1, that is its own warning, and the finding names the level it found instead.
Skipped levels are found by collecting the levels the page uses and looking for a gap between consecutive ones — H1 straight to H3 with no H2 anywhere. It is a check on which levels exist, not on the order they appear in after the first heading, so a page that uses every level in an odd sequence will pass it. That is a limit of the check, and it is better said than dressed up.
In the ranking, a missing H1 is classed as limiting discovery, weight 1.4. A skipped level, or no H2 at all, is classed as hygiene at 0.7 — worth tidying, but nobody loses a sale over it. Heading housekeeping cannot reach the top of your list, which is the point of ranking findings rather than counting them.
Thin content, and the number nobody should quote at you
Under 300 words is a warning; 300 to 499 is informational. It is counted on a copy of the page with script, style, nav, header and footer removed, so your menu and footer links cannot pad the total. Google publishes no minimum word count. The 300 is this engine's line and nothing more, which is why it is a warning about discovery rather than a fault.
The content-to-code ratio sits beside it: words divided by bytes of markup. The inherited threshold was 0.01, and across 14 real audits every single site fell under it — the measured range was 0.0008 to 0.0063 — so it fired on all of them and told no one anything they could act on. A framework-built page is structurally mostly markup; that is normal, not a defect. The line is now 0.002, which separates the genuinely text-starved pages from the ordinary ones on that same sample.
When it does fire, the finding carries the arithmetic: how many words, carried by how many kilobytes of markup, and the percentage. A client can check that in their own browser in about a minute.
Reading level and spelling, both sampled
Reading level is the Flesch reading ease score, calculated locally, and only on pages of more than 50 words. Below 30 is a warning: very hard to read. Between 30 and 49 is informational. The recommendation aims at 60 or above. Under 50 words the record reads insufficient text for readability scoring, and no finding is raised at all.
Spelling and grammar are checked by sending the first 1,500 characters of the visible text to LanguageTool's public API. More than five matches in that sample is a warning; one to five is informational. Up to eight of the matches are kept in the report with 60 characters of surrounding text, so each one can be looked at rather than taken on trust. The language is fixed at en-US, which a British-English site should know before reading the number.
Two consequences worth stating plainly. Page text — public text, already served to anyone who visits — leaves our machine for a third-party service. And if that service is slow or unreachable, the result is recorded as not checked with the error attached. It never becomes a clean pass, and it never becomes a finding.
What it will not judge
Whether your copy is original is not answered. It needs a plagiarism service and none is connected, so the record says so in as many words. Factual accuracy is listed as a manual item for someone who knows your subject. Neither is scored, in either direction.
That restraint was learned the expensive way elsewhere in this engine. Manual infrastructure items used to be raised as findings on every site, cost a flat 15 points each, and meant a business with faultless hosting could not score above 85 — penalised for what we had not looked at. They also inflated the issue count the report prints on its front page. Now they are shown under a heading that says they were not assessed remotely.
Some things are measured and deliberately not judged: the page title and whether a logo is present are recorded as context. The one critical this check can raise is placeholder text — lorem ipsum left anywhere in the page source. Stale copyright years are informational, and only once the latest year is more than one behind, which leaves a full year of slack so nobody is chased in January.
Run against this website, the content section scored 95 out of 100 on a single finding: four minor grammar or spelling issues in the sampled text, informational. It stands in the published report.
What the engine checks here
Each of these is a rule in the code, not a category heading.
- One H1, and the first heading being an H1No H1 anywhere is critical — search engines lose the clearest signal of what the page is about. More than one H1 is a warning. A first heading that is not an H1 is a separate warning, naming the level found instead.
- Skipped heading levelsThe levels used on the page are collected and compared; a gap between consecutive used levels, such as H1 straight to H3, is a warning. It tests which levels exist, not the order they appear in after the first heading.
- Sections and heading densityAn H1 with no H2 anywhere is informational: the copy has no sections a reader can scan. More headings than half the paragraph count — a ratio above 0.5 — is informational too, usually a page of labels with little underneath them.
- Thin contentUnder 300 words is a warning; 300 to 499 is informational. Measured on a copy with script, style, nav, header and footer stripped out, so navigation and footer text cannot inflate the count.
- Content-to-code ratioWords per byte of markup, flagged below 0.002. The inherited 0.01 threshold fired on all 14 audited sites, whose measured range was 0.0008 to 0.0063. The finding now quotes the word count, the markup size in KB and the percentage.
- Reading levelFlesch reading ease, calculated locally on pages of more than 50 words. Below 30 is a warning, 30 to 49 informational, and the recommendation aims at 60 or above. Below 50 words it is recorded as insufficient text, not as a failure.
- Grammar and spelling, from a sampleThe first 1,500 characters of visible text are checked against LanguageTool's public API with the language set to en-US. More than five matches is a warning, one to five informational, and up to eight examples are kept with 60 characters of context. Under 40 characters of text, it is not checked at all.
- Placeholder copy and stale datesLorem ipsum text found in the page source is critical — the only critical this check raises. Copyright years are read from the page and reported as informational only once the latest one is more than a year behind.
Questions
Do we need 300 words on every page?
No. Google publishes no minimum word count, and the 300 is this engine's line rather than a rule from anywhere. Thin content is a warning, classed as limiting discovery at weight 1.4 — well below anything that stops the page being found or blocks a sale. A contact page of 80 words is doing its job, and when the rule fires on a page like that it is overruled by hand with the reason written down.
Our English is British. Will the spelling check mark it wrong?
It may. The request is sent with the language set to en-US, which is a real limitation of the check. That is why the finding is a count from a sample rather than a list of corrections, and why up to eight matches are shown with the surrounding text. Anything that turns out to be a British spelling, a brand name or a technical term comes off before the report reaches you.
Do you check whether our content is original?
No, and the report says so rather than leaving you to assume a pass. Uniqueness needs a plagiarism service and none is connected, so the record states that plainly. Factual accuracy is the same: it is listed as a manual item for a subject-matter reviewer. A check nobody performed must not be scored as a failure, and it must not be scored as a success either.
Sources
Public and checkable. Nothing here rests on a number we cannot point at.
- This engine's audit of this website, published in full
- LanguageTool HTTP API — the spelling and grammar service the check calls
- textstat — the library that calculates the Flesch reading ease score
- Google Search Central — creating helpful, reliable, people-first content (no word-count threshold is published)
- WCAG 2.2 — 1.3.1 Info and Relationships, why heading levels carry meaning
This is one of fifteen categories. You can read a real report this engine produced on this very site — including the findings it raised against us — or ask for an audit of yours.