Third-party content

Three web performance SLAs every site owner should consider

In recent podcast chats with Tim Morrow, Mark Jennings, and Geoffrey Smalling, the topic of performance service level agreements keeps coming up, and I think the topic merits a post. Here’s why.

With a good SLA, everyone wins.

Clients are protected from poor service, while also gaining a clear understanding of what to realistically expect from their supplier.

Suppliers are protected from unrealistic client demands, while also benefiting from having a consistent yardstick for meeting expectations, as well as an incentive for exceeding expectations.

Sounds great, right? So why haven’t more companies adopted this practice? A bunch of reasons, all of which are pretty understandable, such as: fear of accountability, inadequate tools for reliably measuring performance, lack of management buy-in, negative past experiences with poor/unrealistic SLAs. But if we truly care about delivering a top-tier online experience, we need to get over these obstacles.

There are three key areas that would benefit from having a solid service level agreement in place:

1. Customer-facing performance SLA

I’m not the first person to champion this idea. People like Jonathein Klein and Stephen Thair have been making eloquent calls for this kind of public performance contract over the last couple of years. To be frank, I don’t think most customers would ever read it (though if asked, the average person would probably tell you they think it’s a good idea because speed matters to them).

But I think the real value of this kind of performance SLA is internal: making a public declaration is a potentially great motivator for making your team accountable for delivering on your promise.

Back in 2011, Jonathan shared an example of what I still think is the best performance SLA I’ve come across:

“The homepage of our site will load in under 3 seconds measured at the 80th percentile via synthetic tests running in New York, LA, Seattle, and Miami every 30 minutes. We will measure this SLA at 8:00AM every morning and base it off the last 24 hours of data.”

This is a perfect yardstick — it’s short, snappy, and quantifiable. Whether you’re a developer or an executive, this is something you can get behind. If you’re looking for a template for your own SLA, this is a great place to start.

2. Third-party provider SLA

Third-party scripts are one of the most common points of failure for sites. At best, unoptimized scripts can slow down your load time, sometimes by many precious seconds. At worst, third-party outages can stall page load completely.

The average top ecommerce site contains 7 third-party scripts, with some sites containing up to 25 scripts. Yet despite this proliferation, most third-party providers don’t offer real-time monitoring of their scripts, nor do they offer meaningful service level agreements (SLAs). In my experience, the only way most people discover third-party SPOFs is by accident, when they visit their own sites.

Sure, you can defer many of your scripts so that they load last, but this isn’t always an option — for instance, when it comes to your third-party ads.

I dream of a world where all third-party providers offer clear performance service level agreements to site owners. In my ideal world, these SLAs would:

  • Express their annual uptime guarantee as a percentage (ideally, as close to 100% as possible).
  • Describe the process for reimbursing site owners (if site owners are paying for the service provided by the script) if uptime drops below the SLA guarantee.

Tag management companies have been jumping into the fray, with several vendors stating a clear focus on performance. This is a great start. My hope is that, as site owners become more educated about the importance of page speed, they’re going to start demanding properly optimized scripts, as well as better monitoring, reporting, and accountability.

For more detailed tips on how to create a meaningful third-party SLA, check out this great post over at Catchpoint.

3. Cloud provider SLA

The cloud offers huge benefits, but it also introduces a huge new area of vulnerability. It’s understandable that we’re tempted to demand control over the performance of our cloud-based applications, because this (or at least the illusion of it) is what we had before the cloud.

This demand is ultimately unrealistic. However, it is realistic to expect that, in exchange for losing some of the infrastructural control you used to have before you deployed your apps to the cloud, you should be able to ask your provider for more visibility and assurances in how their infrastructure will perform for you.

Here’s what it’s fair to ask from your cloud provider:

  • Analytics tools – You should continue to use the performance monitoring tools you already use to monitor your app performance with (WebPagetest, Keynote, Gomez, etc.), but you also need a new visibility toolset (that your cloud provider should help you with) so you can do root cause analysis over parts of the infrastructure that you don’t have control over or visibility into.
  • Detailed performance clauses in your service level agreements – Some cloud SLAs contain a performance clause that addresses availability, but speed is every bit as important as — and possibly more important than — uptime. This clause needs to spell out how your concerns about site speed will be addressed, should they occur.

I’m very curious to learn about other people’s successes and failures with performance SLAs. Have you come across an SLA that rocked your world? Is there another type of performance-related SLA I haven’t considered? Feel free to share in the comments, or email me directly at joshua [[at]] webperformancetoday [[dot]] com.

