29 Ways To Speed Up Your Website

There are so many reasons to make your website faster:  Higher conversion rates, lower bandwidth costs and yes, higher rankings in organic search.

Frankly, I’m stunned how often web teams resist doing it.

Here’s a list from easy to not-so-easy, of 29 ways you can get things running faster on your website:

  1. Put your images on a separate domain. Services like Amazon S3 make this very easy. Open an S3 account. Point a subdomain like ‘blah.yoursite.com’ at the S3 storage. Put your images there. Web browsers can load from multiple domains simultaneously, creating the impression that your site is faster. Plus, you’ll use less of your own server’s bandwidth and CPU. Every little bit helps.

  3. Or, just put your images on Flickr and use them as your separate domain.

  5. Compress images using the right file type. Use ‘lossy’ compression—JPEG—for photos and images with lots of colors. Use ‘lossless’ compression—PNG and GIF—for line art and images with only a few colors.

  7. Resize images before you upload them. Don’t resize images using height and width! Resize them using Photoshop, or Fireworks, or whatever. Forcing people to download a 1,000-pixel-wide image to fill a 150-pixel-wide thumbnail is just cruel.

  9. Learn to write decent code. The average enterprise content management system (CMS) or shopping cart spits out nasty HTML code. Clean it the heck up. You are in charge, not the server. Any server can generate clean code with a little tweaking. So tweak.

  11. Put your CSS in separate .css files, not embedded in each page.

  13. Split up your CSS. Create one stylesheet that holds only styles used on every page of your site. Then create separate stylesheets for each unique page layout: Your home page, a typical article page, a typical product page, etc. Load only what you need on each page.

  15. Learn to use CSS. If you can use <p> instead of &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=”blue” style=”font-size:10pt;font-weight:bold;”>, you’ll end up saving a lot of space. And, people like me won’t laugh at you.

  17. Put your javascript in .js files. Don’t put it embedded in each page. It’s just… dumb. If you embed javascript, then every visiting browser, including Googlebot, has to download that code every time it hits every page. If you put it in a .js file, on the other hand, then Googlebot ignores it, and visiting browsers cache it.

  19. Split up your javascript, same as you split up your CSS.

  21. Defer javascript loading whenever possible. You can do a Google search for ‘deferred javascript’ and get some great resources for this.

  23. Chuck the Flash. Just do it. There are plenty of other ways to animate elements on the page. If you must use Flash, then use it only in small nuggets on the page.

  25. Set up GZIP compression on your web server.

  27. Minify everything: HTML, javascript and CSS. Save a non-minified copy of everything for editing purposes. Don’t use a server-driven, ‘on the fly’ solution, though. That just increases server overhead and, at really high traffic volumes, will slow things way down.

  29. Minimize redirects. The statement ‘301 redirects are good for SEO’ does not mean ‘5 consecutive 301 redirects are better than 1’. Don’t use 301 redirects unless you have to. Fix before you redirect.

  31. Fix canonicalization issues. ‘Fix’ does not mean ‘use rel=canonical’. It means ‘make sure every page on your site has a single address’. That will improve caching performance, reduce memory usage and speed things up.

  33. Invest in decent hosting. If you’re hosting at JimmyBob’s House of Hosting for $5/month, don’t expect to break any speed records. Unless you’re a serious geek, you’ll want to spend money on a decent hosting setup. I’ve seen great performance out of some shared hosting packages (multiple sites per server). But for the fastest possible setup, you’ll want one or more dedicated servers.

  35. Set up caching on your server. If you’re using WordPress, use a plugin like W3 Total Cache. If you’re using another tool, learn it and its caching capabilities. Your server does include caching, or can. Unless you bought it from pygmies who used to work at the chocolate factory down the road.

  37. Go static. If you’re building your site on PHP, ASP or another scripting language, chances are all of your site pages are in PHP, ASP or the relevant language. Some pages, though, like ‘About us’ and ‘Privacy’, change so rarely that you can likely make them totally ‘static’ .html pages. By doing that, you eliminate one set of calls to your server’s CPU. That’s a small but instant performance gain.

  39. If you’re working in .NET, learn to compress the VIEWSTATE variable. That sucker takes up a lot of room in your code. Even better, get rid of the VIEWSTATEW variable until you need it.

  41. Correctly configure your server’s memory management. I won’t try to explain this. If it doesn’t make sense, hire someone, or talk to someone, or at least write down “I didn’t configure my server’s memory management.” That way, when your server starts crashing every time traffic exceeds 200 visitors, you can save the poor schmoe elected to fix the problem a lot of time.

  43. Put your database on a separate server. If you’ve got a busy site, then you need to put your website on one server and your database on another. Database transactions eat up a lot of server oomph. You want that happening away from your web server. Otherwise, you end with the web and database software in a tug of war for server resources.

  45. Learn to use JOINs. Say you’re programming a database-driven site. You need to display, I dunno, all products in 3 categories. You can either: a) Write a snarl of nested loops, thereby driving your server into a state of hysteria and causing local authorities to dump seawater on your hosting location; or b) Learn to use a SQL JOIN statement, and avoid all that hassle. JOINs are faster. If you use them right. Please.

  47. Learn to use stored procedures. More database Kung-Fooery. Learn it if you don’t know it. Stored procedures are compiled by the database server and run a lot faster than plain old SQL scripts.

  49. Don’t use SSL unless you have to. I’ve argued myself hoarse on this one. If you want to have some fun, come up to me at a party and ask about it. Then watch all the veins in my forehead bulge as I launch into a spittle-infused diatribe about SSL, CPU cycles and other geekery.

  51. If you’re on Apache, load only the modules you need. I know. Duh. But most folks leave the defaults set, and that may include modules you don’t need.

  53. If you’re on Apache, learn to use AllowOverride, when you really need DNS lookup, and other tips like FastCGI. Read this to learn all the nerdy goodness. Your server will thank you.

  55. If you’re on Internet Information Server (IIS), learn performance logging. Then learn your way through the fun, fun, world of IIS tuning. Actually, it’s not that bad. You can start with this Technet page. Just remember to check which IIS version you’re using.

  57. Learn to use a server accelerator like Squid, or to use Apache or nginx as a caching proxy. Caching proxies and accelerators are designed to do nothing but store your web server’s dynamic pages and deliver them, really quickly, to the public. We’ve seen sites perform up to 3x faster with a Squid server in place.

