A checklist before you point DNS
Most launch mistakes are cheap to fix and expensive to notice. These are worth running through on the preview URL, while the only person who can see the result is you.
1. Pick one canonical host and mean it
Decide whether the site lives at the apex or on www, then redirect
the other one with a permanent redirect. Serving identical content on both
splits every signal a search engine has about the site and is the single most
common self-inflicted SEO wound.
2. Make sure the canonical tags agree
Every page needs a <link rel="canonical"> pointing at its own
absolute URL on the host you chose. A page whose canonical points at a preview
deployment, or at localhost, will quietly ask to be
de-indexed. Grep for it before launch:
grep -r "rel=\"canonical\"" . --include="*.html"
3. Check the redirect chain, not just the destination
Extension-less URLs, trailing slashes and the host redirect can compose into three hops when you expected one. Follow the whole chain and confirm each step:
curl -sIL https://example.com/about.html | grep -i "HTTP/\|location"
4. Serve a real 404
A missing page must return status 404, not 200 with an apologetic message. A soft 404 tells a crawler the page exists, and it will keep coming back for it. Check the status code, not what the page looks like.
5. Get the sitemap and robots file consistent
The sitemap should list exactly the canonical URLs, on the canonical host, and nothing else - no redirect sources, no noindexed pages, no fragments. The robots file should reference the sitemap by absolute URL.
6. Do not send noindex to production
A preview deployment often carries X-Robots-Tag: noindex by design.
Shipping that header, or a leftover <meta name="robots"
content="noindex">, to the live site is the one mistake on this list
that can remove an entire site from an index. Check the header as well as the
markup - they are set in different places and only one of them is in your HTML.
7. Test the social preview with an absolute URL
og:image must be an absolute URL, and most scrapers will not fetch
an SVG. Use a PNG or JPEG at 1200 by 630, and remember that preview caches are
aggressive - the first version you publish is the one people will see for a
while.
8. Be careful with HSTS
Strict-Transport-Security is a good idea and is also the most
durable mistake available to you. A long max-age with
includeSubDomains is cached in every visitor's browser and cannot
be recalled. Start with a short max-age, confirm every subdomain has a valid
certificate, and only then raise it.
9. Lower the TTL before you move, not after
Drop the DNS record's TTL to a few minutes a day ahead of the cutover. If something is wrong after you switch, you want the rollback to take minutes rather than the old TTL - which you can no longer change, because the old value is what resolvers are still holding.
None of this is difficult. All of it is easier to do before a domain points at the site than after, which is the entire reason this list exists and the reason this site exists at all.