The checklist your staging environment can't test
You've run your Lighthouse audit. Your unit tests pass. Your staging environment looks great. But none of that catches the SEO issues that only matter in production - the ones that determine whether Google can actually find, crawl, and index your site.
This checklist covers every SEO check you should run before pushing to production. It's organized by priority: critical issues first (things that block indexing entirely), then warnings (things that hurt rankings), then nice-to-haves (things that give you an edge).
Critical: Fix these or don't launch
These issues will prevent Google from indexing your site. If any of these are present, your organic traffic will be zero.
No noindex tags in production
Check every page for <meta name="robots" content="noindex"> tags and X-Robots-Tag: noindex HTTP headers. These are common on staging environments and frequently ship to production by accident.
# Quick check: curl your production URL and look for noindex
curl -s https://yourdomain.com | grep -i "noindex"
curl -sI https://yourdomain.com | grep -i "x-robots-tag"
A meta tag checker does both of these in one request, across the tag and the header. We shipped one of these to production once and lost 47 days of organic traffic before anyone noticed.
robots.txt allows crawling
Visit https://yourdomain.com/robots.txt and verify it doesn't contain Disallow: /, or paste the URL into a robots.txt validator. Also check that it doesn't accidentally block important directories like /blog/ or /products/. The robots.txt testing guide covers how to catch this in CI.
# Good: allows all crawling
User-agent: *
Disallow:
Sitemap: https://yourdomain.com/sitemap.xml
sitemap.xml exists and is valid
Your sitemap should be accessible at https://yourdomain.com/sitemap.xml, contain only production URLs (not staging), and every URL in it should return a 200 status code.
- Sitemap returns 200
- All URLs use the production domain
- No URLs return 404
- Sitemap is referenced in robots.txt
- XML is well-formed (no syntax errors)
A sitemap validator checks all five in one pass. Four ways your sitemap is probably broken covers each failure mode.
No mixed content
If your site is served over HTTPS (it should be), make sure there are no resources loaded over HTTP. Mixed content triggers browser warnings and can affect trust signals.
SSL certificate is valid
Your HTTPS certificate should be valid, not expired, and cover all subdomains you're using. Most hosting platforms handle this automatically, but verify it with an SSL certificate checker after DNS changes - expired certificates take a site offline faster than almost anything else on this list.
Warnings: Fix before you expect traffic
These won't block indexing, but they'll hurt your rankings and click-through rates.
Every page has a unique title tag
Each page needs a unique <title> between 50-60 characters. Duplicate titles across pages tell Google your content is redundant. Missing titles mean Google will generate one for you - and it usually won't be good.
Every page has a meta description
Write a unique description of 150-160 characters for each page. While not a direct ranking factor, descriptions control your search snippet and directly impact click-through rates.
<meta
name="description"
content="Run 60 SEO checks on your site in 30 seconds.
Catch noindex tags, broken robots.txt, missing meta tags,
and more before launch."
/>
Canonical URLs are set
Every page should have a <link rel="canonical"> tag pointing to its preferred URL. This prevents duplicate content issues from trailing slashes, query parameters, or www vs non-www variations.
<link rel="canonical" href="https://yourdomain.com/pricing" />
Verify the rendered value with a canonical tag checker - canonical tag mistakes covers the ones that quietly deindex pages.
Viewport meta tag is correct
Your viewport tag should be <meta name="viewport" content="width=device-width, initial-scale=1">. Don't add maximum-scale=1 or user-scalable=no - these break pinch-to-zoom and fail accessibility checks.
Heading structure is logical
Every page should have exactly one <h1> tag and headings that follow a logical hierarchy without skipping levels (e.g., don't jump from <h2> to <h4>). An h1 checker shows the full outline of any page.
Images have alt text
Every meaningful image should have descriptive alt text. This helps with image search ranking and is required for accessibility compliance. Decorative images should have alt="".
Images have explicit dimensions
Add width and height attributes to images to prevent layout shifts during page load. This directly affects Core Web Vitals (CLS score), which is a Google ranking factor.
<img
src="/hero.png"
alt="Dashboard screenshot"
width="1200"
height="630"
/>
Nice-to-have: The competitive edge
These won't make or break your launch, but they set you up for better long-term SEO performance.
Open Graph tags on every page
Add og:title, og:description, og:image, and og:url tags to every page. This controls how your links look when shared on social media and messaging apps - preview the result with an open graph checker before you post, and see the Open Graph tags guide for image sizing.
Twitter Card tags
Add Twitter-specific meta tags so your links look good on X/Twitter:
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Your Page Title" />
<meta name="twitter:description" content="Your description." />
<meta name="twitter:image" content="https://yourdomain.com/og.png" />
Security headers
While not directly an SEO factor, security headers like Strict-Transport-Security, X-Content-Type-Options, and Content-Security-Policy signal a well-maintained site and protect your users. A security headers checker grades what you're currently sending.
Structured data (JSON-LD)
Add schema.org structured data for your content type - Article for blog posts, Product for e-commerce, Organization for your homepage. This can unlock rich snippets in search results. Check your markup with a structured data validator.
favicon.ico exists
A missing favicon triggers 404 errors on every page load. It's a small thing, but it shows up in browser tabs, bookmarks, and some search results.
The one-command version
Going through this checklist manually takes time. If you want to check everything at once, run your site through LintPage. It covers all the critical and warning items above - plus additional checks for HTTP headers, content quality, and performance - in a single 30-second scan.