On-page tag checks
These eleven checks watch the tags that decide how a page is presented rather than whether it is indexed. Losing a title does not deindex a page; it changes the line a searcher reads before deciding whether to click, which is the same loss by a slower route. The group includes the title, meta description, H1, hreflang, structured data and both social card sets - and the H1 check also fires when a page stops having exactly one.
Why the H1 check counts as well as compares
Two H1s on a page is the single most common template bug there is: a hero component renders one, a content component renders another, and both are correct in isolation. It is invisible on screen, because both look like headings and both were meant to. The check reports the count changing as well as the text changing, for that reason.
Structured data is watched for disappearance, not validity
The check reports schema vanishing from a page, or its @type changing. It is not a validator - there are good free ones, and a rich result that stops appearing is almost never a validity problem. It is a template that stopped emitting the block at all, which no visible part of the page reflects.
Nobody reports a broken link preview
Open Graph and Twitter card tags fail in the one place their owner never looks. The person who sees the broken unfurl is in someone else’s Slack, and they scroll past it. By the time anyone notices, the campaign has run.
All 11 checks in this group
Title
on by default · per URL · confirmed over 3 runs
The page title changed.
The strongest keyword placement on the page and the line a searcher reads before clicking. A template change that drops it is invisible on screen.
Meta description
on by default · per URL · confirmed over 4 runs
The meta description changed.
Not a ranking factor. It is the sales copy in the result, and an empty one hands Google licence to write its own from the body.
H1
on by default · per URL · confirmed over 4 runs
The H1 changed, or there is no longer exactly one.
Fires on the text changing and on there no longer being exactly one. Two H1s from two components is the most common template bug there is.
hreflang set
on by default · per URL · confirmed over 4 runs
The hreflang set changed.
A shrinking or broken hreflang set sends the wrong language version to an entire country, and nothing in that country is going to tell you.
lang attribute
off by default · per URL · confirmed over 4 runs
The declared page language changed.
Off by default. The declared page language changes rarely, and when it does the cause is usually a template swap nobody scoped.
Charset declaration
off by default · per URL · confirmed over 4 runs
The declared character set changed.
Off by default. A charset change is how a page full of correct text starts rendering as mojibake for some readers and not others.
Viewport meta
off by default · per URL · confirmed over 4 runs
The viewport meta tag changed or disappeared.
Off by default. Losing it renders a responsive page at desktop width on a phone - a mobile-first ranking problem and a bounce problem at once.
Meta refresh
off by default · per URL · confirmed over 3 runs
A meta refresh appeared.
One appearing is a client-side redirect that returns 200 first. Weaker than a server redirect for Google, and invisible to crawlers that do not run JavaScript.
Structured data present, and its @type
on by default · per URL · confirmed over 4 runs
Structured data disappeared, or its @type changed.
Schema disappeared or changed type. Rich results vanish the next time the page is processed and nothing about the page looks different.
Open Graph tags
on by default · per URL · confirmed over 4 runs
Open Graph tags changed - link previews break silently.
Link previews break silently. The person who sees the broken unfurl is not on your team, so nobody reports it.
Twitter card tags
off by default · per URL · confirmed over 4 runs
Twitter card tags changed.
Off by default. The same failure as Open Graph, on one more surface.
Every check on this page is available on every plan, including the free one - limits are on sites and URLs, never on checks. CrawlWarden pricing, per site rather than per URL.