Thursday, June 04, 2009

Introducing Page Speed

At Google, we focus constantly on speed; we believe that making our websites load and display faster improves the user's experience and helps them become more productive. Today, we want to share with the web community some of the best practices we've used and developed over the years, by open-sourcing Page Speed.

Page Speed is a tool we've been using internally to improve the performance of our web pages -- it's a Firefox Add-on integrated with Firebug. When you run Page Speed, you get immediate suggestions on how you can change your web pages to improve their speed. For example, Page Speed automatically optimizes images for you, giving you a compressed image that you can use immediately on your web site. It also identifies issues such as JavaScript and CSS loaded by your page that wasn't actually used to display the page, which can help reduce time your users spend waiting for the page to download and display.

Page Speed's suggestions are based on a set of commonly accepted best practices that we and other websites implement. To help you understand the suggestions and rules, we have created detailed documentation to describe the rationale behind each of the rules. We look forward to your feedback on the Webmaster Help Forum.

We hope you give Page Speed a try.

40 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. Awesome! An alternative to YSlow, with different points of view, different rules and a very cool — and useful! — new feature: the activity recorder.

    This comes just in time to be included in my bachelor thesis on Drupal's page loading performance.

    I'm wondering if Steve Souders — the original author of Yahoo's YSlow — was involved in this as well? I'm asking since he's now working for Google.

    ReplyDelete
  3. Awesome, can't wait to use it.

    ReplyDelete
  4. Why not simply enhance YSlow? Is it because there's a difference between Yahoo's recommended practices and Google's?

    ReplyDelete
  5. Well, Bryan McQuade's name is all over the source files, so he's probably the main developer behind the project.

    ReplyDelete
  6. First of all thanks for giving us PageSpeed. Second thanks for hosting 3rd party libraries.

    Is there any thing Google can do to minify and combine libraries like script.aculo.us?

    PageSpeed output:

    Combine external JavaScript
    There are 9 JavaScript files served from ajax.googleapis.com. They should be combined into as few files as possible.

    * /ajax/libs/prototype/1.6.0.3/prototype.js
    * /ajax/libs/scriptaculous/1.8.1/scriptaculous.js
    * /ajax/libs/scriptaculous/1.8.1/builder.js
    * /ajax/libs/scriptaculous/1.8.1/effects.js
    * /ajax/libs/scriptaculous/1.8.1/dragdrop.js
    * /ajax/libs/scriptaculous/1.8.1/controls.js
    * /ajax/libs/scriptaculous/1.8.1/slider.js
    * /ajax/libs/scriptaculous/1.8.1/sound.js
    * /ajax/libs/swfobject/2.1/swfobject.js

    ReplyDelete
  7. I agree with Todd and it can work like:
    /ajax/libs/combine(prototype_1.6.0.3_prototype.js)(scriptaculous_1.8.1_scriptaculous.js)(scriptaculous_1.8.1_builder.js).js

    ReplyDelete
  8. This comment has been removed by a blog administrator.

    ReplyDelete
  9. YSlow seems already very good for this. I didn't used that as of now, but It may be duplicate of that, resulting it confusion to developers / users. In YSlow 2.0 there are 22 rules. We can also ad our own customized rule set (including what speed-test provides, if any new). Though I'll love to try speed-test to see what different Google did.

    ReplyDelete
  10. make sure to use firebug 1.3.3 otherwise page speed will not work

    ReplyDelete
  11. [ made this comment on another G blog, not sure where the correct place to give feedback is, so... ]

    Only had a quick glance, but:

    1) You state that Expires is more widely implemented than Cache-Control: max-age. On what do you base that? See also: http://www.mnot.net/blog/2007/05/15/expires_max-age

    2) You advise to (almost) always set Cache-Control: public. That wastes bits; the only time you need to set public is when there are Authorization request headers being sent (i.e., HTTP auth is in use).By default, responses are implicitly public.

    ReplyDelete
  12. Its nice and very useful

    ReplyDelete
  13. Nice new thing is category "Use efficient CSS selectors" and FAQ to it

    ReplyDelete
  14. Page Speed hung when i tried to analyze performance of this page .(

    ReplyDelete
  15. seems to be pretty good..

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete
  17. It almost looks similar to Yslow add-on. What's new in it?

    http://www.smartbloggerz.com

    ReplyDelete
  18. Wow, I think you might just be onto something tehre dude!

    RT
    www.real-anonymity.pro.tc

    ReplyDelete
  19. I thought that you were going to be adding the page load speed to actual individual search results - now that would be cool. Then we could ignore the slow pages if we wanted to.

    ReplyDelete
  20. Page Speed is the same tool as YSlow but with few differences. Steve Souders the creator of YSlow is now emplyed at Google. This is why both tools have the same features.

    ReplyDelete
  21. I hope you can manage to get this one into Google Chrome in the future, as an extension. :-) It would feel kind of natural for some reason. ;-)

    ReplyDelete
  22. Works perfectly on Firebug 1.4X.0a31 / Firefox 3.5b4, but only initially works when Firebug is docked into the window. However, Firebug can be undocked once it has completed its analysis.

    ReplyDelete
  23. This comment has been removed by the author.

    ReplyDelete
  24. Will this end up like google accelerator?
    accelerator.google.com

    ReplyDelete
  25. wow, great post. this should help lots n lots of people.

    ReplyDelete
  26. WOAH! Thanks Google! No more YSlow for me. This rocks!

    ReplyDelete
  27. I'm wondering about the browser caching summary too. For a number of images (img, css background and link) I get,

    The following resources are explicitly non-cacheable. Consider making them cacheable if possible

    The web server is responding with a long Expres and a Cache-Control: max_age, public. There's not much else to do.

    ReplyDelete
  28. This add-on doesn't work at all for me. After installing and restarting Firefox jumped to 100% CPU and memory use starts growing slowly until it's used all the RAM and swap.

    I tried disabling all add-ons (apart from Firebug 1.3.3 and Page Speed). Same result.

    Yslow does work for me. Shame I can't try this out, as it seems very useful.

    ReplyDelete
  29. @Todd Seiber: There is a way to minify and combine script.aculo.us:

    It's called jQuery.

    ReplyDelete
  30. @Todd Seiber: We don't minify those libraries because those library maintainers choose not to release minified versions. For our libraries API, we only distribute libraries as is. You should file a bug with the Prototype team -- if they start releasing minified versions, we will host them as well.

    -Ben

    ReplyDelete
  31. Nice the see the page speed and it is very interesting here that.

    ReplyDelete
  32. Ben, is there a particular reason why the libraries do not return a Content-Length header?

    Here's a link to a test page that shows this. http://bit.ly/17HSNB

    ReplyDelete
  33. @Todd Seiber, you can use YUI Compressor to minimize your javascript code http://bit.ly/huv29

    ReplyDelete
  34. Timely help from Goole, very useful.

    ReplyDelete
  35. I'll use both this and YSlow
    Will test it in my blog
    http://danielsantana.net

    ReplyDelete
  36. I really hope that they combine all the scriptaculous files and prototype.js file. Scripaculous just came out with a new version 1.8.3 as of yesterday.

    If anybody combines these latest files, please let me know. I can be contact through my green business website. Thanks in advance!

    Love the page speed application by the way! I have learned a lot about performance through already and I am already starting to tweak my webpages to make them load more efficiently.

    ReplyDelete
  37. Hey Google!

    I wrote about the positive effects of page speed optimization and how the GoogleBot and visitor behaviour changes after it:
    http://www.kammerath.net/website-schneller-machen.html

    Best regards,

    Jan

    ReplyDelete