Your website could be a visually-stunning conversion machine, but its appearance and functionality won't matter much if it takes too long to load. That's because web users are increasingly impatient and their impatience is likely to continue to grow as tablet and mobile web usage skyrockets.
Unfortunately, the list of things that can cause users to flee a website is long, and in many instances, any one of them can be enough to turn a new customer into a lost opportunity.
Here are 20 of the worst items on that list.
1. Social sharing buttons
2. Ad network code
3. Analytics tags
5. Unoptimized images
In many markets, fast internet connections may be the rule, not the exception, but that doesn't mean that you shouldn't maximize your image optimization. On an image-heavy page, a modest 5-10% reduction in file size per image can have a noticeable impact.
6. Bloated HTML
7. CSS (crappy stylesheets)
Serving up efficient HTML is just as important as serving up efficient CSS. Unfortunately, crappy CSS is easily found on many sites. From the use of insanely expensive descendant selectors to cutting-edge CSS3 selectors that are as performance-harming as they are useful, there are plenty of ways your CSS can be slowing your pages down.
8. Amateur jQuery
9. Subpar DNS
Many hosting companies and domain name registrars offer free DNS, but you often get what you pay for. While it's easy to take DNS for granted, you shouldn't: in some instances DNS lookups may account for a significant portion of load time.
10. Too many domains
Hosting page components across a few domains will enable parallel downloads -- a good thing -- but if components of your page are hosted across too many domains, expect the time required to resolve DNS to have a negative impact on page loading times.
11. Header fail
If you don't set a proper Expires or a Cache-Control header, you're making it harder for users' browsers to cache content locally. That means more requests for page components than is necessary.
12. Forgetting to Gzip it up
13. Poorly-written server side code
You can do everything right when it comes to serving a rendered web page to a browser but if it takes forever to generate that web page because the web application behind your website is not performant, all of your efforts on the front end are for naught.
14. SQL queries from hell
If your web application isn't blazing fast, there's a decent chance that the problem might be a SQL query. From less-than-efficient joins to selects that involve large numbers of rows and no indexes, there are plenty of ways to poorly implement an SQL query.
15. Old versions of server-side software
From PHP to Java, popular server-side software on which many websites run has historically improved over time, so if you're stuck on older versions, there's a good chance you're not taking advantage of performance gains that could be realized with little effort beyond an upgrade.
16. The wrong web server
Web servers such as Apache and IIS may be mature, viable options for hosting a website. But when it comes to scaling and speed, many of the world's biggest sites turn to speed demons like Nginx and lighttpd -- web servers you hosting company or sysadmin is probably less likely use by default.
17. Flash and Java
While the number of sites requiring the use of third party browser plug-ins like Flash and Java has decreased significantly over the years, Flash and Java aren't dead and they still deserve a place on this list.
18. Shared web hosts
Thanks to the ever-decreasing cost of hardware, purchasing or leasing powerful servers no longer has to be a bank-breaker. But even so, many companies continue to host their websites in shared environments where somebody else's poorly-performing application turns your application into a poorly-performing application. Worth noting: this also includes cloud environments, where disk IO in particular has been an area of concern.
19. Public networks for private data transfer
One of the first things many publishers do when they need to start to scale is to split their web and database servers. But many don't connect the two using a private network, creating a huge bottleneck and point of failure that can easily impact website performance.
20. Inefficient server-side caching
Thanks to open source tools like Memcached and Redis, many publishers employ server-side caching, one of the most effective ways of improving web application performance. But not all cache implementations are created equal, and a poorly thought out cache invalidation strategy can render caching entirely useless.