Keynote

Bad news for site owners and mobile users: The average web page is now 1 MB

I wrote about this at greater length in this post for GigaOM (which also includes some nifty graphs), but want to summarize a few of the key points here.

  • According to the HTTP Archive, which gathers stats on the top million sites in the world (as ranked by Alexa), the average web page has surpassed the 1 MB mark.
  • In the past 18 months, the average web page has grown by 50% — from 702 KB in November 2010 to 1042 KB on May 1, 2012. (Side note: Since I wrote the GigaOM piece, the HTTP Archive has refreshed with new data. The average page is now 1059 KB.)
  • At this rate, the average page will hit 2 MB by 2015.
  • Images and third-party scripts (i.e. analytics, ads, social sharing buttons) are the main culprits.

Mobile users take the hardest hit.

Consequences include being throttled by providers or being hit with massive roaming charges. (For example, earlier this month I bought 25 MB of data from my provider for $100 while travelling in Europe. This works out to $4 per page.)

There’s a head-in-the-sand tendency to assume that just because our devices, browsers, and networks are more powerful than ever, end-user performance must also be getting better.

To disprove this, here’s a graph I created, in which I overlaid two sets of numbers spanning the past 12 months. The red line represents the page size data from the HTTP Archive. The blue line represents the mobile load time index from Keynote. While the two lines represent different data sets, it’s pretty clear that the general trend is up — bigger and slower.

Correlation between web page size and mobile load time

As I’ve said many (many!) times, building a mobile-specific site isn’t the answer.

One-third of a site’s visitors will choose to visit the full site if given the option between the two. That’s because people want the same breadth and depth of content and a consistent user experience, no matter what device they use. Site owners who can deliver a fast, reliable, cross-platform user experience are going to be the ones who own the web of the not-so-distant future.

Related posts:

Why you should care about Google’s changes to its mobile AdWords algorithm

Last week, when Google announced that your mobile site’s performance is now a factor in how Google determines its AdWords quality, it didn’t get as much buzz as its 2010 announcement that site speed would affect Google search ranking. But it should have.

From The Google Mobile Ads blog:

In the coming weeks, we will be introducing the mobile optimization of a website as a new factor of ads quality for AdWords campaigns that are driving mobile search traffic. As a result of this change, ads that have mobile optimized landing pages will perform better in AdWords — they will generally drive more mobile traffic at a lower cost.

If you run AdWords campaigns on a regular basis, this is obviously big news. But it’s big news beyond the world of paid search, too. Google is sending out an early warning to site owners: make your mobile site faster, or you’ll be left behind.

Countless studies tell us that, globally, mobile is going to leave the desktop in the dust. And even more studies tell us that people expect mobile sites to be at least as fast as sites on the desktop. But looking at a sampling of leading m-commerce sites — Keynote’s latest mobile commerce performance index is 10.15 seconds – it’s hard to detect any urgency on the part of site owners to deliver a faster mobile experience.

Before we get into that, a little background.

How AdWords works

For those new to AdWords, here’s a quick breakdown of how it works (more detailed info here):

  1. As an advertiser, you create your ads and choose your keywords. You set a daily cap and a per-click cap on how much you want to spend on your AdWords campaign. Per-click costs can range from a penny to $10 or more, but they’re generally in the range of one or two bucks. Your caps are used as your bid in an ongoing auction for ad space.
  2. When people use one of your keywords for a Google search, your ad may appear next to the search results. (Note the operative word here: may.)
  3. Every time someone clicks on your ad, you pay Google.

According to Wikipedia, click-through rates (CTR) for ads are about 8% for the first ad, 5% for the second one, and 2.5% for the third one. The ordering of the paid-for listings depends on other advertisers’ bids and the “quality score” of all ads shown for a given search.

So as an advertiser, your goal is to get the top ad spot, and the only way to do this is by having a good quality score for your ad. So how do you do this?

What is the “quality score” and how is it determined?

This is Google, so of course we’ll never know the exact recipe for their secret sauce, but they have shared this description:

A Quality Score is calculated every time your keyword matches a search query — that is, every time your keyword has the potential to trigger an ad. The AdWords system calculates a Quality Score for each of your keywords. It looks at a variety of factors to measure how relevant your keyword is to your ad text and to a user’s search query. A keyword’s Quality Score updates frequently and is closely related to its performance. In general, a high Quality Score means that your keyword will trigger ads in a higher position and at a lower cost-per-click (CPC).

To recap, in order to have a good quality score — for both desktop and mobile searches — your AdWords campaign needs to have:

  • relevant keywords,
  • relevant ad text,
  • a strong CTR on Google, and
  • a decent CPC bid.

This combination of factors is meant to be a boon for small business owners, because you can’t be locked out of the ranking system based solely on your bid, and you can’t necessarily win the top spot just by driving a dump truck full of money up to Larry Page’s house.

