Website Launch Checklist for Developers: 42 Checks Before You Go Live

One of the most popular services we offer is ongoing website maintenance because most clients we work with become return clients.

Website Launch Checklist for Developers: 42 Checks Before You Go Live

Every agency has a war story about a launch that went sideways: a staging noindex tag that stayed live for three weeks, an MX record wiped during a DNS cutover, a contact form silently dropping leads into a spam folder. None of those failures are exotic. They all happen because someone skipped a line on a website launch checklist.

This is the checklist we actually run at Pixelseed before we push a client site to production. It is organised into phases, in the order we execute them, and every single item comes with the exact tool or command we use to verify it. Bookmark it, fork it into your project management tool, or paste it into your deployment runbook.

How to use this website launch checklist

Three rules make this list work in the real world:

  • Run it twice. Once on staging (T-7 days) and once on production immediately after the DNS cutover. A check that passes on staging is not a check that passes live.
  • Assign an owner per phase. DNS and SSL usually belong to the dev lead, meta tags and analytics to the SEO owner, content and forms to the project manager.
  • Never verify in a browser alone. Browsers cache aggressively and hide status codes. Use the terminal, then confirm visually.

Launch day runbook at a glance

When What happens
T-7 days Content freeze, full staging crawl, redirect map built, backups tested
T-48 hours DNS TTL lowered to 300 seconds, SSL certificate pre-issued, monitoring configured
T-0 DNS cutover, HTTPS forced, robots.txt and noindex removed
T+1 hour Full production re-crawl, redirect spot check, forms tested end to end, analytics validated
T+24 hours Sitemap submitted, error logs reviewed, Core Web Vitals field data monitoring started
T+7 days Coverage report reviewed in Search Console, TTL restored, 404 log triaged
web design

Phase 1: Pre-flight (checks 1 to 4)

Do this a week out. Everything that follows depends on having a clean baseline.

# Check How to verify
1 Content freeze declared and communicated to the client in writing Email or ticket with a timestamp. No CMS edits on the old site after this point.
2 Legacy URL inventory exported (every indexed URL of the old site) Screaming Frog crawl + Search Console Pages export + old XML sitemap, deduplicated in a spreadsheet
3 Staging parity with production: same PHP/Node version, same cache layer, same env vars php -v, node -v, and a diff of .env.staging against .env.production keys (not values)
4 Secrets audit: no API keys, test payment keys or debug flags in the repo npx gitleaks detect --source . and confirm WP_DEBUG / APP_DEBUG are false

Phase 2: DNS and hosting (checks 5 to 9)

The DNS phase is where launches break in ways that are painful to undo. Propagation is not instant and email is the collateral damage nobody plans for.

# Check Command or tool
5 TTL lowered to 300 seconds at least 48 hours before cutover dig example.com A and read the TTL column
6 A, AAAA and CNAME records point to the new host dig +short A example.com @1.1.1.1 and dig +short AAAA example.com @8.8.8.8
7 One canonical host: www or non-www, the other 301s to it curl -sIL http://www.example.com | grep -i -E 'HTTP/|location'
8 Email records untouched: MX, SPF, DKIM, DMARC still resolve dig +short MX example.com, dig +short TXT example.com, dig +short TXT _dmarc.example.com
9 CAA record allows your certificate authority dig +short CAA example.com

Agency tip: before touching DNS, edit your local hosts file to point the domain at the new server IP and browse the production site as if it were live. You will catch hard-coded staging URLs in minutes instead of after the cutover.

web design

Phase 3: SSL, HTTPS and security headers (checks 10 to 15)

# Check Command or tool
10 Certificate covers every hostname including www and any subdomain openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | openssl x509 -noout -text | grep DNS:
11 Expiry date and auto renewal confirmed openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | openssl x509 -noout -dates plus certbot renew --dry-run
12 Full chain valid, no intermediate missing, TLS 1.2 and 1.3 only SSL Labs server test, target grade A or A+
13 HTTP forces HTTPS with a 301, not a 302 curl -sI http://example.com | head -n 1
14 Zero mixed content across templates Chrome DevTools console, plus a Screaming Frog crawl filtered on Security > Mixed Content
15 Security headers set: HSTS, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, CSP curl -sI https://example.com or securityheaders.com

Add HSTS only once you are certain HTTPS works everywhere. Enabling max-age with preload on a broken configuration locks visitors out of your site for months.

Phase 4: Redirects and URL structure (checks 16 to 21)

If you are replacing an existing site, this phase protects the traffic you already earned. It is the single most common cause of post-launch ranking drops we get called in to fix.

