
4 Ways to Maximize Website Uptime
Downtime is a killer for any web business. When your site or application goes down sales are lost, credibility is hurt, and you might just make a user mad enough to tell all their friends about it. You want to make sure you’re doing everything you can to avoid downtime — right?
Discussions about maximizing uptime and availability usually center on a few main backend components. Hosting providers boast about their guaranteed uptime percentages, and operations teams constantly monitor components like databases and application servers. These are certainly important pieces of a website or application that deserve due attention. But when the uptime/availability conversation sticks on these well-traveled routes, it can come at the expense of other steps you can take that help to guarantee that your site is up and available as much as possible.
Here are four ways to improve uptime that you may have overlooked.
1. Cut Down Complexity on the Front End
Every single asset on a site — be it an image, JavaScript, or CSS file — is a SPOF: a single point of failure. And while a small image failing to load may not bring an entire site crashing down, other types of assets have the potential to kill the experience.
For example:
- A JavaScript may execute a blocking behavior, preventing all assets after it from loading. That’s fine if the script loads quickly, but if the script fails, the rest of your site will be blocked from continuing to load, effectively crashing it.
- A bad CSS file can alter the appearance of the entire page, thereby making the site useless.
In cases like these, all is well as far as the operations team or hosting provider is concerned, but according to the user (the only person who matters) the site is down.
The best way to deal with the inherent risk of downtime on the front end is to limit the amount of “”stuff”” on the page. Less JavaScript, fewer CSS — less complexity overall — is a best practice for uptime and for performance in general. Go asset by asset and ask yourself, “”is this widget really crucial to my business goals?”” The more you get rid of, the less chance there is your site will have catastrophic user experience issues on the front end.
If cutting down on content is simply not possible, you can also reduce the number of moving parts on the page by concatenating (combining) scripts like Javascript and CSS. When combined, the content is still all there, but it’s organized in a way that offers less opportunity for failure.
Fewer assets = fewer points of failure = more uptime.
2. Make Third Party JavaScript Load Asynchronously
In addition to limiting complexity overall, also focus on optimizing third-party JavaScript. Sites today are increasingly integrated with third party content: social media, chat features, commenting services, information feeds, and others. Making any external (third party) JavaScript load asynchronously rather than synchronously will ensure that they don’t execute a blocking behavior. Then, if the third party provider crashes, you won’t crash with it – your proprietary content will continue to load around the failed asset.
On a related note, when considering a new third party service provider, make sure that a performance/uptime SLA is part of your agreement. When you’re paying for a service that is being executed through JavaScript on your site, you should insist that the provider take responsibility for any performance hit that your site incurs as a result.
3. Improve DNS
DNS service is something that’s easy to forget about. It’s often provided by a hosting provider or domain registry and packaged with other services. But the fact that it’s not so highly visible says nothing of its importance: it’s the first step in the process of a visitor accessing your site. If DNS service is down, your site is down.
Upgraded DNS services with “”Anycast”” technology have automatic failover to other servers on the network if the closest server goes down. That guarantees 100 percent uptime for DNS. These services cost slightly more than the pre-packaged offerings from hosters and registries, but at less than 50 dollars a year it’s a tiny price to pay for the security that this important stage in delivery is guaranteed to work.
4. Use a CDN
The performance benefit of a content delivery network (CDN) is well documented: caching files closer the client will help users around the world see faster load times, offering a better user experience. But did you know that a solid CDN can also effectively eliminate downtime due to server overload?
When a CDN is activated a high percerntage of bandwidth – potentially up to 98% – usage is offloaded to the network. That leaves your origin servers free to handle important transactions (like a cart checkout) unencumbered by the task of serving up dozens of images and other static content each time a page is requested. With a CDN smoothing out demand, downtime due to high traffic is exceedingly rare. Even bot attacks that seek to bring down a site can be prevented with a CDN.
If you’ve considered a CDN in the past but been put off by the prices, take another look. The CDN market has broadened and commoditized considerably in the past few years, and CDN services are now available from dozens of vendors at price points far smaller than when the market was in its infancy.
Conclusion
Maximize your website or web application uptime is much more than simply paying for a better hosting provider. The causes of downtime are diverse and so are the ways to avoid it. You can maximize uptime by keeping downgrading complexity on the front end (content such as JavaScript), by using a CDN, and by making sure that you’re using the best DNS technology available.
Uptime is just one component of performance – for more on maximizing uptime and to learn more about how performance affects your user experience and business metrics, check out our eBook: A Beginner’s Guide to Web Performance.