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, and og:image are 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:card is set to summary_large_image where 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.xml is 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).
ElementWhat to CheckHow to Verify
Meta title/descriptionUnique per page, within length limitsCrawl the site and export all title/description pairs, check for duplicates
Canonical tagsSelf-referencing, no conflicting duplicatesView page source, confirm canonical matches the page's own clean URL
OG/Twitter cardsPresent, correct image size, renders correctlyTest the live URL in a share-preview debugger
Structured dataValidates, matches visible contentRun 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.