# Check Command or tool
16 Every legacy URL mapped 1:1 to a relevant new URL (not all to the homepage) Redirect map spreadsheet, then Screaming Frog in List mode against the old URL list
17 Redirects return 301, not 302 or meta refresh curl -sI https://example.com/old-page | head -n 1
18 No chains or loops, maximum one hop curl -sIL -o /dev/null -w '%{num_redirects} %{url_effective}\n' https://example.com/old-page
19 Trailing slash and case consistency enforced at server level Test /page, /page/ and /Page with curl -sI
20 Custom 404 page returns a real 404 status, not a 200 curl -sI https://example.com/this-does-not-exist | head -n 1
21 Deleted content returns 410 where there is no equivalent page curl -sI https://example.com/removed-offer | head -n 1

Phase 5: Crawlability and indexing (checks 22 to 26)

# Check Command or tool
22 robots.txt no longer blocks the site and links to the sitemap curl -s https://example.com/robots.txt
23 No stray noindex in HTML or in the X-Robots-Tag header curl -sI https://example.com | grep -i x-robots and a site-wide crawl filtered on Directives
24 XML sitemap is accurate: only canonical, indexable, 200 URLs curl -s https://example.com/sitemap.xml, then crawl it in List mode
25 Canonical tags are absolute and self-referencing (and point to HTTPS) curl -s https://example.com | grep canonical
26 Search Console and Bing Webmaster Tools verified, sitemap submitted, domain property added Google Search Console URL Inspection on the homepage and three key templates
web design

Phase 6: Meta tags, Open Graph and structured data (checks 27 to 31)

Meta data is what your launch announcement looks like when someone shares it. Getting the Open Graph image wrong is the most visible mistake on this list, because it appears in every LinkedIn and Slack preview for the next year.

# Check Command or tool
27 Unique title tag on every page, under roughly 60 characters Screaming Frog > Page Titles > Duplicate / Over 60 characters
28 Meta descriptions written for money pages, no template placeholders left Same crawl, Meta Description tab, search for lorem and TODO
29 Open Graph complete: og:title, og:description, og:url, og:type, og:image at 1200×630 with an absolute HTTPS URL curl -s https://example.com | grep 'og:' then LinkedIn Post Inspector and Facebook Sharing Debugger
30 X card tags present (summary_large_image) and image loads publicly curl -sI https://example.com/og-image.jpg | head -n 1
31 Favicon set, lang attribute and structured data valid (Organization, LocalBusiness, Product, Article, Breadcrumb) Google Rich Results Test and Schema Markup Validator

Phase 7: Analytics and tracking (checks 32 to 34)

# Check Command or tool
32 Analytics tag fires once per page view, with the production measurement ID, not the staging one Google Tag Assistant, GA4 DebugView, or the Network tab filtered on collect
33 Conversion events tested: form submit, phone click, purchase, file download GA4 Realtime report while you trigger each event manually
34 Consent banner blocks tags before opt-in and consent mode signals are sent Incognito window, DevTools Network tab, refuse cookies and confirm no tracking requests fire

Phase 8: Forms, email and integrations (checks 35 to 37)

# Check Command or tool
35 Every form submitted end to end from a real external address, including validation errors and the thank you page Manual test, then confirm the entry landed in the CRM and in the CMS database
36 Transactional email deliverability: notifications reach the inbox, not spam, with a valid From domain mail-tester.com, target a score of 9 or 10, plus an SMTP relay instead of the server mail function
37 Spam protection and third party integrations live: captcha or honeypot, payment gateway in live mode, booking and chat widgets loading One real low value transaction in production, then refund it
web design

Phase 9: Broken links and assets (check 38)

# Check Command or tool
38 Zero broken internal links, images, scripts, PDFs or external links lychee --verbose --no-progress https://example.com or wget --spider -r -nd -nv -o crawl.log https://example.com, then grep the log for 404

Phase 10: Performance budget (checks 39 to 40)

Set the budget before you test, otherwise you will rationalise whatever number you get. These are the thresholds we hold ourselves to on client launches.

Metric Pass Fail the launch
Largest Contentful Paint (mobile) under 2.5 s over 4 s
Interaction to Next Paint under 200 ms over 500 ms
Cumulative Layout Shift under 0.1 over 0.25
Total page weight (template average) under 1.5 MB over 3 MB
JavaScript shipped under 300 KB compressed over 600 KB
# Check Command or tool
39 Every key template measured against the budget above, on throttled mobile npx lighthouse https://example.com --form-factor=mobile --throttling-method=simulate --view or npx unlighthouse --site example.com for the whole site
40 Delivery layer optimised: Brotli or gzip on, long cache headers on static assets, WebP or AVIF images with width and height attributes, fonts preloaded with font-display swap curl -sI -H 'Accept-Encoding: br' https://example.com/app.css | grep -i -E 'content-encoding|cache-control'

Phase 11: Backups, rollback and monitoring (checks 41 to 42)

