This meta tag checker shows the tags in a page’s code that search engines and social networks read before they read anything else. The results come in two parts: a table of eleven rows (title, description, canonical, robots, language, H1, three Open Graph tags, Twitter card and structured data) and a heading outline. Here is how to read each row, what a healthy value looks like, and where to change it.
The quick reference
| Row | Healthy | Needs attention |
|---|---|---|
| Title | 30 to 60 characters, topic first, unique to the page | Missing, “Home”, the same as other pages, or over 60 characters |
| Meta description | Roughly 140 to 160 characters, specific to the page | Missing, copied from another page, or a list of keywords |
| Canonical | The page’s own address, on https | Points at the homepage, a different page, an http address or a staging domain |
| Robots | “Not set (indexable)” or “index, follow” | Contains noindex on a page that should be in Google |
| Language | Matches the page, e.g. en or en-US | Missing, or the wrong language |
| H1 | One heading that names the page’s topic | Missing, several, or the logo or business name on every page |
| og:title | Set, can match the title | Missing |
| og:description | Set | Missing |
| og:image | A full https address to an image at least 1200 × 630 | Missing, a relative address, or a tiny logo |
| Twitter card | Set | Missing (X falls back to Open Graph, so this is a minor issue) |
| Structured data | The schema types you expect for the page | None, or a type that doesn’t match the page |
Missing values show in red. Character counts sit next to the title and description.
Title and meta description
The title row shows the text inside the <title> tag and its length in characters. Characters are a rough guide, because Google cuts titles by pixel width: a title full of capital W’s and M’s gets cut sooner than one with narrow letters. When a title is near the limit, paste it into the SERP preview tool to see where it would be cut.
What to look for beyond length:
- Is it unique? The checker looks at one page. If your service pages all say “Services | Brightside Dental”, you will only notice by checking several. A title tag that repeats across pages makes the pages compete with each other.
- Does it lead with the topic? “Teeth Whitening in Denver | Brightside Dental” beats “Brightside Dental | Welcome | Teeth Whitening”.
- Does the description sell the click? A meta description doesn’t affect rankings directly, but it is often the text under your result. State what the page offers and one reason to choose you.
Canonical and robots: the two rows that can hide a page
These two rows deserve a careful look, because a wrong value here can remove a page from Google without any visible change on the site.
The canonical row shows the address the page names as its main version. On a normal page it should be the page’s own address. Problems we see often:
- Every page canonicalized to the homepage (a theme or plugin bug). Google may then treat the inner pages as copies and drop them.
- A canonical still pointing at a staging or development domain after launch.
- An http canonical on an https site.
The robots row shows the robots meta tag. “Not set (indexable)” is fine: pages are indexable unless told otherwise. If you see noindex, the page asks Google to leave it out of search. One catch: this row shows the meta tag in the HTML only. A noindex can also be sent in an X-Robots-Tag HTTP header, which doesn’t appear here. The Website SEO Checker reads both, so if a page refuses to appear in Google and this row looks clean, run that too.
Headings and the outline
The H1 row lists up to three H1 headings. Below the table, the heading outline shows the first 40 headings on the page, indented by level, so you can read the page’s structure the way a crawler does.
A good outline reads like a table of contents:
H1 Teeth Whitening in Denver
H2 In-office whitening
H2 Take-home whitening kits
H2 How much does teeth whitening cost?
H3 Does insurance cover whitening?
H2 Book a whitening appointment
Signs of trouble: headings used for styling (“Call now” as an H2 in the header of every page), the outline starting at H3 with no H1, or the same footer headings appearing on every page before the real content. Our glossary entries on the H1 tag and header tags go into the rules.
Open Graph, Twitter card and structured data
Open Graph tags decide how the link looks when someone shares it on Facebook, LinkedIn, Slack or in a text message. Without og:image, the platform picks an image itself, and it often picks a logo or nothing. Use a full https address, and an image at least 1200 pixels wide.
The structured data row lists the schema types found on the page. For a dentist’s service page you would expect something like Dentist or LocalBusiness, plus maybe BreadcrumbList. If it’s empty, the schema generator writes LocalBusiness or Organization markup you can paste in, and the structured data entry explains what else is possible.
Worked example: Brightside Dental
Brightside Dental checks its teeth whitening page and gets:
- Title: “Brightside Dental” (17 characters). The same title as the homepage.
- Description: missing.
- Canonical:
https://brightsidedental.com/, the homepage. - Robots: not set.
- H1: “Brightside Dental” and “Teeth Whitening”.
- og:image: missing. Structured data: none.
The canonical is the urgent one: it tells Google that the whitening page is a copy of the homepage. The fix, in their SEO plugin’s settings for that page, looks like this in the page’s head once saved:
<title>Teeth Whitening in Denver | Brightside Dental</title>
<meta name="description" content="In-office and take-home teeth whitening in Denver, from $299. See results in one visit. Book online or call our Cherry Creek office.">
<link rel="canonical" href="https://brightsidedental.com/teeth-whitening/">
<meta property="og:title" content="Teeth Whitening in Denver | Brightside Dental">
<meta property="og:image" content="https://brightsidedental.com/images/whitening-1200x630.jpg">
The second H1 came from the theme printing the practice name as an H1 in the header. Changing that header element to a plain paragraph fixed it site-wide.
Where to change each tag on WordPress
| Tag | Yoast SEO | Rank Math | SEOPress |
|---|---|---|---|
| Title and description | Yoast box below the editor, “SEO title” and “Meta description” | Rank Math panel, “Edit Snippet” | SEOPress metabox, “Titles settings” |
| Canonical | Yoast box, Advanced tab | Rank Math panel, Advanced tab | SEOPress metabox, Advanced tab |
| Robots (noindex) | Yoast box, Advanced tab | Rank Math panel, Advanced tab | SEOPress metabox, Advanced tab |
| Open Graph | Yoast box, Social tab | Rank Math panel, Social tab | SEOPress metabox, Social tab |
Exact labels shift between plugin versions, but the tabs have stayed in these places for a long time.
One page at a time vs every page
This checker is ideal before publishing a page or when one page has gone missing from Google. It can’t tell you that 40 pages share a title or that half the blog has no description. The Site Audit checks the tags on every page, flags duplicates, and on WordPress it can rewrite titles and descriptions for the whole site in one review, written straight into Yoast, Rank Math or SEOPress through the free WordPress plugin.