We have launched a lot of WordPress sites. This is the list we work through the day before, refined mostly by things that once went wrong.
Before the move
- Crawl the old site and save every URL, with its status code
- Map every URL that is changing to its destination, and load that map into the redirect table
- Crawl staging against the map and confirm nothing 404s
- Check every form actually sends, to a real inbox somebody reads
- Confirm the analytics property is the live one and not the one from the last project
- Take a full backup of the old site and verify you can restore it somewhere else
On the day
- Content freeze on the old site, announced to everyone who edits it, an hour before
- Final content sync
- Lower the DNS TTL the day before, not on the day
- Flip DNS, then watch the error log rather than the home page
- Confirm the SSL certificate covers both the apex and the www hostname
- Check robots.txt is not still saying what staging said
The one everybody forgets
Search engine visibility. WordPress has a checkbox that discourages indexing, it is on by default on a lot of staging environments, and it travels with the database. We have seen a site go live with it enabled and nobody notice for six weeks. It is now the first thing we check after DNS, before we tell anyone the launch is done.
After
- Keep the old environment running, untouched, for thirty days
- Watch the error log for the first twelve hours with an actual person
- Re-crawl the live site after 24 hours and compare against the map
- Submit the new sitemap and check the coverage report a week later
None of this is clever. All of it is the difference between a launch you remember and one you do not.