The list goes on. A site is never ‘fast enough’. What’s important is that you continuously make it faster. You’ll see better returns, happier visitors and higher rankings.

Opinions expressed in the article are those of the guest author and not necessarily Search Engine Land.

Related Topics: All Things SEO Column | Channel: SEO | How To: SEO | Intermediate


About The Author: is Chief Marketing Curmudgeon and President at Portent, Inc, a firm he started in 1995. Portent is a full-service internet marketing company whose services include SEO, SEM and strategic consulting.

Connect with the author via: Email | Twitter | Google+ | LinkedIn


Get all the top search stories emailed daily!  


Other ways to share:

Read before commenting! We welcome constructive comments and allow any that meet our common sense criteria. This means being respectful and polite to others. It means providing helpful information that contributes to a story or discussion. It means leaving links only that substantially add further to a discussion. Comments using foul language, being disrespectful to others or otherwise violating what we believe are common sense standards of discussion will be deleted. Comments may also be removed if they are posted from anonymous accounts. You can read more about our comments policy here.
  • http://www.hortonwebdesign.com Chris Horton

    Thanks for the post. I’ve heard from both camps on the externally hosted images, however. If there is something wrong with one of those sites, then your site load time ends up suffering. And from what I heard spoken about previously in an old session, you also don’t get the full benefit of the ALT tags. The entry is still in the code, but the relevance gets attributed to the hosting server. Until we’re privy to how Google handles those within their algorithm in relation to relevancy, I think ‘d play it old fashioned. What has anyone else heard on this issue? That could be old news.

  • http://TannerChristensen.com Tanner C

    All such insightful and valuable tips. Really I think the best trick to increasing load times is to simply write good code. You’d be amazed how much faster a style sheet loads when there aren’t a ton of spaces or hard returns.

  • http://www.rimmkaufman.com George Michie

    Great post, Ian. Speed is the killer app. One more tip re: database stuff: make sure you have indexes built out comprehensively and appropriately. Both straight data pulls and especially joins will run ever so much faster if the right indexes are built. It is surprising how often that one critical detail is missed.

  • Ian Williams

    Hi Ian,

    Thanks for writing – very timely.

    Has anyone noticed a change in the WMT ‘site performance’ report, or am I just going crazy?

  • Ian Lurie

    George good point on the indexing. Dunno how I left that out.

  • Ian Lurie

    Chris I’ve found that using a CDN works fine from an indexing standpoint, especially if you create an XML imagemap. But you do want to be careful about which service you use. You want your CDN to SPEED UP your site, not slow it DOWN.

  • http://www.pagerank-seo.com Robert Visser

    A great start Ian. Thx for posting. I’ve found that if I’m able to tweak the code to be 90+% compliant with the guidelines on the W3C MobileOK Validation service, http://validator.w3.org/mobile/ , that page load speed increases. Have also found tweaking .htaccess cache-control to be useful.

  • http://blog.marketingxd.com/ MXD

    No mention of monitoring!!? If you don’t monitor performance, you won’t spot when some change or patch breaks your optimization.

  • http://snomanali.wordpress.com/ Syed Noman Ali

    Its great techniques to speed up thanks.

  • http://www.cnizz.com Chris

    Some really great stuff in here, but you did miss using css image sprites.

  • http://docsheldon.com Doc Sheldon

    Great post, Ian! There’s a couple of things there that are Greek to me. But you can bet I’ll heed your advice and add them to my knowledge base.
    @Chris – Sprites? Really? People still using those? ;)

  • http://www.architechsw.com david pavlicko

    Handy tips – especially like the idea of compressing your files manually instead of letting the server do it on the fly. Interested in more info on XML imagemaps, though. Never heard of that – is it like a sitemap, and where would I add that?

  • http://www.planetmike.com Michael Clark

    I thought that Flickr did not allow their images to be used on web sites without attribution and a link. From their Community guidelines:

    “Do link back to Flickr when you post your Flickr content elsewhere.
    Flickr makes it possible to post content hosted on Flickr to other web sites. However, pages on other web sites that display content hosted on flickr.com must provide a link from each photo or video back to its page on Flickr. This provides a way to get more information about the content and the photographer.”

  • Ranch

    Firstly, I’m stunned to see that using a CDN doesn’t even make your list of 29 tips. Using a good content delivery network is probably *the* #1 way to speed up a web site. The difference is drastic. As Ian said, you need to be careful which service you choose. Amazon CloudFront is easy, but it sure ain’t fast. If you’re using Google libraries, I know Google will let you load them directly from Google’s CDN, and they’re fast. But that’s only a small part of your site obviously.

    Using one of the big guys like Akamai, EdgeCast, Limelight, etc. may not be in the budget of smaller site owners, but there are many web hosts reselling CDN service now (MediaTemple, GoGrid, RackSpace) so the days of worrying about contracts, bandwidth commits, etc. are behind us.

    You have some excellent on-site optimization tips here, kudos. But excluding CDN from an article on how to speed up a web site is a glaring omission.

  • http://www.inkcover.com U.P.

    Awesome post Ian.
    I always minify and gzip compress my css and js and then upload them to cdn, but if you change your site a lot that could become an annoying task. I know it saves a lot in file size and site loading speed but thats really annoying if you do it manually, recently i found this online tool that will minify merge and gzip compress css and js and it will provide a free cdn link to compressed files : zbugs.com , hope this tip will help cause i personally was really lazy to do the whole merge, minify, compress,upload thing.


  • http://virtuallymarj.com Marj

    I love this article, and I want to thank you for writing it.

    Not only do I need to speed up one or two of my own sites, and some of your tips will surely help, you also got a LOL from me on items #8 and #12. I’ve helped a lot of people come online and, while they don’t always listen, your remarks are exactly the same as the advice that I give.

    You provided a bunch of awesome times, some of which I have used and others of which I intend to use. Thank you again!

  • http://www.techdesighn.com/ Ahsanul Karim

    Good points on speed up a website. I’ll try to apply these on my site


Get Our News, Everywhere!

Daily Email:

Follow Search Engine Land on Twitter @sengineland Like Search Engine Land on Facebook Follow Search Engine Land on Google+ Get the Search Engine Land Feed Connect with Search Engine Land on LinkedIn Check out our Tumblr! See us on Pinterest


Click to watch SMX conference video

Join us at one of our SMX or MarTech events:

United States


Australia & China

Learn more about: SMX | MarTech

Free Daily Search News Recap!

SearchCap is a once-per-day newsletter update - sign up below and get the news delivered to you!



Search Engine Land Periodic Table of SEO Success Factors

Get Your Copy
Read The Full SEO Guide