Related posts:

Tim Morrow (Betfair): Why third-party content keeps him up at night [PODCAST]

Tim Morrow has rocked the performance community on at least three distinct occasions.

The first time was at Velocity 2009, when he shared a case study from Shopzilla, where he was senior architect, which presented findings that became a cornerstone of how I and many others talked about the business value of performance. They cut above-the-fold load times down to less than 2 seconds, and as a result saw revenue gains of 5-12%.

From where I sit, it’s pretty hard to top findings like this, but Tim managed to do it when he came back to Velocity a year later and offered an awesomely candid case study showing how Shopzilla took its eye off the ball, performance-wise. As developers were occupied with other projects, load times slowly deteriorated until pages were once again taking 5 or more seconds to load. Customers were quick to notice and complain, which spurred a renewed internal effort to make pages faster.

More recently, as head of sports delivery at Betfair, Tim brings his commitment to customer satisfaction to the creation of another industry first, which he helped launch in the summer of 2011: a customer-facing charter that addresses the issue of page speed and makes a clear pledge to users:

After reliability, we believe that speed is a key feature of our products. We also acknowledge that we have a long way to go but we are working on it. In simple terms we commit to ensure our site becomes faster. To be more specific, we aim for 99.9% of bets placed in less than a second and our aspirational website Service Level Agreement is as follows. Under peak loads, with performance measured at the 95th percentile, for typical user bandwidths and a 0% error rate, our users shall experience Visual Progress (header loaded) in less than 1 second, Time to Interact with useful content within 1.5 seconds and full page loads within 3 seconds.

Like so many of the people I meet in our community, Tim Morrow is a practical idealist when it comes to performance. He has an inspiring combination of aspirational, visionary thinking, and the savvy to back up thought with action. It was my great privilege to speak with him about topics ranging from third-party content to performance testing. I hope you enjoy listening.

Listen to the podcast: Tim Morrow

Related posts:

Web Performance 101: An opinionated guide to the 22 links every developer should read

If you’re just starting out on your web performance journey, it’s easy to feel overwhelmed by how much there is to learn about something as “simple” as making pages faster.

When I started this blog three years ago, if you wanted to learn about optimizing performance, the pickings were on the slim side — though generally you could count on any resources you found to be pretty solid. These days, things are different. There’s a massive number of blog posts, videos, and slide decks — but the problem is that there’s a lot of redundant (or to be frank, not super great) information out there.

In this post, I’m going to separate the wheat from the chaff and offer my opinionated guide to the links you should check out if you’re a dev who’s new to the performance scene.

The Manifesto

The Vanilla Web Diet

Despite years of development and performance advocacy, the internet has a serious obesity problem that’s hurting application and page speed. This is a great piece from Smashing Magazine that discusses the reasons behind this trend and finishes with a bold declaration.

The Essentials

If I were teaching a course about performance, these would be required reading/viewing on week one.

Steve Souders’s 14 Rules for Faster-Loading Web Sites

Like Mecca, all web performance roads lead back to Steve Souders’s original performance rules. If you do your job right, one day you’ll have these committed to memory.

Faster Websites: Crash course on web performance

As I mentioned in last week’s podcast, what Google developer advocate Ilya Grigorik doesn’t know about performance isn’t worth knowing. In this three-hour video, he gives an awesome overview of the subject.

The Basics

Make sure you’re taking care of the easy stuff before you dive into the hard stuff. How to pluck the low-hanging fruit from the performance tree.

Waterfalls 101: How to read a waterfall chart

First, you can’t be in this business unless you know how to read a waterfall chart. Our VP Product, Hooman Beheshti, breaks it down really well in this recorded webinar. (If you want the written version instead, there’s a post here.)

Let’s Do Simple Stuff to Make Our Websites Faster

Four easy things you can do to make your website faster.

Slow website? Five ways to speed it up

Five more ways to speed up your pages.

Mobile

If you want to still have a job in performance in five years, I suggest you bone up on mobile.

15 things you can (and should) do to make your site faster for mobile users

Mobile devices and browsers pose some unique performance challenges. There are a number of fundamental and advanced tactics that you can use to take on these challenges and win.

Mobile HTML5

Maximiliano Firtman created this awesome table that illustrates HTML5 compatibility across major mobile and tablet browsers.

