A checklist before you point DNS

dns launch seo

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.