All guides
Website launchLaunch safely5 min read

Next.js Website Launch Checklist: SEO, Analytics, Forms, and CMS

A launch checklist for Next.js marketing sites covering metadata, sitemap, robots, structured data, analytics, forms, images, accessibility, and CMS publishing.

Next.js launch checklist with SEO, analytics, forms, and CMS tasks.

Launch day rarely breaks because of design. It breaks because a form silently fails, a canonical tag points at staging, analytics never fire, or the sitemap forgets half the routes. Those are the failures that quietly cost pipeline, and they're all preventable with a checklist you actually run.

We ship Next.js marketing sites in a week, and the last day is never ceremonial. It's when we confirm the acquisition system works. Here's the sequence we run before sending a single visitor.

Run the metadata pass first

Walk every route and verify title, description, canonical, Open Graph, and Twitter tags. In the App Router, that means checking each page's generateMetadata output, not assuming a layout default covers it. Duplicate titles across pages are the most common miss, followed by canonicals still pointing at a preview domain.

Confirm OG images render at the right dimensions; a broken share preview undercuts every link you'll post on launch day.

Confirm crawling is open and complete

Generate sitemap.xml from your real route list, not a hand-maintained file that drifts. Check robots.txt actually allows crawling in production; staging robots files blocking everything is a classic carryover. Then submit the sitemap in Search Console once the production domain serves the new site.

Order matters here, which is why the next question comes up on every project.

Sitemap timing: after the cutover

Submit the sitemap after the production domain serves the new build and redirects resolve. Submitting against staging or mid-cutover gets you indexed URLs that don't match your canonical map. Verify the indexed set lines up with what you intend to be canonical.

Verify every conversion path

Submit each form end-to-end and confirm the lead lands in the right inbox or CRM within a minute. Test on real mobile and desktop, with a payload that looks like a real submission. Check spam folders and any CRM automation that might silently discard a test. Click every phone and mailto link. A "contact us" form that fails silently can go unnoticed for weeks. We've debugged exactly that more than once.

Prove analytics actually fire

Don't trust that GA4 is "installed." Trigger page_view, your primary CTA click, and form_submit, then watch them land in realtime. To avoid polluting production numbers, use GA4 DebugView with the debug parameter, or a separate property for staging. Confirm three to five meaningful events fire correctly before paid traffic arrives.

Check performance on a real phone

Run mobile performance checks and fix the obvious offenders: oversized hero images, layout shift from late-loading fonts or images without dimensions, and render-blocking scripts. Next.js gives you image optimization. Make sure it's actually used. Core Web Vitals on mobile, not desktop, is what most buyers experience.

CMS publishing needs its own checks

A fast frontend means nothing if the publish pipeline is broken. Confirm editors can publish, previews match production, webhooks trigger your rebuild or ISR revalidation, and draft content isn't accidentally indexed. We've seen launches where the site was perfect but the first editor couldn't get a post live.

Launch-day checklist at a glance

Area Must pass
Metadata Unique titles, correct canonicals, OG images
Crawling sitemap.xml submitted, robots allows prod
Conversions Every form delivers to inbox/CRM
Analytics page_view, CTA, form_submit fire in realtime
Performance Mobile vitals clean, images optimized
CMS Publish, preview, webhook, no indexed drafts

What to do next

Block an hour for this pass before cutover and assign one owner to fix breakages fast in the first hour of traffic. If you'd rather not learn which item you forgot from a Search Console drop, Metamatter runs the full launch QA as part of every sprint.

Build a reusable launch runbook

Run this checklist once and you'll want it again. Every future launch and major release benefits from the same pass. Turn it into a runbook your team can follow without you: a shared doc with each check, the owner, and a pass/fail box. Add the exact GA4 events you expect, the canonical map you intend, and the forms with their destination inboxes. The first launch is where it costs the most to discover gaps; the second is where the runbook pays you back. We keep a templated version per client so the QA that protected the launch also protects the next deploy. A checklist you rerun is worth ten you wrote once and lost in a Slack thread.

FAQ

What breaks most often on Next.js launch day?

Forms that don't deliver, missing or wrong canonical tags, analytics that never fire, and sitemaps that omit new routes. Design rarely causes revenue loss on day one. Broken acquisition paths do.

Should I submit the sitemap before or after DNS cutover?

After the production domain serves the new site. Submit in Search Console once redirects resolve and robots.txt allows crawling. Then verify indexed URLs match your canonical map.

How do I test GA4 events without polluting production data?

Use GA4 DebugView with the debug parameter, or a separate GA4 property for staging. At minimum, confirm page_view, form_submit, and your primary CTA click in realtime before sending paid traffic.

Does CMS publishing need its own launch checks?

Yes. Confirm editors can publish, previews match production, webhooks trigger rebuilds or ISR, and draft content isn't accidentally indexed. A fast frontend means nothing if the publish pipeline is broken.

Sources and further reading