Responsive Web Design

Technically, RWD belongs with mobile, but it’s such a hot-button topic these days that I wanted to give it its own section.

Creating a Mobile-First Responsive Web Design

Really, you should just read pretty much everything Brad Frost writes about RWD. This is a good place to start.

Responsive Responsive Design

You may have heard that responsive design means poor performance. Tim Kadlec discusses why this doesn’t need to be true.

Images

Images are one of the single greatest performance problems, but they’re not sexy so they don’t get the attention they deserve. I’m working on a separate post about this, but in the meantime, check out these links.

Optimizing Web Graphics

Good introduction to image optimization from the folks at the Google Dev Blog.

Progressive jpegs: A new best practice

Photos are the main culprit when it comes to slow rendering. Eye-opening stuff about the adoption of progressive jpegs and how well progressive jpegs load across different browsers.

Third-Party Scripts

Third-party scripts are a huge potential point of failure. You need to know how to mitigate this.

Has your site’s third-party content gone rogue? Here’s how to regain control.

This post will help you understand the third-party problem and how to get a handle on it.

Social button BFFs

Good tutorial from Stoyan Stefanov explaining how to make your social buttons load asynchronously.

Complete asynchronous ad loading using DFP and LABjs

You can’t optimize the ads that appear on your site, but you can at least ensure they’re not blocking the rest of the page. Sajal Kayan explains how to use DFP’s iframe tagging, combined with LABjs and little bit of JavaScript hackery, to make any ad load asynchronously with negligible impact on rest of the pageload.

Security

Security is an increasingly urgent issue. You need to know what impact it has on performance.

Speed vs. security: Four ways that security solutions can cause performance problems (and what you can do about it)

Security solutions can be performance bottlenecks, but this doesn’t get talked about very much so I wrote this post about it.

5 easy tips to accelerate SSL

Some folks believe that we just have to suck up the fact that SSL is slow. Not true. Here are some relatively simple workarounds.

SSL Performance Case Study

SSL (Secure Sockets Layer) optimization is extremely complicated, but as William Chan argues, “There’s low-hanging fruit everywhere” for site owners willing to try. In this article, William takes us through an in-depth case study of SSL optimization.

Fonts

Web Font Performance: Weighing @font-face Options and Alternatives

Great collection of tips for making sure your web fonts aren’t slowing down your pages.

Tools

WebPerfDays: Performance Tools

At WebPerfDays London, Steve Souders asked attendees to name their favourite web performance tool. This is a great roundup of tools that smart folks are using.

Improving site performance with YSlow

YSlow is one of the most commonly used tools for helping you analyze the performance of a website based on performance best practices. It’s available as a plugin for all major browsers except Internet Explorer, and it offers usable insight into real-world performance. This tutorial is a great introduction for anyone using YSlow for the first time, or for those who want to learn to use it better.

Configuring an ‘all-in-one’ WebPageTest Private Instance

Using WebPagetest to test a private instance –- i.e. an application that isn’t publicly accessible -– is reasonably straightforward save for a few small differences. Andy Davies walks us through the process.

The Back End

Speeding Up Your Website’s Database

We tend to focus on the front end (and for good reason), but sometimes it’s the back end that’s at least partially to blame. This is a good how-to piece from Smashing Magazine that explains how a database can slow down your site, and how to speed it back up again.

Read more

This is skimming just some of the cream off the top. I’m sure I’ve missed a few links, so feel free to suggest them in the comments and I’ll update this list. If you want to really dig deep, we have a massive Web Performance Hub on the Strangeloop site where we post every great link we find, and I definitely encourage you to check it out.

Related posts:

Top 10 Web Performance Today posts of 2012

As I wrap things up for the holidays, I thought it would be fun to see which posts over the past year have most sparked people’s interest. I wasn’t too surprised to see that some of the most popular pieces were about sexy topics like page growth, business metrics, rogue third-party content, and the psychology of web performance. But it was really cool to see that people were reading and passing along “Performance 101″ type pieces about latency and terminology. I take this as a great indicator that there are a lot of people out there on a mission to preach the gospel of performance.

I’ll be mostly offline for the next couple of weeks to enjoy the holidays and the imminent arrival of baby #3. I hope you’re able to do the same — new baby is optional. :)

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

2. 4 awesome slides showing how page speed correlates to business metrics at Walmart.com

3. A non-geeky guide to understanding performance measurement terms