A launch is not finished when the site is live. It is finished when you can prove you can put it back and that you will know within minutes if it breaks. elementor.com has a solid rundown on this.

# Check Command or tool
41 Pre-launch backup taken, stored off-server, and restore tested, with a written rollback plan and automated daily backups scheduled mysqldump -u user -p db > pre-launch.sql plus a full file archive, then restore it to a scratch environment and load it in a browser
42 Monitoring live before cutover: uptime checks every minute, SSL expiry alerts, application error tracking, and alerts routed to a channel a human reads UptimeRobot or Better Stack for availability, Sentry for exceptions, Search Console email alerts, plus a keyword check on a string that only appears when the page renders correctly
web design

Bonus: 6 checks we add for client projects

  • Accessibility baseline: run npx @axe-core/cli https://example.com and fix all critical issues. Check keyboard navigation, focus states and colour contrast manually.
  • Cross-browser and device pass: latest Chrome, Safari, Firefox and Edge, plus one real iPhone and one real Android device. Emulators lie about Safari.
  • Legal pages published: privacy policy, cookie policy, terms, and the legal notices your jurisdiction requires, all linked in the footer.
  • Print and email rendering: print stylesheet for invoices or menus, plus a plain-text fallback for automated emails.
  • Scheduled tasks running: confirm cron jobs, cache warmers and feed imports execute on the new server with crontab -l and a log check.
  • Handover pack delivered: credentials in a password manager vault, CMS training recording, and a one-page document explaining who to call at 2 a.m.

The 5 mistakes we see most often

  1. Redirecting everything to the homepage. Google treats mass homepage redirects as soft 404s and the equity does not transfer. Map page to page.
  2. Leaving the staging noindex live. Check the header, not just the HTML source, because CDNs and server rules can inject X-Robots-Tag independently.
  3. Cutting DNS over on a Friday afternoon. Launch Tuesday or Wednesday morning, when your host, your registrar and your developer are all reachable.
  4. Testing forms from an internal address only. Internal mail often bypasses the filters that will catch external submissions.
  5. No baseline metrics. Export traffic, rankings and conversion rates before launch. Without a baseline you cannot tell a seasonal dip from a technical regression.

Copy and paste version

Short form for your ticket tracker:

PRE-FLIGHT: content freeze / legacy URL export / staging parity / secrets audit
DNS: TTL 300 / A + AAAA / canonical host / MX + SPF + DKIM + DMARC / CAA
SSL: SAN coverage / expiry + renewal / A grade / HTTP 301 to HTTPS / no mixed content / security headers
REDIRECTS: 1:1 map / 301 status / no chains / slash + case / 404 returns 404 / 410 for removed
INDEXING: robots.txt / no noindex / sitemap / canonicals / Search Console
META: titles / descriptions / Open Graph / X card / favicon + schema
ANALYTICS: tag fires once / conversion events / consent gating
FORMS: end to end test / email deliverability / spam + integrations
LINKS: full crawl, zero 404s
PERFORMANCE: budget met on mobile / compression + cache + images + fonts
SAFETY: backup restored and rollback plan / uptime + error monitoring live

FAQ

How long before launch should I start this checklist?

Start the pre-flight and redirect phases seven days out. DNS TTL changes need 48 hours to propagate. The final production pass takes a competent developer around two hours on a standard brochure site and a full day on an ecommerce build.

What is the single most important item on a website launch checklist?

The redirect map, if you are replacing an existing site. Everything else can be fixed after launch with limited damage. Broken redirects cost organic traffic that can take months to recover.

Do I need to resubmit my sitemap after launch?

Yes. Submit the XML sitemap in Search Console right after the cutover and use URL Inspection to request indexing on your five most important pages. For a full domain change, also use the Change of Address tool in Search Console.

Should I launch a new site all at once or in phases?

For most sites, launch at once. Phased launches create duplicate content between old and new templates and make it very hard to attribute a traffic change to a specific cause. Phase the launch only when the platform migration genuinely requires it, for example a large ecommerce catalogue moving in stages.

How do I check if my site is indexable after launch?

Run curl -sI https://example.com | grep -i x-robots, load https://example.com/robots.txt, and use the URL Inspection tool in Search Console on the homepage. All three need to agree that the page is crawlable and indexable.

What should I monitor in the first week after go live?

404 logs, server error rates, Search Console coverage and crawl stats, Core Web Vitals field data as it starts to populate, form submission volume compared with the old site, and uptime. Review daily for seven days, then weekly for a month.


Launching soon and want a second pair of eyes? The Pixelseed team runs this exact checklist as a paid pre-launch audit, including the redirect map and a post-launch monitoring setup. Get in touch and tell us your go-live date.

Subscription Form

Contact Details

Quick Links

Copyright © 2022 Pixel Seed. All Rights Reserved.