So where does mobile come into the picture?

This new announcement means that, in addition to all the factors above, the landing page quality of your mobile site is now a major factor for AdWords campaigns that drive mobile traffic. “Landing page quality” refers to everything from layout to mobile/touch features to landing page load time.

None of this is entirely new. Google says that, last year, it began to limit ad serving on some mobile devices if the ads pointed to Flash-heavy landing pages. Interestingly, this change was rolled out quietly, with no media fanfare.

On the surface, Google’s mobile AdWords changes may not sound as dramatic as its site speed/SEO announcement, but I see these changes as extremely telling. Whether making big public announcements or quietly rolling out changes behind the scenes, Google is an inexorable juggernaut when it comes to site speed. Now Google has clearly set its sights on mobile. These early algorithm changes are just the first of many we can expect in the very near future.

Related posts:

Why the performance measurement island you trust is sinking

I want to start this post with a little story. (Self indulgent, I know. But I never do this, so humor me this one time.)

The enlightenment currently going on in our industry reminds me of an allegory told in a book called Flatland, written in 1884 by Edwin Abbot. Flatland is a two-dimensional world whose inhabitants are geometric figures. The protagonist is a square.

One day, the square is visited by a sphere from a three-dimensional world called Spaceland. When the sphere visits Flatland, however, all that is visible to Flatlanders is the part of the sphere that lies in their plane: a circle. The square is astonished that the circle is able to grow or shrink at will (by rising or sinking into the plane of Flatland) and even to disappear and reappear in a different place.

The sphere tries to explain the concept of the third dimension to the two-dimensional sphere, but the square, though skilled at two-dimensional geometry, doesn’t get it. He can’t understand what it means to have thickness in addition to height and width, nor can he understand that the circle has a view of the world from up above him, where “up” does not mean from the north.

In desperation, the sphere yanks the square up out of Flatland and into the third dimension so that the square can look down on his world and see it all at once. The square recalls the experience:

An unspeakable horror seized me. There was darkness; then a dizzy, sickening sensation of sight that was not like seeing; I saw space that was not space; I was myself, and not myself. When I could find voice, I shrieked aloud in agony, “Either this is madness or it is Hell.” “It is neither,” calmly replied the voice of the sphere. “It is Knowledge; it is Three dimensions: open your eye once again and try to look steadily.” I looked, and, behold, a new world.”

The square is awestruck. He prostrates himself before the sphere and becomes the sphere’s disciple. Upon his return to Flatland, he struggles to preach the Gospel of Three Dimensions to his fellow two-dimensional creatures.

What does this have to do with performance?

I’ve sugarcoated this message in the past. Now I want to come right out and say it:

There is a very good chance that the measurements you trust to tell you how fast your site is are wrong.

I’ll go one step further (and risk losing a few friends in the CDN and ADC space) and say this:

If you’re a site owner, many members of the performance industry are intentionally misleading you.

In other words, it’s in many performance vendors’ best interests to keep you living in Flatland.

Let me tell you a very common story:

I was talking with a customer who runs a very large ecommerce site. He’s been told by all his trusted performance advisors (analytics company, performance measurement company, large CDN company and/or large load balancer company) that the gold standard for measurement is a graph based on synthetic backbone tests, which looks something like this:

Click to see larger version

If you’ve ever had a similar conversation with one of your performance vendors, I’m going to bet that he or she has told you some or all of the following things:

  • This graph represents the home page performance of your site.
  • The test is a representative average of many geographical locations.
  • The test methodology is rarely exposed but, when dissected, the vendor tells you it is the industry standard, tested using real modern browsers.
  • The vendor assures you that this is the “safe island” upon which all companies measure performance.

When pushed, the vendor may also show you a waterfall that looks something like this:

Click to see larger version

I routinely encounter customers that have been led, by the very experts they trust, into believing that their site performance can be measured by tools like this. It can’t.

Three reasons why you can’t always believe the experts you trust

1. Industry benchmarks are wrong.

I’ve written about this here, so I won’t rehash it all again. Short version: Benchmarks are based on backbone tests, which only tell you how fast your site loads at major internet hubs. Because you’re skipping the “last mile” between the server and the user’s browser, you’re not seeing how your site actually performs in the real world. As I noted in my earlier post, your backbone test may tell you that your site loads in 1.3 seconds, when in the real world it actually takes anywhere from 3 to 10 seconds. That’s a huge discrepancy.

2. Major performance vendors have convinced site owners to tie bonuses for key employees to backbone test results.

This practice is so widespread and accepted that I have spoken to employees at big companies who tell me that they don’t even care what their real-world performance is anymore, because the bonus they get only depends on how their backbone test performance compares to the industry benchmarks.

3. These same performance vendors continue to cling to these test results because it justifies their high margins.

This is the saddest part. I have spoken at length to large companies — trusted performance experts — who know that these tests are a worthless measure of real-world performance. But they continue to sell them as the gospel truth because, as I’ve been told, “This is the only safe island we have. Without a standard, no matter how untrustworthy, we could not command high margins for our products.”

Diabolical scam? Or good intentions gone wrong? A bit of both?

I want to be clear about this: I’m not criticizing the companies like Gomez that make these tests. I am, however, extremely critical of performance vendors who use these tests as a means of communicating the value of their product.

Backbone tests were originally developed to do two things:

  • Monitor uptime/downtime – Telling you if your site is up and running.
  • Spot performance trends – If you see a spike in your graph, then something’s probably wrong somewhere, especially if the spike lasts a while.

Monitoring downtime and spotting performance trends remain valid use cases for backbone tests. Measuring actual page speed, however? Not a valid use case. So why do some performance vendors pretend different?

In recent years, interest in front-end performance has boomed. At the same time, there was a void in measurement tools. At the time, backbone tests filled this void. They were able to do this because, as long as some basic assumptions went unquestioned, they felt close enough that people accepted them without question.

Why backbone tests are deeply flawed measures of real-world performance

Backbone tests are flawed performance indicators because they rely on several basic assumptions that simply are not true:

Measurement factor Why it matters What SHOULD be tested What IS tested
Latency In the real world, we know that most people are, at best, 20-30ms from the closest server. Synthetic clients should be exposed to last mile latency that mimics real-world users. Synthetic clients sit at the elbow of the internet and experience almost no latency. (The waterfall above shows the first asset coming down in 0.002s. Ha!)
Bandwidth In the real world, most users have limited bandwidth (2-5Mbps) and are on cable/DSL/ADSL lines. Synthetic clients should be exposed to last mile bandwidth limitations, just like real-world users. Synthetic clients enjoy warm, cozy homes in plush tier 1datacenters with nearly unlimited bandwidth to the world
Stopping the clock We need to know when to stop measuring, so we know how fast our pages are. Actual browser events are the closest indicators to page speed.  Pages are finished loading when the on-load event fires, which is often way before the last resource is served. In fact, from a user’s perspective, pages are often finished loading much earlier than the onload event. Pages are finished loading when the last resource is served.  (You know all those JavaScripts everyone keeps telling you to defer? Totally immaterial if you test like this!)
Where the resources are Pages often have resources all over the place, near and far; particularly for longtail or low hit rate content. A simulation of what a real user would experience.  Resources that are likely to be near the user should be near it and those likely to be far should be far. For CDN customers, the resources are conveniently located and always available in the rack next to the test box.
(Some CDNs have gamed this system and ensured that their pops are conveniently located next to the servers that perform these types of test.)
Browsers There are many browsers out there, and the modern ones are iterating pretty quickly. The browsers available for synthetic testing should be close to the browsers that are used in the real world.  And they should keep up. We still see many IE6 agents. Many of the agents that report as IE8 actually work as IE7 agents.
JavaScript JavaScript is a big part of the web. Its effect on the browser and page speed can sometimes be significant. Synthetic clients should run client-side code exactly like a normal browser would and report back on the client-side processing impact and its effect on the overall speed of the page. Many tests we see don’t run JavaScript properly.

So how do you get a true measure of your site’s speed?

Many different solutions exist to help you see the truth about exactly what is going on in the real world — from free tools like WebPagetest to real end user monitoring tools. (There are too many to discuss here, but you can find them by Googling “real user monitoring”. When you’re analyzing tools, be sure to check out how each one measures the last mile, the trip between the server and the browser).

While there is no absolutely perfect tool out there (and when I find one, I’ll be sure to let you know about it), I can assure you that these tools are better than the backbone tests you’ve been fed so far.

Related posts:

Mobile performance: Don’t panic, but it’s worse than we thought.

Earlier today, I was part of Neustar’s online panel about mobile performance. We all had a great time bandying around our favourite stats and research, and when it was over I was inspired to do a little more digging. I’ve found a couple of things that have kind of blown my mind, which I want to add to the dialogue now:

  • In just a few months, the load time for the average mobile retail website has almost doubled, from 5.47 seconds to almost 10 seconds. (I’m being a bit disingenuous here. More on this below.)
  • Mobile user expectations have grown radically. In 2009, 58% of mobile users expected a site to load as fast on their mobile device as on their desktop. In 2011, that number has shot up to 85%.

Mobile sites are even slower than we thought.

A while back, I wrote about indicators that mobile sites seem to be getting slower rather than faster. I cited research from Keynote and Gomez illustrating that the average average m-commerce site (according to their respective indices) loads in 5.47 seconds, up from 4.73 seconds the previous year. As it turns out, these estimates were way off the mark.

Here at Strangeloop, we’ve been tracking Keynote’s mobile e-commerce index since 2009, and we recently noted this dramatic change in load time:

Growth in page load time

At the end of March, the index stood at around 5.3 seconds. The latest index, for June 19, is 9.86 seconds.

It didn’t take long to figure out the cause. A couple of months ago, Keynote quietly announced that they were doubling their mobile index list and changing their performance monitoring methodology. Before, they focused solely on measuring mobile domains (i.e. m.URL.com). Now, according to Keynote’s mobile performance evangelist, Herman Ng:

“We now capture additional page load time as a result of URL redirection. Best practices would call for no more than two URL redirects. Each URL redirection requires an HTTP round-trip request between the mobile device and the retailer web server, all of which adds extra time to load the page. Retail sites with three or more redirects should definitely fine-tune the page setup to reduce unnecessary page load latency. Whenever possible retailers should make sure they use the smallest number of URL redirections, as this is an important area for optimizing performance.”

This is a promising step forward, and it reflects what many of us probably felt in our guts: that the 2-4 second load times being reported for leading sites were just not believable. If you look at Keynote’s latest index results, for June 19, you can see that the fastest site, Dell.com, loads in a much more realistic 5.18 seconds. The slowest site is HSN.com, at an equally realistic 18.18 seconds.

What’s very important to note here: It’s easy to dismiss this jump as being solely due to the change in methodology. But if you isolate just the past two months on the graph, you can see that load time is still trending upward. Between April 17 and June 19, the index has increased by 1.63 seconds. In other words, in just two months the load time of the average mobile site in the index has ballooned by 20%. There’s more going on here than just a change in methodology.

But wait, there’s more: Mobile users are more demanding than ever.

In 2009, Equation Research announced that 58% of mobile users expect a site to load at least as quickly on their device as it does on their desktop.  Users’ expectations have grown hugely since then. In a report that came out in March of this year, Tealeaf stated that:

  • 47% of consumers who have conducted a mobile transaction in the past year expect the experience on their phones to be better than the experience in-store.
  • 80% expect the experience to be better than or equal to in-store.
  • 85% expect the experience to be better than or equal to online using a laptop or desktop computer.

In conclusion: Don’t panic. (Okay, maybe panic a little bit.)

I’m taking the glass-is-half-full approach to these findings. Now that we have more accurate numbers to work with, it’ll be that much easier to make site owners aware of the urgency of fixing their mobile performance issues.

Related posts:

Are your website’s performance goals audacious enough?

“We want you to be able to flick from one page to another as quickly as you can flick a page on a book. So we’re really aiming very, very high here… at something like 100 milliseconds.”

~Urs Hölzle, Senior VP Operations, Google

Urs said this at Velocity this past June (you can hear it at 3:45 of this video), and it’s resonated with me ever since.

I talk a lot about the business value of performance and why there’s no such thing as fast enough. But to my knowledge, Google is the only big company out there that has truly internalized this philosophy. In fact, I was down in Mountain View at the Googleplex a few weeks ago, and I heard on more than a few occasions the 100 ms goal spoken about in real terms — things like “This project will help us get closer to the goal.”

I’m not trying to imply that the folks at Google are the only people who care about performance. If you’re reading this blog, you clearly care. But the folks at Google are the only people I’ve met who have a clearly stated performance goal: all pages on their sites will load in 100 ms or less. In fact, they take it one step further and have the audacity to try and get all pages on the world wide web down to 100 ms.

This is a fascinating contrast to the rest of our industry, which tends to focus on benchmarks as indicators of success:

  • The average website in Keynote’s “Business Top 40″ takes 2.34 seconds to load.
  • The average web page loads in 4.9 seconds.
  • The average Fortune 500 website takes about 7 seconds.

So, do you consider your site successful if it loads in less than 7 seconds? Less than 4.9? 2.34? How do you decide where to take aim? Or do you take the attitude that you’ll just sort of chip away at load time when you have time, and content yourself with the knowledge that everyone else has the same attitude?

Benchmarks are useful tools. They give us a sense of our place in the world, and how we perform relative to others. They’re a good starting point for self-analysis. The problem with benchmarks is when they tempt us to focus solely on how we compare to others, who may be as flawed as we are. Google has wisely stepped outside the benchmark arena and has created a goal that has nothing to do with their competitors and everything to do with the actual people who use their products.

Google’s decision to aim at 100 ms makes sense from a human factors perspective. 100 ms gives us the illusion of instantaneous response. 100 ms makes a web experience feel real.

Is 100 ms possible? No, not right now. Will it be possible? Yes, most definitely, largely through the efforts of people who didn’t settle for benchmarks.

My challenge to you is to ignore benchmarks. Create an audacious goal for your site. Evangelize it in your organization. And take aim.

Related posts: