« October 2008 | Main | February 2009 »

November 2008

November 18, 2008

What is “typical” for web response time?

Very often I participate in discussions where web response times are discussed and I hear all kind of strange statements (called “crap”:)). While browsing the Web for the last 13 and so years, starting with slow (9.6Kbps) modem connection over analog telephone line and ending with quite satisfying (6Mbps) broadband one I can certainly say that I’ve build my own opinion. When I hear statement “typical page load time is 6 sec” I get really pissed off. I want to scream: “Are you nuts?!!!! 6 sec is ridicules time! Who is going to wait 6 seconds for your crappy page to load?”

I remember few years ago at SAP when we developed one of the first WebDynpro application and our prototype page loaded in… (hold on)… 20 mins. And I remember the time before SAP when colleagues of mine developed online PDF merger that presented the success page with link to the merged PDF after… (hold on again)… 20 mins (I don’t know what is so “typical” about the number 20 but they really responded after approximately 20 mins of time). Twenty minutes is totally unacceptable response time for any application (not only Web) and this examples triggered research I did years ago (SAP one is from 2003 and the PDF one from 2001) to understand what are the acceptable response times in Web space. After searching Google for the PDF scenario and reading the UX guidelines for the WebDynpro one, the number 3 stuck in my mind and I can’t get it out now.

3 seconds is the response time you should not exceed on the Web! That’s it!

Searching in Google today here is one of the top results you will receive The Psychology of Web Performance. I really like the following sentence from the post:

“Keep your page load times below tolerable attention thresholds, and users will experience less frustration (Ceaparu et al. 2004), lower blood pressure (Scheirer et al. 2002), deeper flow states (Novak, Hoffman, and Yung 2000), higher conversion rates (Akamai 2007), and lower bailout rates (Nielsen 2000).”

10 years ago when the modems ruled the world the goal was to create small pages that can be served fast via modem connection. Today we create huge pages that contains tons of images, videos, style sheets, JavaScripts, Flash and who knows what else. Some of these can exceed few hundred kilobytes. However users don’t care how big the pages are; they don’t care how many images there are on the page; they don’t care how many servers are in your web farm. Most of the users don’t understand the mechanics behind the page, and why should they? The only thing they care about is how fast your page is loaded via their 6Mbps broadband connection.

Here is my table for tolerable response times on the Web. It is based on the post above as well as on Response Times: The Three Important Limits.

Response Time Analysis
<0.1 sec I don’t think you can achieve this one on the Web (if you can, the the user’s browser will not be able to render it:)) but it is goal that you may want to pursue.
<1 sec Your page load time is great. You can continue to improve your performance but only if you don’t have better things to do.
<3 sec Your page load time is OK, however you need to keep an eye on it. You are on the border for broadband users. However if this is the load time over narrowband you should not be worrying too much.
<4 sec This is the limit for broadband users. I certainly think you have a problem if your users need 4 secs to load your pages and I will suggest you spend some time improving your performance.
<6 sec You are on the border for narrowband users. Performance should be one of the things you should be thinking already.
>6 sec You are amateur:) Your web site may still be visited but you will lose visitors (approx. half of them including myself). If you don’t care keep going.

Few more things that you need to think about when you exceed the 1 sec threshold. The first one is that you need to provide feedback showing the user you are still working on the request. Modern browsers do provide progress bar although it is not useful all the times because it spins like the hourglass in Windows without giving you any indication when the result will appear. If you go above the 6 seconds threshold you must think of ways to change the workflow or even the architecture (we managed to solve the 20 mins issues above only through major changes in the architecture).

Although performance is not the only key it is one of the keys for your web site’s success. If you target the thresholds in your performance testing you will surely be screwed because you don’t account for the unknowns and you will surely exceed the threshold. What happens next – the user moves on.

November 12, 2008

How do you respond to your customers' requests?

When I started blogging several weeks ago I remember reading a post from David Meerman Scott talking about the blogging mistakes and the worst about pages. I should have thought more before I selected Blogger as my blogging platform. David, you were right! Free service comes with its "qualities". Right after setting up my blog I submitted two post - my About post and my first post about Staples... Voila! Google decided that I am spammer and blocked my blog. You know - I got the standard message telling me that I need to submit my blog for review by a real person and everything is fine they will unblock it. I did that and verified that I am person.

My goal is not tell you that Blogger sucks but how companies interact with their customers. My request to Google went into black hole. Or at least this was my impression. My expectation was to receive e-mail (even automatic would help) confirming that my request is received and somebody will look at the issue in the next X hours... days... months. Nothing like that happened. I received no e-mail and had no idea whether my request was received, handled, denied or something else. On the next day I went back and submitted the request again... and again on the third day. Nothing. I just moved on. Blogger was not in my list of choices anymore. The feeling that my fate will be decided by the bits of a machine made me feel miserable. Will I be the lucky one who will be randomly chosen to live or will the Terminator erase any sign of my existence?

My next example is Sphinn. As part of the registration I was supposed to receive activation e-mail. For some reason I did not receive it on the e-mail I used for registration. I tried contacting Sphinn team through their Contact Us form using my registration e-mail as well as my Gmail. So far no response. However I really want to use the service and I registered with my Gmail account - surprisingly it worked.

My third example is from the offline world. I am looking for a new car and decided to check Audi Q7 from the local dealer Barrier. Everything was fine - the guy showed me the car, I did a test drive with him, we checked the inventories and so on. I had to leave and asked him to send me what is available as well as what APR they will give me. Two days after that he left me a voice mail asking me whether I need something more to make my decision. Dude, I told you what I need. Where is it? I called him back and left him also voice mail with the exactly same information. I got even a call from some girl in Barrier to ask me what was my experience and she promised to talk with the salesman and get back to me soon. I don't know what they understand with "soon" but it is almost 3 days and I still don't have what I need. And I like the car, and I want to buy it... and in this market where car manufacturer are facing bankruptcy I would expect that dealers will run after me to sell me the stupid car. Ooooh, I am just flying in the sky and thinking that "the customer is god". It seems nobody cares about the customer.

Time to stop complaining - here are my takeaways:

  • If you own a web site make sure you have good feedback channel for your visitors. If somebody sends you a message try to respond within acceptable amount of time - for me this is 24h, but it is your own choice; you may want to respond to such inquiries once a week or once a month but are you sure this person will wait so long to hear back from you. The worst thing you can do is to never reply.
  • Provide link to your feedback channel where you think people will be confused in your workflows. Perfect example for that are error pages (look at my post Staples found an easy way to lose money - AdSense) as well as product and check-out pages. Don't assume that people will go through your web site smoothly and without asking themselves "what the heck does this mean".
  • Don't hide your contact information. Lot of corporations burry their contact information so deep that users get tired of clicking and just give up. It is all for "support cost savings", "deflection" and other stupid reasons. I know it costs money to reply to every message but people get frustrated when they can't find a way to send you a message. And it is even bigger nightmare with the phone numbers. For example I needed to click 2 times to find phone number for Google, while Shpinn's one I couldn't find at all.
  • If you provide phone number (and better you do) make sure there is a option "Speak with customer support representative". In the spirit of "deflection" every company tries to hide the option for "customer representative". Normally this is the last option in the menu if at all mentioned; companies try to change the default 0 to 9 or 8 or #*723#2**# (try to remember that one:)). What happens after such tricks is that people learn and next time thy call they directly go and choose the "customer representative" option just because they are frustrated.
  • Provide alternative feedback channels or ways to contact your company. Email and phone are the standard ones but you can add chat, forum, social web site where you participate or something else. Be creative.
  • I want to iterate - respond promptly. Sending back automatic message when a user sends you request is mandatory. This is the first indication that your system works. In the message include your expected time to respond (or Service Level Agreement - SLA) and stick to it. In all three cases above my expectations were not met (apparently Google enabled my blog but month and a half after I submitted my request and not 20 days as they promised; I still don't know how long Barrier needs to get the list but 1 week I think is too long).
  • When you respond to your customers try to be personal. Don't use case numbers, "madam" or "sir" (I really like the e-mails from Mr. Mumbaga from Zair who offers me $2M and addresses his mails with "Dear Sir"). Use your customer's name - this will make him or her feel much better. I really enjoyed my stay in the hotel in Tokyo not because the hotel was nice but because people there made the effort to say my last name (now try that:)).
  • When you respond to customers give them your name. You can give them any other information that will be helpful for them to find you (unless you think you provided really crappy service:)). You will be surprised but somebody may want to call your manager to say "thank you" and not to complain about you.