4. Latency 101: What is latency and why is it such a big deal?

5. Browser innovation and the 14 rules for faster loading websites: Revisiting Steve’s work (part 1)

6. This is your brain on a slow website [INFOGRAPHIC]

7. Interesting new findings about page views, time on site, and bounce rate across desktop and mobile browsers

8. Our need for web speed: It’s about neuroscience, not entitlement

9. Latency reality check: Early findings show that desktop latency ranges from 65-145ms

10. Has your site’s third-party content gone rogue? Here’s how to regain control.

WebPerfDays follow-up: 36 questions about web performance tools, measurement, and best practices

Today’s post is kind of like those blog posts where people answer random questions about themselves. Just a bit geekier. :)

When I was at WebPerfDays last week, I was walking past the ubiquitous board of post-it notes and started thinking about the fact that at every conference, so many of those questions and ideas go undiscussed. So I decided to snap each one and have made my best attempt at answering every question.

Before you read these, a big caveat: With many of these questions, the answer really depends on the situation. I’ve noted this where it’s particularly relevant, and given general answers everywhere else.

1. Why are Google Analytics so slow? Watch page loads – it’s always waiting on Google.

If you use the right script it should not affect your users.

2. How much impact can be made by optimising CSS selectors and does this have a trade off with maintainability?

Very little for most pages.

3. Do mobile networks do their own TCP optimization to devices?

Yes.

4. Can performance + webfonts coexist?

Yes.

5. Experiences with Android web driver?

None.

6. Will HTML5 make things worse?

Yes.

7. How build and deployment shapes our software architecture at thetrainline.com?

Don’t understand this question. Anyone?

8. GeoDNS versus Anycast Servers

GeoDNS.

9. Can we make significant improvements in website performance without further improvement in browsers or protocols?

Yes.

10. ASP.Net server side instrumentation, analysis, and interpretation

Ask Richard Campbell.

11. Pros and cons for loading 3rd party JavaScript in head/footer best practices

Footer, if possible.

12. Should I use Google or Microsoft CDN for my JQuery, JQuery UI, etc. references or host them myself?

Either. Shouldn’t matter much.

13. Offline and embedded web COAP

Nice and lightweight — functional enough?

14. Large companies and embedded web

Complicated.

15. Have there been any studies of how good Time To First Byte is as an approximation for true server time? e.g. DNS, connection time

Yes: here and here.

16. API performance

Important.

17. GEO – Distributed

Can be complicated. Do you really need it?

18. Responsive image format

There’s a group working on a standard.

19. Using web analytics to identify (and fix) web performance issues

I love it. See here, here, and here.

20. Metric-driven development

Does any other type warrant discussion?

21. No SQL Scale and Speed and survey of options

Not my area of expertise.

22. CDN vs. web proxy in some datacenters

Can someone clarify this question?

23. What is the best way to get customers interested in web performance when their website or web apps don’t sell stuff?

Find a metric they care about (e.g. productivity, retention, bandwidth), and I bet it connects back to speed.

24. Tonnes of great stuff at Velocity – what do you start with?

Measure your performance on WebPagetest. Iterate and measure again.

25. How many users is enough? When and what to deploy web KPI – new tech release schedules and users based?

More more more.

26. MVC JavaScript (backbone)

It works.

27. How many data centres?

Do you need the complexity of two, or is it for your ego?

28. Continuous delivery versus bureaucracy

Easy to say, hard to do. Do A/B development: put together a team of both and see who enchants the business.

29. Do the radios in 3G dongles behave the same as phones (from sleep to work)?

I would assume yes.

30. Fave perf. tools and what is missing?

See Steve Souders’s post for tools. Missing: Resource timings.

31. Discussion on what is the best timer to measure onload, first interaction, anything else? Multipage times

All of it. Correlate to biz metrics.

32. What are the best RUM tools?

Boomerang is a good place to start.

33. Has anyone used lo-fi RUM (stopwatch timing etc.) to validate their collected metrics/KPIs?

Yes. I should write a post about it.

34. Best way of building performance testing into CI build?

Script WebPagetest or HTTPwatch or Web Page Speed.

35. Continuous performance analysis tools

Take a look at WPT Monitor.

36. Should we expect FEO as standard feature of our CMSes?

Yes. Basic features by 2014. CMSes are usually two years behind.

For the sake of expediency, most of these answers are really short. If you want elaboration on anything, let me know in the comments.

Related posts: