Home > business, datacenter, smugmug, web 2.0 > Speed Matters.

Speed Matters.

May 15, 2007

Alexa SmugMug Speed rating

As subscribers to my blog have probably already guessed, we spend an inordinate amount of time at SmugMug trying to optimize for speed. As a media-heavy website, that’s a difficult thing to do and there are a lot of pieces. A typical gallery page at SmugMug contains 16 photos (though may contain thousands), plus all of the other graphic elements on the page, JavaScript includes (we use lots of JS), CSS includes, and the page HTML itself.

We’ve long tracked our own internal “page render” time, but once it leaves our servers, it gets more difficult to track. There’s a huge, nasty mess of networking equipment and providers between our servers and each customer. There are paid services that will track some of this for you, but that doesn’t tell you what the actual customer experience is like. We have employees in Utah, Idaho, Ohio, Virginia, New York, London, the Netherlands, and Australia so we can get a decent idea, but nothing beats aggregate data.

Enter Alexa with their excellent service and the data it provides. They get a lot of publicity for their Traffic Rank and Reach stats, but they don’t help us hardly at all (we have tens of thousands of customers who use their own custom domains, for example, among other problems). The stat I really love is the Speed rating. Since Alexa aggregates data from millions of people all over the world, across all page views on a site (heavy and light), we can get a really good view of just how fast our site is:

Alexa SmugMug Speed rating

The usual disclaimers about statistics, particularly Alexa’s, apply: We don’t know exactly what they’re measuring, how much or often they’re measuring it, and how many people are actually measured. But we do know that Alexa’s Speed rating has directly correlated to feedback we get from our customers, and most importantly, our customer satisfaction. That’s good enough for me.

Now, like any Alexa statistic, such as Traffic Rank, it’s best viewed in relation to other sites, rather than alone. So here’s a bunch of photo-sharing sites, both ‘larger’ and ‘smaller’ than SmugMug, and their Speed ratings in rough order of ‘size’ according to Alexa’s Traffic Rank (again, Traffic Rank is notoriously flawed, but we have to order by *something*):

Alexa Fotolog Speed rating

Alexa Flickr Speed rating

Alexa Photobucket Speed rating

Alexa Webshots Speed rating

Alexa PBase Speed rating

Kodak Gallery:
Alexa Kodak Gallery Speed rating

Alexa SmugMug Speed rating

Alexa Shutterfly Speed rating

Alexa Snapfish Speed rating

Now, we’re not perfect. SmugMug, like every other site on the net, has problems. But we try very very hard to keep the site speedy and responsive – and I think both the stats above and our customer satisfaction speaks volumes. And I think it’s only fair to note that some of those sites handle more page and photo requests per day than we do – but we’ve left the “small site” size behind long ago, so I wouldn’t discount our size too much. It’s probably only fair to note that with the possible exception of PBase, they all have massive financial resources in comparison to ours, though, too.

We have a huge laundry list of things we can do to speed the site up even more, so look for us to shave more milliseconds off your page load times as we go forward. And I have to thank our Ops team, Andrew Gibbons – Director of Operations & Craig Meakin – Server Surgeon, and programming team, Jimmy Thompson – Web Superhero & Lee Shepherd – SmugSorcerer. Couldn’t have gotten below 1 second without them!

