Direct answer: only seven of 25 homepages have a readable H1: twelve have no <h1> element, three have an H1 that contains only a logo image, and three have an empty H1. Among the seven with text, only one matches the title exactly, one is partially contained, and five say something different.
Other title sources are rarer: og:title appears on nine pages, twitter:title on six and a JSON-LD name on two. Even where og:title exists, only four match the title exactly, four partially and one differs.
Method: five title sources in one cache
The study reads the 25 homepage caches from study 4 (2026-10-31) with zero network requests. It takes <title>, the first <h1>, og:title, twitter:title and JSON-LD name/legalName/alternateName, strips tags, entities and punctuation, then compares: exact, partial containment, different, or missing. H1 is further split into text, image-only, empty and absent.
| Item | Rule | Boundary |
|---|---|---|
| Readable H1 | Non-empty visible text inside the tag | Image alt is not H1 text |
| Exact | Identical after normalisation | Case, whitespace and common punctuation ignored |
| Partial | One contains the other | Which is better is not judged |
| JSON-LD name | Any node's name/legalName/alternateName | First non-empty value is compared |
Result: H1 is the weakest source
| Source | Pages | Share of 25 |
|---|---|---|
title | 24 | 96.0% |
h1 with text | 7 | 28.0% |
og:title | 9 | 36.0% |
twitter:title | 6 | 24.0% |
| JSON-LD name | 2 | 8.0% |
| H1 state | Pages |
|---|---|
| Text | 7 |
| Image only | 3 |
| Empty tag | 3 |
| No H1 element | 12 |
Image-only H1s usually wrap a logo whose alt carries the company name; the H1 itself has no text, which for text extraction is close to having no H1 at all.
Consistency: one H1 matches the title
| Comparison | Exact | Partial | Different | Missing |
|---|---|---|---|---|
| H1 vs title | 1 | 1 | 5 | 18 |
| og:title vs title | 4 | 4 | 1 | 16 |
| twitter:title vs title | 1 | 4 | 1 | 19 |
| JSON-LD name vs title | 2 | 0 | 0 | 23 |
The H1 row's "missing" covers both absent and text-less H1s; the og/twitter "missing" means the field is not written. Both JSON-LD names match the title exactly, but only two pages carry one.
What this means for acceptance
- Require one readable H1. Eighteen of 25 pages (72%) have none.
- H1 and title need not match word for word, but must name the same thing. Five of the seven text H1s differ entirely from the title and need a manual check.
- Cover social titles. og:title appears on nine pages and twitter:title on six, so share cards fall back or go blank.
- Keep structured-data names consistent. Only two pages declare a name, although both match the title.
- Add text when the logo becomes the H1. An image H1 is effectively missing for text extraction.
Limits
- String comparison only: no semantic judgement; "different" is not automatically wrong.
- First H1 only: pages with several H1s compare the first.
- First JSON-LD name: with several entities, it may not be the page's main subject.
- One snapshot: cached on 2026-10-31; redesigns are not rechecked.
- 25 sites: a pilot, no industry claim.
Data and reproduction
Anonymised data: equipment-homepage-title-consistency-2026.csv (25 rows × 14 columns: title/H1 lengths, five source flags, H1 state, four comparison results and JSON-LD name count). The repository keeps docs/research/2026-11-homepage-title-consistency.csv.
Parser: scripts/homepage_title_consistency_probe.py; unit tests: scripts/test_homepage_title_consistency_probe.py (no network, eight tests). Run:
python -m unittest scripts.test_homepage_title_consistency_probe
Related: the homepage title and description pilot, the article head-metadata pilot, and the structured-data coverage pilot., and the title consistency checker, and the article title-source pilot, and the title composition pilot
Sources and definitions
- Homepage cache: 25 sites from study 4 (2026-10-31).
- Comparison: tags, entities, whitespace and common punctuation removed first.
- Scan: 2026-11-06, zero network requests.