INTRO
Search does not reward stuffing “best Next.js developer” into every H2. It rewards a crawlable site with clear intent per URL, honest titles, and pages that load. This is the checklist I run before a marketing site or portfolio goes public.
One public origin
Pick the canonical host early. Preview URLs (`*-vercel.app` aliases) must not publish as the sitemap origin. `NEXT_PUBLIC_SITE_URL` should be Config pointing at production.
If an old host still answers, noindex it or redirect after cutover — do not let two entities fight in Google.
Metadata that matches the page job
Home = brand + role. Services = hire intent. Cases = problem proof. Blog post = one topic. Contact = convert. Duplicate titles across routes waste crawl budget.
Use the App Router `metadata` / `generateMetadata` APIs. Keep layout `title.template` from doubling the brand name in `<title>`.
Sitemap, robots, thank-you
`/sitemap.xml` lists indexable URLs on the canonical host. `/robots.txt` allows the site, points at the sitemap, and blocks APIs plus thank-you pages.
Form confirmation routes should be `noindex` — they are not content.
LCP and images without drama
Hero LCP should be a real `<img>` / `next/image` with priority — not a CSS background that Lighthouse discovers late.
Compress OG images. Defer analytics until interaction or a short timeout so gtag is not on the LCP critical path.
KEY TAKEAWAYS
“Canonical host first — SEO after that is refinement.”
- 02
One intent per URL; unique titles.
- 03
Sitemap/robots must match production, not preview.
CONCLUSION
Closing thought
Need a launch review on a Next.js site? Send the staging URL via Contact and I will run this checklist against what you shipped.
CONTINUE
Related pages
UP NEXT
Fintech Website Redesign Checklist (No Fake ROI Claims)
A redesign checklist for fintech and markets marketing sites: information architecture, performance, CTA clarity, and claim discipline.
Read next article