Those are just few of the advises I can give you if you are committed to provide great customer support (online or offline). I will be honest and tell you that I broke some of them in certain occasions and I still feel bad about that - everybody makes mistakes but you should try to improve. Just ask yourself the question - what is more important for you? Spending 1h replying to your customer or losing your customer?

November 07, 2008

What is "SEO gap" and is it useful?

Maybe people who are deeper in SEO than myself have already heard about "SEO gap" and there may be people who think it is useful but...

First, I need to clarify what "SEO gap" is. You start with identifying the search leader and its market share for certain region. Good source for information is Comscore. For example let's take Google as the leading search provider in US and assume its market share is 75% (the number is close but may not be completely acurate). Then you look at your analytics data and you see that from all search engine referrals you have, those from Google are 82%. Here is the math:

SEO Gap = Referrals from Search Engine - Search Engine Market Share

For the example above:

SEO Gap = 82% - 75% = +7%

So far, so good! Now you know how to calculate a number and you even have a name for it. Now what? What does this number tell you?

My personal opinion is that calculating SEO Gap is result of "analysis paralysis" (term is trade marked by Robert Kiyosaki but I really like it:)). On the question "Why is this useful to know?" I never get satisfactory answer from our BI team, but I see this every month in our scorecard. The answer I most often get is:

  • Knowing the SEO gap you know how much the traffic you get from the search engine deviates from the market share for this search engine and this is your opportunity

Normally I don't get it (stupid me:)) and ask follow-up questions. It is logical to think that being in the negative numbers is not good for your web site and my first question is: "So, we would like to be in the positive numbers - right?" The answer to this one really messes up my mind. No, you don't want to be in the positive numbers because this means that you don't get enough traffic from the non-leading search engines and you eat from their traffic (read "you lose users who use other search engines"). As it comes out the ideal number is 0% (ZERO). Zero means you get exactly enough traffic from this search engine as you are supposed to get. Period. And what? What does this tell me? Why do I need to know this? What is the action I can take when I know that? "If you are not ZERO you know that you need to go and optimize either for this search engine or other engines", is one of the answers. Yes, but I don't know which one is the engine second by market share and how do I compare to it (because you don't have it on the scorecard). And even if I know, how does this help me?... I really got distracted (even in my post). I pay too much attention to a number and I don't look anymore at my business.

Here is why. Let's assume that I receive 10M referrals from search engines in that region and Google has 75% market share. Let's assume that my site is at ZERO SEO gap, which translates to 7.5M referrals from Google. Woohoo! I am good! Sure, I am if I don't look at my competitors. They may get 30M referrals from search engines and their SEO gap may be -35%. If you do the math this translates to 30M * (75% - 35%) = 30M * 40% = 12M. Am I good? Of course not! I suck! Because I spend time calculating number that needs 1/2h to explain and many more hours to translate to the scorecard while my competitors spend time to drive traffic and maybe improve their rankings, keep people on their sites, improve content to encourage linking and who knows what else. If I can summarize with two words: my competitor "drives business", while I "invent numbers".

What I learned is that if I am in the Web business I should not spend my time inventing numbers; I should spend my time (and my BI team's time) more wisely and measure the right things, not some hypothetical "what if" scenarios. I should be practical, not theoretical - my Web site is a business for me and not a science project.

By the way, how do you feel when somebody tells you: "Your goal is to be ZERO"? Really excited - aren't you?