I've set a LOT of websites live in my career, and have helped plan the launch of many more. There are a few rules I always keep in mind and so I thought I'd share the headlines.
Don't go live on a Friday or when your developer is about to go on holiday for a week. You need to know people who worked on the project are available to help you should an issue arise, or if you just realise you want to change something after it's gone live. So don't do it immediately before a weekend, or late in the day when people need to go home to their dinner.
How long a launch actually takes completely depends on the site - sometimes it's minutes, sometimes it's hours and hours so discuss a cut off time of day with your developer. For example, if I have a launch day planned with a client, I'll say that they need to give us the final absolute go ahead by 9am, or 11am, or 2pm - depending on the site - and if we don't have the go ahead to start by then, then we wait until the next day. It's not fair on the developer to be battling with an unforeseen server issue late into the night because the marketing department were tweaking wording past the deadline.
2. Google Analytics
If you're launching a new version of an existing site, and you used Google Analytics on the previous site, make sure you've got the tracking code in place on the new site so that when it goes live, the traffic to the new site will seamlessly be in your usual Google Analytics dashboard.
Have you remembered a cookie message?! They've stepped up a notch on what they need now a days and so we've been making some pretty full on cookie tools in my day job so make sure you've got a compliant one in place.
4. DNS strategy
If you're launching a brand new website, then you just need to make sure you've got a domain registered and the developer doing the launch knows how to access it. However if you're re-launching a new website to replace an old one, and if you get a lot of traffic, you're going to want to minimise downtime. And that means a good DNS strategy.
DNS is your domain name system and it helps the Internet route your domain name (URL) to your server. There are so many different ways you can configure this, and for a smooth launch you need to make sure your developer understands their A records from their nameservers and has a good plan in place. If you need a hand in this regard get in touch - I'm also working on some e-learning material in this regard so leave your email if you'd like to hear when that launches.
5. Test the staging server
This sounds silly, but my goodness does something going live focus the mind! Too often I see clients sign off a website having played with it on a staging server for weeks, but then realise they want something changed urgently as soon as it's live! Of course things crop up and ideas change, but try and do whatever changes you can before it goes live!
6. Consider if you need a content freeze
If you're moving a database of content, you might need to stop updating the website just before launch so the existing content can be migrated to the new site and you don't want new stuff going into the old database once you've started to copy it over. So if you need a content freeze you need to decide how that fits into your timing - for example you can't plan a launch the same day that you need to publish an urgent press release if you won't be able to update the website that day.
Sometimes content or database freezes need to be more considered and if your site allows people to login or buy things, you might need to put up a message to tell them they won't be able to do that for a few hours. A neat way to go about it is to make a "read only" version of the site - this can take a bit of work, but when we did a huge migration on a very busy news site, we kept everything looking as normal on the surface, but just stopped people being able to leave comments or update their details if they were logged in for a short while.
7. Check you've got hosting details
If you're developer is sourcing your hosting then this isn't a problem, but if you're providing your hosting, then it makes sense for you or your developer to check the latest access details you've got the day before a planned launch. If other parties are involved, you don't want to go to launch just to find someone else has changed a password and the launch is delayed whilst you try and track down who changed it. The same goes for domain name access.
8. Do a soft launch if possible
It's so exciting when you get a new website! Especially if you've been working on it for months! But try to resist the temptation to shout about it immediately. Depending on your DNS strategy, it might be that everyone in the world doesn't see the new website at the same time (if you NEED everyone to see it at the same time then you need to discuss that when you're planning your DNS strategy), or it might be that an issue that didn't come to light during testing reveals itself once live. Whatever the issue, it's ideal if you can have some time for the new site to bed in and let you discover these little things or let the site propogate for the whole world, rather than have to release at tweet at exactly 10am and drive loads of traffic to something all at once!
On the topic of driving traffic to it all at once, if you are doing a big annoucement, make sure your server can handle that - ideally do some load testing so you know your server can handle a surge of people all in one go. In hosting terms, a surge of 1000 people at once is very different to getting 1000 people over the course of a day.
9. Test contact forms
Once live, make sure you test methods of contact on the site to make sure they're getting through to you. If contact forms aren't reaching your inbox, check spam and see if you can put any rules or filters in place so that they don't go to junk in the future. If they don't even seem to be getting that far, check (or ask your developer to) if your server is routing mail locally when it needs to be set to use an external mailserver .... this is such a gotcha when using CPanel on your hosting! If you're using an email provider that isn't the same as your hosting, CPanel / WHM needs to know about that.
10. Check people can give you money
This could be related to #9 but I thought I should end on a round number. If you're launching a shop, or something with any kind of payment page, make sure you do a full transaction as soon as the shop goes live to make sure real money - not testing sandbox money - lands in your account and that the process is smooth. It doesn't matter if you tested it a hundred times on staging, do it again now you're live!
There you have it. Just off the top of my head, my top 10 tips for a smooth website launch!