Measure Page Load Time with Site Speed Analytics Report

Wednesday, May 04, 2011 | 12:12 PM

Labels:

This is part of our series of posts highlighting the new Google Analytics. The new version of Google Analytics is currently available in beta to all Analytics users. And follow Google Analytics on Twitter for the latest updates. This week we’re sharing a new feature, the Site Speed report.

At Google, we are passionate about speed and making the web faster, and we are glad to see that many website owners share the same idea. A faster web is better for both users and businesses. A slow loading landing page not only impacts your conversion rate, but can also impact AdWords Landing Page Quality and ranking in Google search.

To improve the performance of your pages, you first need to measure and diagnose the speed of a page, which can be a difficult task. Furthermore, even with page speed measurements, it’s critical to look at page speed in context of other web analytics data.

Therefore, we are thrilled to announce the availability of the Site Speed report in the new Google Analytics platform. With the Site Speed report you can measure the page load time across your site.

Uses for the Site Speed Report
  • Content: Which landing pages are slowest?
  • Traffic sources: Which campaigns correspond to faster page loads overall?
  • Visitor: How does page load time vary across geographies?
  • Technology: Does your site load faster or slower for different browsers?
One effective use of the Site Speed report is to measure speed for your most critical pages. For example, you might learn that the target audience of your site is located in a geographic region that experiences slower page speed. Or, you might learn that certain pages on your site run slower in some browsers. In addition to the Site Speed report, we’ve created a custom report that you can use to help answer these questions: view the Site Speed custom report.


Setting up the Site Speed Report
By default, page speed measurement is turned off, so you’ll only see 0’s in the Site Speed report until you’ve enabled it. To start measuring site speed, you need to make a small change to your Analytics tracking code. We have detailed instructions in the Site Speed article in the Analytics Help Center. Once you’ve updated your tracking code, a small sample of pageviews will be used to calculate the page load time.

We’re excited to bring this important metric into Google Analytics as part of the new Google Analytics platform. Please continue to send us feedback on Site Speed and the rest of the new Google Analytics.

By Zhiheng Wang, Phil Mui on behalf of the Google Analytics team and the Make the Web Faster team.

68 comments:

Chris Pollock said...

Ironically the feedback link in the new analytics is broken. Can you alert someone.

r42 said...

I was wondering how this feature actually works. Do you measure from the click on one page until the target page is fully loaded? Does this include all attachments/images on a page or only the HTML?

How do you do that? How can you measure across two pages on a stateless protocol?

Thanks
ralph

Trevor Claiborne said...

@Chris - Yep, we fixed the bug, but it just missed this release. In the meantime, you can use the link in the blog post to send us feedback.

zhihengw said...

Short answers to Ralph's questions. The page load measurement in the Site Speed report starts from the user click and includes loading of the elements on a page. It uses W3C's NavigationTiming spec.

Andy said...

I don't see the site speed report under Content. Is this still in the process of rolling out to all users?

Arthur said...

Hello,

I suppose you guys did things well, but I wondered: with this new GIF request, is there a risk that our Bounce Rate might be impacted (i.e. decrease a bit)?

I was a little disappointed to find no information about this at all, since there was a clear "warning" when events were released a while back...

Also, can you confirm whether this new GIF request is part of the 500 combined GATC requests per session?

Thanks a lot for your feedback and congrats for this great new addition.

Juls Barnes said...

@Andy - is showing in mine, are you in new GA beta version?

William Lang said...

What about any new site set up with Analytics after this? Does the stock code come with this change already built in?

zhihengw said...

@Arthur - The additional gif hit won't affect the bounce rate. And it's part of the GATC request limit.

@William - Current version of the ga.js already has this feature built in. You just need to enable it in your snippet.

Shermozle said...

Chrome 6 and IE9 only, right? So not all that useful for a while yet.

Mathias, AlertFox.com said...

You mention that his feature uses W3C's NavigationTiming spec - so does this require "modern" browsers? If so, which ones? ;-)

Jeff L. said...

All avg page load times are 0.00 for our site. Are there changes we need to make to our GA code to get the times to show up?

dede59 said...

What shal I do to update my tracking code in analytics, I'm terribly zero, I'm confused . . . Please help

dede59 said...

What shal I do to update my tracking code in analytics, I'm terribly zero, I'm confused . . . Please help

dede59 said...

What is word press? Please help

Folkert said...

Can we get this Information using the Api?

Phil Mui said...

@Jeff / dede56: please read the GA help center article for tracking code changes needed.

@Folkert: we will update when we have this capability via the api.

Nick Hu said...

This is good for user experience.

holimac said...

Is the Intelligence Alert function available with Site Speed? I couldn't find an option to add it to my list of alerts.

Aaron said...

Hi guys,

Job well done, great.
Please answer these questions:

1) Does it only work in browser that support the NavigationTiming?
In other words: does GA *not* capture load time data for 'older' browsers like IE8 and Firefox 3.6, or do you have a fallback mechanism for that (a la Boomerang, with a session cookie)?

2) Do you plan on increasing the sample rate, so more pageviews are used?

3) In the Site Speed report, the column Avg. Page Load Time (sec) is confusing. I see values of 170.76 and 68.29. These really can't be seconds. Are the values in milliseconds?

Txs,
Aaron

dv said...

This is a really great feature - would it be possible to get more details on how this works technically? I´ve tried to generate the gif myself but after 15 minutes refreshing a test page I gave up....

- When you land on a page, at what point does it start tracking the time? From the execution of trackPageLoadTime? The gif is sent once all elements are loaded?

- What is the sample rate?

- What does the gif request look like?

Thanks!
colinf

Vaidas said...

I can't find what exactly the "Page Load Sample" is and what does it mean.

Thanks

Tim Leighton-Boyce said...

Just to be sure:

Is it essential that the extra code goes after the _trackPageview please?

I'm trying to use it with the Yoast Google Ananlytics for Wordpress plugin which only allows custom code to be inserted before the _trackPageview

So far it looks to me as if it doesn't work with the extra code in the wrong place.

Alexandre Siquara said...

"3) In the Site Speed report, the column Avg. Page Load Time (sec) is confusing. I see values of 170.76 and 68.29. These really can't be seconds. Are the values in milliseconds?" by colinf

i have same question...

Andy said...

@Juls Barnes - thanks for the Beta tip. Didn't notice the "new version" link at the top. :-)

Admin said...

Hi guys,

How many pages views are needed to display Page Load Time ?

I added the Tracking Code on a blogger weblog, juste before the end of le head section and nothing appears in GA ...

Patrick Meenan said...

Since Zhiheng answered my question offline I'll post the info here for everyone's benefit.

It will use the NavigationTiming but will also fall back to support provided by the Google Toolbar if it is present on older browsers.

You still won't get 100% coverage but you WILL get consistent measurements (though on a subset of older browsers).

cfrye said...

This comment has been removed by the author.

cfrye said...

When will Page Load Time be an option in defining Custom Segments? I see it's already an option in defining Custom Reports.

Adding it to Custom Segments would be very useful to relate outcomes (ecomm $$/conversion rates) to visitors who experienced long page load times so we can optimize hosting/content/code to have the most impact.

zhihengw said...

Hey, guys - thank you for your interest in this feature and we very much appreciate your feedback so we can improve.

Here are some technical details underneath the Site Speed report.

1) The page load time measurement starts at the beginning of the navigation, e.g., a user click, and ends at the document's load event.
2) Page load time is measured using the NavigationTiming interface, if available. In older browsers, it seeks help from other interfaces from Chrome or the Google IE toolbar.
3) The page load sample is based on visit. The sampling rate is fixed at 10% for now. And please do keep in mind that speed is only measured when appropriate browser supports are found.
4) Page load time is not yet available in advanced segment. We will update when things change.

Hope these clarify a few things.

cheers,
zhiheng

zhihengw said...

@Tim - You don't have to insert _trackPageLoadTime after _trackPageview. But you do want it after _setAccount, o/w report will fail in some cases.

cheers,
zhiheng

Scratch said...

@Tim Leighton-Boyce,

You may still be having problems because the Yoast plugin adds slashes to the custom code field on storing it (before the quotes), but doesn't strip the slashes when adding to the GA code. This *may* break the code.

I think it's a bug in the plugin and have filed a bug report, but in the meantime, I have instructions on how to hack the plugin to strip the slashes on my How To Set Up Site Speed For Google Analytics In WordPress post.

Anyway, probably the best thing to do is just wait until Joost adds support for this as a plugin feature.

Mariusz said...

Been trying to implement this to my customized code (http://jsfiddle.net/bonoseo/HEDSX/1/) - ga_debug shows no errors.

Though there are no results in Analytics reports. Any advice?

Aaron said...

Hi Zhiheng,

Can you please tell us more about "it seeks help from other interfaces from Chrome" ?
Thank you.

- Aaron

skandal said...

This is so good article. Thanks!!
skandal

Rob said...

How long will it take before data coming in Analytics account about Site Speed after submitting new method in tracking code? I added method over 48hrs ago and still do not see data while other data is renewed.

Rod Ferris said...

I'm assuming you're only testing your sample size on T1 connections that wouldn't really notice the direct effect of the extra latency? That way you could extrapolate the other connection types without hurting our bounce rates..

NotJustPage-3 said...

This comment has been removed by the author.

zamre said...

Good Article.
Zamre Bin Ab. Wahab

GuyIncognito said...

What is the name and format of the variable in the __utm.gif request?

The list of analytics variables in the documentation doesn't currently include anything about page speed.

Nick said...

I've added the code, _gaq.push(['_trackPageLoadTime']);

right under _gaq.push(['_trackPageview']);

but in Reports > Content > Site Speed > Average page load time column...it's still all zeros.

Any help would be great.

HackTik said...

Thanx, finally we have this feature within Analytics. It was a must and till not we had no choice but to be dependent on third party tools for checking page load and other related metrics.

HackTik - Your Daily Technology Doze

ga said...

Really cool new feature:) I have implemented it and it seems to work. I have a few questions though:

1 - Does the position of _trackPageLoadTime (before or after the trackPageview) matter as it seems I get data either way I put it

2 - It seems that the report with page load time per page reports data using real URLs rather than virtal page name which are setup via the trackPageview. However this doesn't occur for Landing pages though for which data are properly associated with virtual page names and not real URLs. Is there a solution (using ['_trackPageLoadTime','virtual_page_name'] for example?)

tomkisss said...

Site Speed is broken for pages with the virtual page names. Similar to the above, @ga, I'm not getting any data for my pages that have virtual names set (even though they have many times more traffic than pages without virtual names that are actually being tracked), however, different from the above I'm not getting this data through the normal name (URL) of the pages that have the virtual one either. I.e. if I have a virtual page name set I will not be seeing the site speed...
This is a huge issue as, due to the 50k unique URL a day limit in GA, we are using the virtual names a lot and intend to use them for almost all of our pages.
Is this a known bug and is going to fixed? Would you happen to know when?
Much Appreciated,
Tomas Vaitulevicius
Rightmove

zhihengw said...

Thanks for the feedback, folks. We are looking into the virtual page name problem and will keep you post.

Kris said...

Hey guys.

I have a wordpress blog on a hostgator account. It is an extremely light-weight theme, with no images. No gravatar pics, not many social bookmarking plugins.

The page is just loading really slow according to google analytics, never under 2 seconds and the average time is 3-7 seconds.

However, it is loading under 1 second for me and the hostgator tech support guy I talked with, and according to tools.pingdom.com and various other benchmarking programs it is loading under 1 second and sometimes as little as 0.3 seconds.

How can I fix the Analytics speed report, it just can not be right?

The website is kriskris.com

The speed of my website, and my visitors user experience is very important to me, I'd really like to fix this.

zhihengw said...

My previous post got lost so here it come again...

@ga and @tomkiss, thanks for the feedback! In short, _trackPageLoadTime() uses event tracking, which doesn't support virtual page name, yet.

Missing data with normal URL is fishy though. There is sampling but you should see some data once you have accumulated some pageviews. If you are still experiencing the problem, could you please file a report through the feedback form so we can better follow up?

cheers,
zhiheng

Kunal Cholera said...

This comment has been removed by the author.

Kunal Cholera said...

Great work team !
I wanted to leverage this in my company so I tried to experiment on it in my free time. I ran into issues :

I made the changes to the tracking code to also track the page load time. I dont see the site speed section in the reports tho. Screen shot of my google analytics reports page http://kunalcholera.com/pics/ga.png , can you please point out what I am missing ?

Thanks.

tomkisss said...

This comment has been removed by the author.

ga said...

@zhihengw thank you very much for your reply regarding site speed <> virtual pagenames.

What I don't understand though, is why in this case the site speed data is associated with landing pages virtual pagenames (looking at the custom report you submitted), while this is real URLs which are associated with site speed load samples looking at the "page" report. Does it mean the site speed data for landing pages using virtual page names is incorrect?

In our case, as we extensively use AJAX on our sites, it is key that the site speed can be applied to virtual pagenames.

Many thanks again for your great work adding this feature and with the new interface!

tomkisss said...

@zhihengw - on top of the issues that AJAX sites will have, as per @ga, sites that have above 50,000 URLs accessed daily (due to having many real pages or due to having dynamic pages with highly dynamic URLs) and are using virtual page names will not be able to see the data even under the "real URLs" as most of that data will be dropped into "(other)" Page section.
We are in exactly this situation, where we simply cannot take out virtual page names as the "Top Content" data would become meaningless due to millions of Unique URLs that we have loaded each day (whilst GA only accepts 50k), and we, obviously, can't use the Site Speed data without the virtual page name attribution.
I'll fill out the Feedback form (for some reason in Italian... thank god Google Translate).. hope it helps in getting this fixed.

Much appreciated,
Tomas Vaitulevicius
Rightmove.co.uk

lirong said...

Hi, can I pass in PageURL for _trackPageLoadTime?

just like _trackPageview(opt_pageURL).

Thanks.

dede59 said...

Oh! Kris, we have the same experience, I understand you've got a long way already, where me is so less experience yet specially in blogging . . .

Hiren said...

Thanks google, was waiting for this only.

tomkisss said...

Hi. It's been a while since the last update on the use of the Site Speed function together with the Virtual Page Names. Does this mean that Google will not be fixing this and any website using Virtual Page Names will, in essence, not be able to rely on accurate Site Speed data?
Much appreciated,
Tomas Vaitulevicius
Rightmove.co.uk

icerabbit said...

It is now June 3rd. Is somebody from google looking to fix this? Been zeros for weeks.

zergworld said...

While ga.js can be async loaded by appending the script, the tracking gif blocks the onload event. Will google analytics code still work properly if ga.js is lazy loaded, and if not, is there an option to not send the tracking pixel after onload?

Diego said...

why do i see just data from windows and ie and chrome? i cant see data for firefox :/

RoSoftDownload said...

Hello
I have some very big load times, the highest value is 405.95 sec, and many pages are around 50 sec. I think this cannot be right, as I tested my pages on webpagetest.org, page speed and yslow and I get some very good scores (around 90/100 and load time 2.5-3.5 sec max.). Is there anything that might not be added correctly in my code? Or the reports are not accurate. Because it looks very very strange
Cheers

Michael Zedeler said...

Great new feature, but please prioritize to include site speed as a metric that can be used in segments and for comparison in other reports.

Do you have any sort of ETA on the above?

Bac Pham said...

Thanks for a great new feature. Keep up the good work

Blogger said...

I'm noticing that all my site's pages that report high load times are sampled from Chrome.
Why is that?

Internet Explorer shows a page load sample average of much lower times.

I tested my site using Chrome, and it loads very fast, but in analytics there are some samples of 40 seconds! ALL from Chrome.

A Common Man said...

Hi ,

I have a comparatively new site and hence do not receive visitors presently.

I added the _trackPageLoadTime code a couple of days back but the Site Speed report is still showing 0's.

Is there any specific number of users or visits after which the data is captured ? Or any other constraints with respect to numbers ?

Thanks
Kg

satishk said...

RE: virtual page names issue, we are aware of this and working on a fix.

RE: browser support, Site speed data is reported only for browsers supporting NavigationTiming interface. Please read help center article below for more information.

RE: Large values, If there are some large page load times, the average might be skewed. You can analyze the distribution of page load time using performance tab. Please look at http://analytics.blogspot.com/2011/09/site-speed-gets-upgrade-hello.html

@A Common Man, Site speed data is reported for sampled visitors. Please read help center article below for more information.

Help center
http://www.google.com/support/analyticshelp/bin/answer.py?hl=en&answer=1205784&topic=1120718&utm_source=gablog&utm_medium=blog&utm_campaign=newga-blog&utm_content=sitespeed

Jlabaw said...

First off Gents, my hats off I think this will do a tremendous job of selling the importance of page load time as it relates to usability. I agree with @cfrye, it would be nice to have the page load "buckets" in the custom reports to see how the page load time effects conversion rates etc.

1 specific question - I tried using the site speed custom report however the average page load time is .62... when I view the page load time report it is 4.62... I'm confused... can you help clarify? Much thanks!

satishk said...

@Jlabaw, Thanks for your feedback.

RE: different in custom report vs site speed report.

That shouldn't happen. I tried this for a report just now and it shows the same values. Are you hitting any sampling of visits? This can happen when you query over long date ranges.

TAPAS CHANDRA BARMAN'S BLOG said...

Thanks for share a useful post.