This is the pass that catches the tags nobody sees on the page itself but that determine how the page shows up everywhere else — search results, shared links, and structured-data-powered results. None of it is visible during a normal design review, which is exactly why it needs its own dedicated check before launch.
Meta title and description checklist
- Every page has a unique title tag and meta description — no two pages sharing the same one, which confuses both search engines and anyone with multiple tabs open.
- Titles stay under roughly 60 characters and descriptions under roughly 160 to avoid mid-word truncation in search results.
- Titles and descriptions actually describe the page's real content, not a generic template string left unedited on a page-by-page basis.
Canonical tag checklist
- Every page has a self-referencing canonical tag by default, pointing to its own clean URL.
- Parameter-heavy or duplicate-content URLs (filtered category pages, tracking-parameter variants) canonicalize to the clean primary version instead of being treated as separate pages.
- No page canonicalizes to a URL that itself redirects elsewhere — a canonical should point directly to the final destination, not through a redirect chain.
Open Graph and Twitter card checklist
og:title,og:description, andog:imageare present on every page, not just the homepage.- The og:image is a real, correctly sized image (1200x630px is the safe standard) rather than a placeholder or missing file that renders as a broken image in link previews.
twitter:cardis set tosummary_large_imagewhere a large preview image is desired, and the corresponding twitter:title/description/image tags are present.- A share-preview debugger is used to actually see the rendered card before launch, not just read the raw tag values.
Structured data checklist
- JSON-LD structured data validates with zero errors in a structured data testing tool.
- The structured data matches what's actually visible on the page — marking up content that isn't shown to visitors risks the markup being ignored or, in stricter interpretations, flagged as manipulative.
- The correct schema types are used for the content (Article/BlogPosting for posts, Product for ecommerce, LocalBusiness or ProfessionalService for a service business, FAQPage only when real visible FAQ content exists).
Sitemap checklist
sitemap.xmlis live at the expected root URL and returns valid XML, not a 404 or an error page.- Every URL listed in the sitemap returns a 200 status — no 404s, no redirects, no noindexed pages included.
- The sitemap is referenced from robots.txt and submitted in Search Console/Bing Webmaster Tools (see the indexing step of this checklist).
| Element | What to Check | How to Verify |
|---|---|---|
| Meta title/description | Unique per page, within length limits | Crawl the site and export all title/description pairs, check for duplicates |
| Canonical tags | Self-referencing, no conflicting duplicates | View page source, confirm canonical matches the page's own clean URL |
| OG/Twitter cards | Present, correct image size, renders correctly | Test the live URL in a share-preview debugger |
| Structured data | Validates, matches visible content | Run every template through a structured data testing tool |
This pass is deliberately about verification, not strategy — confirming the tags exist and are correct, rather than debating what a title tag should say. For the deeper strategic side of on-page work once the technical foundation is solid, see the full on-page SEO checklist.
FAQ
How do I check if my Open Graph tags are working?
Paste the live URL into a share-preview debugger — Meta's Sharing Debugger or a similar link-preview tool — which shows exactly what image, title, and description will render when the link is shared, and flags missing or malformed og:title, og:description, or og:image tags directly.
- Cached previous versions of a page's preview can persist in these debuggers — most tools have a "scrape again" option to force a refresh after fixing tags.
- A missing og:image is the single most common reason a shared link shows no preview image at all.
What's the difference between a canonical tag and a redirect?
A canonical tag tells search engines which URL is the 'real' version when similar or duplicate content exists at multiple addresses, without stopping visitors from loading the non-canonical one — a redirect actually sends visitors and crawlers to a different URL entirely. Use a canonical for near-duplicate content that should still be reachable; use a redirect when a URL should no longer exist at all.
- A canonical is a hint to search engines, not an enforced rule — a redirect is enforced at the server level.
- Using a redirect where a canonical was appropriate (or vice versa) is a common cause of pages disappearing from search results unexpectedly.