Before a visitor ever sees your page, Google and every social platform have already read its metadata. Here is what to check on every single page — and how to automate the whole pass instead of eyeballing view-source.
Updated August 2026 · 6 minute read
Metadata has no visual failure state. A missing canonical, a truncated title or a page with no og:image renders perfectly fine in a browser — and leaks clicks and rankings for months until someone checks.
Title truncation, duplicate descriptions and missing viewport tags are invisible on the rendered page. They only show up in an audit.
One weak title costs little. Two hundred of them across a site is a systematic ceiling on click-through rate.
A link pasted into Slack or LinkedIn with no og:title and og:image looks like spam — even from a trusted domain.
| # | Item | Pass condition |
|---|---|---|
| 1 | Title tag | Present, unique, ~50–60 chars, primary keyword first |
| 2 | Meta description | Present, unique, ~140–160 chars, has a reason to click |
| 3 | Canonical URL | Self-referencing, absolute, no conflicts |
| 4 | Robots meta | No accidental noindex/nofollow on indexable pages |
| 5 | Viewport | width=device-width, initial-scale=1 present |
| 6 | Open Graph | og:title, og:description, og:image, og:url all set |
| 7 | Headings | One H1, logical H2/H3 hierarchy, no skipped levels |
| 8 | Images | Every meaningful image has alt text |
| 9 | Structured data | Valid JSON-LD where relevant (Article, Product, FAQ) |
Checking nine items per page by hand stops being realistic after about ten pages. The free, open-source page-profile CLI runs the entire table above against any URL and returns a graded report:
npx page-profile https://example.com # single page report
npx page-profile --urls-from-file urls.txt # batch mode (Pro)
npx page-profile --compare old.html new.html # diff two versions (Pro)
Each check gets a pass/warn/fail so you can triage instead of reading raw HTML dumps.
Pro adds batch mode over a URL file, side-by-side compares and shareable HTML reports.
No account, no upload. Your client's staging URLs never leave your machine.
It is a structured check of everything search engines and social platforms read before a human does: title tags, meta descriptions, robots directives, canonical URLs, Open Graph and Twitter cards, heading structure, image alt text and structured data. A good audit catches problems before they cost rankings or clicks.
Use a crawler-style CLI tool that takes a list of URLs (or your sitemap) and reports each issue per page. The free page-profile command does exactly this: point it at a URL and it grades title length, description, canonical, viewport, Open Graph, headings and alt text in seconds.
Aim for roughly 50–60 characters for titles and 140–160 characters for meta descriptions. Longer text is truncated in results pages, which lowers click-through even when the page still ranks.
Not directly for ranking — but shares on Slack, LinkedIn, Facebook and X drive real traffic, and a missing og:image or og:title makes those shares look broken. Most audits treat social metadata as first-class because the traffic impact is measurable.
Prioritise in this order: missing or duplicated titles and descriptions, wrong or conflicting canonical URLs, robots noindex on pages that should rank, then social tags and structured data. The first group affects indexing directly; the rest affect clicks.