If there’s enough interest, I can do a follow-up post on lots of the tricks we use to get there. I don’t think we do anything earth-shattering, but lots of small things add up. Let me know.

  1. Doug
    May 15, 2007 at 11:40 pm

    I would love to see more details about what you do to improve network performance.


  2. Brian Reischl
    May 16, 2007 at 7:45 am

    I’ll second that – I’d love to hear your tricks.

    After that maybe I can have your guys review my code… 😉

  3. May 16, 2007 at 8:38 am

    Third that. As a smug mug user, I am also a grateful recipient of this 🙂


  4. Kritzer
    May 16, 2007 at 8:49 am


    How many motions until it’s carried?



  5. May 16, 2007 at 9:00 am

    Wow, this blog post is getting more traction than I thought it would. I figured my post on Sun’s storage would be the winner today. Maybe I was wrong?

    Digg this baby to the front page, and I promise I’ll post details. (Ok, ok, so I’ll probably post details anyway. Just digg it already 🙂 )

  6. May 16, 2007 at 9:42 am

    Hi, Don! I hadn’t checked that number in a while, but Fotolog’s has dropped almost 3 seconds in the last year. I had always assumed that this number was based largely on load time of the home page, and we always have lots of constantly updating images, but I may be wrong about how that is measured. Regarding massive financial resources: ha. We are parsimonious, both in our equipment spend and in our headcount…and boy would I love to spend more money.

    Do you use any external site response trackers like Keynote or Gomez?

  7. May 16, 2007 at 9:53 am


    Hi yourself! 🙂

    We thought it mostly tracked homepages, too, but then we made some significant performance changes maybe a year ago that only affected dynamic pages, not our homepage, and saw a big drop. We’ve gone from being in the 2 seconds+ range to less than 1 second with zero changes to our homepage – so clearly it tracks more than that.

    It probably depends a lot on the traffic patterns of your users. If they spend a lot of time on the homepage, or visit it frequently, that might be the case. Ours don’t.

    Our most important metric, though, is that our customer satisfaction around speed directly correlated with Alexa’s rating. For us, that did it – we’re now believers. 🙂

    As for financial resources, I hate to get nitpicky since I do admire your growth and your ability to overcome all of the engineering problems you guys had a few years ago, but we’ve taken exactly $0 of investment. How many millions have you taken? 🙂

  8. May 16, 2007 at 1:06 pm

    Point taken! I was hoping you would forget about that part. 🙂 Definitely several million has been involved. Of course I wish it had been spent differently, but hey, you play the hand your dealt.

    As for the Alexa numbers: I wouldn’t call us true believers, but taken together with a whole lot of other data, they are not illogical. We’ve noticed great growth as well as these performance numbers have ticked down.

  9. Shane
    May 16, 2007 at 4:12 pm

    Would love to see some details on how you knock down those page load times.

  10. May 16, 2007 at 4:23 pm

    For the last three months you have had 0.0344% of internet traffic at your site. By comparison Flickr has had 1.06848% reach their site in the same three months. Correct me if I’m wrong, but Flickr’s servers are under more stress than yours. That just might be playing a part.

  11. May 16, 2007 at 4:31 pm

    Having been a SmugMug member previously, I know you devs do a lot of hard work and create some great stuff at SmugMug. But, love it or hate it, Flickr is an awesome site and if you had that many people hitting every day, and all the other automated stuff hitting your servers, you’d see a performance decrease.

  12. May 16, 2007 at 4:35 pm

    Something just ain’t right about those measurements. There’s more to a website than the HTML document. In website (the home page), 20% of it’s weight is HTML the rest is images, CSS and JS which is partially served since consecutive visits are client cached. From here the average loading time of my site is 0.16 seconds but the total loading time is probably much more due to the remaining bits and pieces.

    Here’s a blog I thought was very interesting and you might find it funny too:

  13. May 16, 2007 at 4:41 pm

    @Doc Xango:

    Alexa’s incredibly bad for tracking actual real usage. There are a bunch of things working against us:

    – They only track people who have installed the Alexa toolbar, which tends to be developers and webmasters. Flickr has lots of geeks, we have almost none, thus, we get tracked less.

    – We have tens of thousands of custom domain names people use, which aren’t smugmug.com, which thus don’t get tracked. Flickr doesn’t.

    – Alexa’s toolbar doesn’t work on the Mac. SmugMug has a disproportionately high percentage of Mac customers (likely because Mac customers buy Macs for the same reasons people buy SmugMug). I’m fairly certain Flickrs is more like the real world, Mac percentage-wise.

    Based on all the data we have, we estimate Flickr’s traffic to be maybe 4X our traffic on a regular basis. That’s very significant, but we could certainly scale to 4X our traffic without a significant speed decrease.

  14. david
    May 16, 2007 at 4:42 pm

    um… you get that your site is 99% text right, and that is why it is faster to load on average? I mean, it’s like pointing out that notepad fires up on windows faster than outlook. Duh.

  15. May 16, 2007 at 4:43 pm

    @Dave Nicoll:

    I feel fairly confident in saying, based on what limited data I have on Flickr’s traffic, that we could handle it without a noticeable change in speed. But that’s limited data, and I’m not sure why we need to compare ourselves to Flickr anyway. I think Flickr is fast enough for their customers, who are obviously happy, but doesn’t everyone want to be just a little bit faster than they are now? Otherwise, why aren’t we all still using modems?

    Let’s not forget that Yahoo has a ton of money (we have $0 of investment) and decades of experience doing this, too. So they’d better be fast. 🙂

  16. May 16, 2007 at 4:47 pm


    Um, my site is 99% text? What on earth are the 150,000,000 photos doing here then?

    I think you’re mistaken about what “my site” is.

  17. May 16, 2007 at 4:48 pm

    @Peter Bengsston:

    My best guess is that Alexa’s measuring time to get all of the pieces of the page (HTML, JS, CSS, images) but not actually render them in the browser. But like I said, no-one really knows for sure except Alexa.

  18. DeLuxan
    May 16, 2007 at 4:54 pm

    A few years ago the company I work for out grew the multiple OC-3s to the campus that hosts their eCommerce site. With connectivity so expensive and compressed time lines we decided to leverage a CDN vendor to host all of static and cacheable content which has been a very big win. Other more recent advances include a switch to Sun’s awesome T1000 & T2000 servers, better middleware, and now were looking at some cool java acceleration appliances. Oh and as far as external monitoring of site performance we have been very pleased with Keynote.

  19. Ollie
    May 16, 2007 at 5:04 pm

    I use to work for a web company making websites, and other on-line information and marketing material. I use to be amongst 7 other designers. I use to really look at optimizing code, really at the code and rework and reuse images, anyway, I always got far better results due tom the extra steps I took, It would take mea longer time, but everyone else just sliced and output straight from fireworks. I remember once I reduced a colleagues webpage from over 1 and a half meg to just under 110k with almost no visual difference. Anyway the powers that be could not see that my hard work resulted in more page hits and gave me grief, iIquit and went onto better things.. moral is that some tools still run the businesses that try to make money out of the web no matter how hard you try.

  20. karl
    May 16, 2007 at 5:05 pm

    The only problem is the photos are not visible in Firefox 2

  21. me
    May 16, 2007 at 5:36 pm

    u suk

  22. May 16, 2007 at 5:53 pm

    I use smugmug to host all the images on my website, and I’m constantly amazed by the speed at which the images come across at. Sometimes it seems like the images are stored locally. Whatever you guys are doing, you’re obviously doing it right!

    Just don’t stop, keep trying to improve those numbers! Someday your competition might catch up!

  23. patrick
    May 16, 2007 at 5:57 pm

    I work for a company that specializes in optimizing web traffic. Our appliances sit in front of the top 20+ largest Internet sites out there, i.e. Google, Amazon, eBay, AOL, etc… and the majority of the Keynote and Gomez sites are our customers as well. Ping me – I’d love to chat.

  24. May 16, 2007 at 6:00 pm


    We use your hardware already. 🙂

  25. Marc
    May 16, 2007 at 6:06 pm


    What’s the name of your company?

  26. May 16, 2007 at 6:12 pm

    Can we get a hint about Patrick’s company?

  27. May 16, 2007 at 6:25 pm

    I’d like to know your speed tips… thanks

  28. May 16, 2007 at 6:26 pm

    I’m an SE for Citrix and specialize in Application Networking. Netscaler is the product I was referring to, found here:

    After I wrote my post I poked around on your site and realized that you were a Netscaler customer based on the traces I looked at. Rock on! Prior to working here I was a Netscaler customer myself. It’s great product – obviously, I joined the company. 🙂

  29. mcode151
    May 16, 2007 at 6:40 pm

    F5 is a pretty good company-random guess

  30. May 16, 2007 at 6:41 pm

    Patrick works at Citrix, I believe, who bought NetScaler.

  31. patrick
    May 16, 2007 at 6:50 pm

    F5 – Booo! Hisss! 🙂

  32. mcode151
    May 16, 2007 at 9:14 pm

    ha-Citrix, Cisco, Foundry, and Nortel we’re my next guesses

  33. May 16, 2007 at 10:40 pm

    It’s not a photo site but one of the reasons I hate visiting Digg is how slow it loads when you have well … loads of “digg friends”. It makes 5 seconds look like the speed of light.

    I think it has to do a lot with creating a seamless experience for the user. I remember one Tech executive saying that he thought a big part of Google’s success is how blazingly fast they load up search results on a regular basis.

    I’d love to read the next installment of this article.

  34. May 16, 2007 at 10:40 pm

    nice site smugmug.com. And of course … fast

  35. May 16, 2007 at 11:10 pm

    @Patrick: We used a Netscaler at Penny Arcade for a while and it was a great box. We couldn’t justify the expense from a business perspective, but man, as an engineer our site was cooking.

    Anyway, Don great post. I’d love to see a follow up. I do have a musing I’d like your take on. It might be more philosophical than technical but let’s give it a try.

    Over at PA our big push is going towards client side caching (after all, disk > network). For example, we have some generic javascript that gets referenced on every comic page*. Once a user has viewed one comic, the script can be served locally out of cache. A few hours later I stumbled on AOL’s dojo cdn [1] and thought to myself, you know I bet other developers link to this as well. In essence the more sites link to the dojo framework on AOL’s cdn, the more likely the framework is already sitting in cache when an arbitrary user visits your site.

    Extending that metaphor to smugmug, you guys could be using a shared /include/ folder on smugmug.com, but you guys seem to be very explicit in making static entities local to a site:
    I figure you guys probably have a good reason behind it though I couldn’t tell if it was a byproduct of customization (eg. CNAME aliasing for pro-users) or something more obscure (eg. domain scoping/browser security)

    * Clever users note the distinct lack of this code in production. It’s not quite ready for prime time.
    [1] http://dev.aol.com/dojo

  36. May 16, 2007 at 11:17 pm

    As it turns out that post wasn’t ready for prime time. 😉

    Upon clearing the cache and reloading the site, I saw the connection requests to js.smugmug.com. After a bit of digging around I saw the magic. For the curious, it turns out it is a customization thing. Anyway, Don I think I owe you an email as I’d like to pick your brain about some things off the record.


  37. May 16, 2007 at 11:47 pm

    @Erik Karulf:

    We’re monster Penny Arcade fans over here. (I actually worked on SiN, the subject of the very first Penny Arcade comic, so I’ve been a fan since Day One). I’m sending you an email as soon as I submit this comment – feel free to pick my brain anytime, and I’d love to do the same.

    As you already noticed, *most* of our JS is served from a single “hostname”, js.smugmug.com, which does keep it global in scope. And since we do a very good job of making sure it stays cached in the browser cache, one hit should be all it takes to keep it there for a nice long time. In addition, the JS itself is both minified and gzipped, so it’s fast over the wire.

    There are a few places, like homepage_ajax, that we haven’t yet changed the hostname to. (I actually wasn’t aware of that one, but viewing the page source shows that, indeed, we’d overlooked it. So thanks!). We’re gradually working through those. Now if only browsers would parallel load JS, we’d really be in business.

    Anyway, using a CDN would probably help, but since it’s a one-time event, we figure it’s not critical. I’m not sure whether it makes sense for PA or not, but the very fact that you’re looking at all the angles and details suggests you’ll make the right call. 🙂

  38. May 17, 2007 at 2:06 am

    Good post, so often I will close a webpage simply because its taking too long to load. My site got dugg a couple of days ago but fortunately the huge amount of traffic did not slow the site down. I find modules such as wordpress cache help loads. A decent host goes a long way too.

  39. Dom
    May 17, 2007 at 3:27 am

    That’s pretty damn fast. Well done.

    According to Alexa, the load time of my photo sharing site is 1.1 seconds… but then I only have 400 users. I *think* you have slightly more. 😉

    I’d love to hear more specifics about what you do to maintain speeds.

  40. May 17, 2007 at 6:37 am

    Great post!

  41. May 17, 2007 at 7:09 am

    I would love to hear the strategy to minimize the load time of a website. This has been my concern for several months.

  42. May 17, 2007 at 7:11 am

    We would love to hear the strategy to minimize the load time of a site at http://www.idealtechgroup.com Thanks.

  43. Alex
    May 17, 2007 at 7:57 am

    I would love to hear how you are able to make your pages load so fast! I think it’s valuable info the web should know about!

    You complain more sites don’t do it, so you should share what you know so that more people have an idea about what they should be trying to do to effectively speed up their own sites.

  44. May 17, 2007 at 3:48 pm

    I’m sooo adding you to my google rss reader!
    Look forward to hearing tricks & tips you can share!

  45. May 17, 2007 at 3:56 pm

    Yes! Keep them coming, this is exactly the kind of thing my Web Developers need to be doing.. Any similar posts or advice Don?

  46. Karl
    May 17, 2007 at 5:02 pm

    I’d be interested to see where picasaweb fits on this. I like that service because it is simple and FAST!

  47. yiddish strip club owner
    June 12, 2007 at 10:38 am

    What the hell is smugmug?

  48. November 30, 2008 at 6:17 pm


  49. November 30, 2008 at 8:11 pm

    “Добавил в закладки”

  50. November 30, 2008 at 9:51 pm

    Спасибо огромное!

  51. January 5, 2009 at 11:46 pm

    I have to disagree with that last comment…doesn’t make sense

  52. March 15, 2009 at 9:32 pm

    good post!! I love your sites favicon lol.

  53. March 15, 2009 at 9:33 pm

    Speed is really important… For sure.

  1. May 16, 2007 at 7:30 pm
  2. May 16, 2007 at 11:02 pm
  3. May 17, 2007 at 1:18 pm
  4. May 18, 2007 at 3:25 pm
  5. June 12, 2007 at 11:16 pm
  6. November 1, 2007 at 10:13 am
  7. April 2, 2008 at 2:51 pm
  8. November 2, 2008 at 12:46 pm
Comments are closed.
%d bloggers like this: