Google PageSpeed Tools
Some of this article's listed sources may not be reliable. (March 2017) (Learn how and when to remove this template message)
Google PageSpeed is a family of tools by Google Inc, designed to help a website's performance optimizations. It was introduced at Developer Conference in 2010. There are four main components of PageSpeed family tools: PageSpeed Module, consisting of mod_pagespeed for the Apache HTTP Server and ngx_pagespeed for the Nginx, PageSpeed Insights, PageSpeed Service, and PageSpeed Chrome DevTools extension. All of these components are built to identify faults in a website's compliance with Google's Web Performance Best Practices, as well as automate the adjustment process.
Installation is relatively easy and can be done in two ways: from packages or build from source on the following supported platforms:
Other servers that offer a PageSpeed optimization module based on Google's PageSpeed SDK:
- Apache Traffic Server - ats_pagespeed 
- Microsoft Internet Information Services - IIS WebSpeed←
Pagespeed module filters are settings, based on which a webpage optimization rule is applied. They can be divided into five main categories:
- Stylesheets optimizations;
- Images optimizations;
- HTML optimizations;
- Tracking activity filters.
These filters change CSS files to optimized versions through making them smaller, combining several into one or extending cache lifetime:
|Combine CSS||If a page requires several stylesheets, this filter combines them into one stylesheet, decreasing the number of requests to a web server|
|Extend Cache for Stylesheets||Increases the time that cached CSS files are to be kept in local storage, preventing extra requests and data loading upon a user's return to the same webpage|
|Flatten CSS Imports||Replaces all “@import” rules with the contents of imported files, if the size of the affected stylesheet files is less than the number of pre-determined bytes set by the sub-filter “CssFlattenMaxBytes”. This optimization is designed for reducing the number of requests by the web browser|
|Inline @import To Link||Transforms “@import” rules into corresponding “<link>” tags. Mostly is used for proper work of later applied filters|
|Inline CSS||Inserts small external stylesheet files’ content directly into HTML document, therefore reducing number of requests. This filter is applied only to stylesheets that are smaller than a size set by sub-filter “CssInlineMaxBytes”|
|Inline Google Fonts API CSS||Inserts any stylesheets, used by Google Font API, if they are smaller than a value, which is set by sub-filter “CssInlineMaxBytes”|
|Move CSS to Head||Places stylesheets inclusion before any <body> elements are introduced, which decreases the loading time by eliminating re-flows of a webpage|
|Outline CSS||Experimental filter which puts inlined CSS rules on an external resource. The idea behind it is to create parallel connections to different servers rather than consecutive ones to the same host. This filter will try to outline only stylesheets bigger than set by sub-filter “CssOutlineMinBytes”|
|Prioritize Critical CSS||Replaces stylesheets with inlined CSS rules, containing only necessary rules for initial viewport, and defers the rest of CSS rules to be loaded after the page is fully loaded|
|Rewrite CSS||Allows other stylesheet and image related filters to be applied to local stylesheets. Additionally, this filter minifies all CSS. Has impact on payload size|
|Rewrite Style Attributes||Implements the same optimization as “Rewrite CSS” filter to all rules, declared under “<style>” attributes|
Image optimization filters are built to reduce the size of loading graphics:
|Deduplicate Inlined Images||Eliminates repetitive data loading of the same inlined images, improving the number of requests and transfer size|
|Extend Cache for Images||Increases the time that cached images are to be kept in local storage, preventing extra requests and data loading upon user return to the same webpage|
|Inline Preview Images||Generates low quality versions of a number of inlined images set by sub-filter “MaxInlinedPreviewImagesIndex”, unless the size of the images is higher than the value set by sub-filter “MinImageSizeLowResolutionBytes”, improving user experience. After the page is fully loaded, images are switched to higher quality|
|Lazyload Images||Postpones loading of images, which are not in a user's initial viewport, decreasing the number of browser's requests|
|Inline Images||Provides a way to include image data into actual webpage code as if an image was an external resource, eliminating extra connections to retrieve image data|
|Convert GIFs to PNG||Loselessly converts non-animated gifs into pngs, decreasing data size|
|Convert JPEGs to Progressive JPEGs||Transforms automatically generated larger non-progressive jpeg images into smaller progressive type|
|Recompress JPEGs||Recompresses automatically generated jpeg images if their original compression quality was higher than value, set by sub-filters “ImageRecompressionQuality” or “JpegRecompressionQuality”. This allows a decrease in payload|
|Recompress PNGs||Losslessly converts png images into images with higher compression|
|Recompress WEBPs||Replaces webp images with smaller re-compressed versions in browsers which support webp format|
|Strip Image Color Profile||Removes all images’ color profile information, since it is not supported by most of the browsers|
|Strip Image Meta Data||Removes EXIF meta data from all image files of a webpage|
|Reduce JPEG Subsampling||Reduces color sampling rate to 4:2:0 due to human vision sensitivity to changes in brightness, but not in hue or saturation. This allows to significantly reduce image size|
|Convert PNGs to JPEGs||Substitutes png images without transparency channel with smaller jpeg equivalents|
|Resize Images||Replaces any image with dimensions larger than certain “width” and “height” attributes with a smaller one|
|Convert JPEGs to WEBPs||Converts jpeg images into much smaller webp format if supported by browser|
|Convert JPEGs to WEBPs Lossless||Converts jpeg images into much smaller webp format if supported by browser and if image is insensitive to compression noise|
|Insert Image Dimensions||Automatically adds “width” and “height” attributes for “<img>” tags if they were absent|
|Resize Images To Rendered Dimensions||Attempts to resize any image to its rendered dimensions, ignoring any “width” or “height” attributes|
|Sprite Images||Combines all background images from stylesheet rules into one large image to reduce the number of requests by the browser|
This group of filters simply rewrites the contents of HTML files to reduce their size and assure latest best web practices compliance.
|Add Head||Adds a <head> html tag if it is not found before <body> html tag, needed mainly for other filters to work properly, since a number of them add or modify data in the area marked with the <head> tag|
|Collapse Whitespace||Deletes extra and unnecessary whitespaces between operators in html code|
|Combine Heads||Groups the content of several <head> tags into one if there multiple tags, preventing incorrect browser workflow|
|Convert Meta Tags||Adds matching present meta tags response header, avoiding reparsing delays due to some browsers “http-equiv” attribute requirements|
|Elide Attributes||Removes html tags’ attributes with values equal to default values, which reduces the total amount of data transferred|
|Local Storage Cache||Saves inlined resources into browser's local storage on the first view of a page, and loads them from local storage on subsequent views rather than inlining them again. This reduces the number of requests|
|Pedantic||Forces Pagespeed Module optimizations to be more HTML4 compliant|
|Remove Comments||Deletes HTML comments, created by developers for easier readability and navigation through HTML code|
|Remove Quotes||Deletes quotation marks from HTML attributes, reducing the size of html files|
|Trim URLs||Substitutes absolute URLs with relative ones to the base URL of the page|
Tracking activity filters
Short list of filters below aim at optimizations of Google Analytics tracking communications with a website
|Add Instrumentation||Allows measurement of the time in which a client loads and renders the page, for analytical and tracking purposes|
|Async Google Analytics snippet||Forces the Google Analytics tracking code to load asynchronously, therefore allowing critical resources not to be blocked during loading|
|Insert Google Analytics||Adds tracking asynchronous snippet code to track any activities on website with Google Analytics Reporting Tools|
Other available filters
- Rewrite Domains
- Run Experiment Module
- Pre-Resolved DNS
- Extend PDFs Cache
The PageSpeed Module showed the most significant impact on decreasing webpage loading times, payload size, and number of requests when compared to other options in the industry. According to several researchers, mod_pagespeed can reduce loading times by up to 80%, amount of bytes on a wire can be decreased by 30% and the number of total requests can drop by over 20%. Since many search engines, including Google, employ a ranking algorithm which is affected by a page's loading speed, these optimizations can impact a website's placement in search results. As of February 2015, Google has begun testing “Slow” labels on mobile devices for websites that exceed a certain amount of loading time, prompting developers to examine ways to increase a page's load speed.
PageSpeed Insights is an online tool which helps in identifying performance best practices on any given website, provides suggestions on a webpage's optimizations, and suggests overall ideas of how to make a website faster. This tool can be accessed directly in any browser. Per URL request, it grades webpage performance on a scale from 1 to 100 and provides a report on suggested optimizations, divided into categories of high, medium, and low priorities.
PageSpeed Chrome Extension
Pagespeed extension is an extension of Chrome Browser and is a part of Google Chrome Developer Tools. Visitors who use PageSpeed regularly can view all given metrics by PageSpeed Insights directly in a browser and download webpage resources, optimized according to web performance best practices. It has now been deprecated and Google recommends the online version be used instead.
PageSpeed service was a commercial product, provided by Google Inc. The service was offered free of charge, since it was still officially in beta version. Service included all Pagespeed Module optimizations and use of Google servers’ infrastructure. Google announced the deprecation of PageSpeed service on 5 May 2015 and turned it off on 3 August 2015.
- Ivanovs, Alex. "PageSpeed Module: Improving Your Websites' Performance". huffingtonpost.com/. The Huffington Post. Retrieved 23 March 2015.
- Kerner, Sean Michael. "Google Speeds Up the Web with Apache Web Server Module". serverwatch.com/news/. Retrieved 23 March 2015.
- Ram, Ramani (2011-07-29). "Page Speed Service: Web performance, delivered". http://googlecode.blogspot.com/. Retrieved 17 March 2015. External link in
- "Github". https://github.com/. Google Inc. Retrieved 6 August 2020. External link in
- "Github". https://github.com/. Google Inc. Retrieved 6 August 2020. External link in
- "Apache Incubator". modpagespeed.com/. Google Inc. Retrieved 6 August 2020.
- Edwards, Ben (2014-07-28). "Authoring critical above-the-fold CSS". https://benedfit.com/. Retrieved 23 March 2015. External link in
- "PageSpeed Insights SDK". https://code.google.com/. Google Inc. Retrieved 23 March 2015. External link in
- "ats_pagespeed". iispeed.com/. IISpeed B.V. Archived from the original on 2015-05-25. Retrieved 2015-05-25.
- "IIS WebSpeed". iiswebspeed.com/. IISpeed B.V.
- Liversidge, Chris (July 2014). "Breaking Down Page Speed Events For SEO Gain". http://searchengineland.com/. Search Engine Land. Retrieved 23 March 2015. External link in
- Andersen, Anders; Jarlund, Tobias (2013-09-16). "Addressing The Responsive Images Performance Problem: A Case Study". smashingmagazine.com/. Smashing Magazine. Retrieved 23 March 2015.
- Enge, Eric (2011-03-06). "Case Study: Impact of Code Cleanup on Site Traffic". http://searchenginewatch.com/. Search Engine Watch. Retrieved 23 March 2015. External link in
- Kuchler, Margaret. "The Growing Need For Speed: How Site Performance Increasingly Influences Search Rankings". retailtouchpoints.com/. Retail Touch Points. Retrieved 23 March 2015.
- Barry, Shwartz (2015-02-25). "Google Testing A Red "Slow" Label In The Search Results For Slower Sites". http://searchengineland.com/. Retrieved 17 March 2015. External link in
- Wagner, Janet (2015-01-15). "GOOGLE RELEASES PAGESPEED INSIGHTS API V2". programmableweb.com/. Programmable Web. Retrieved 23 March 2015.
- "PageSpeed Insights | PageSpeed Insights | Google Developers". Google Developers. Retrieved 2016-09-08.
- Lardinois, Frederic. "Google Updates PageSpeed Service, Promises To "Turbocharge Your Website"". https://techcrunch.com/. The Tech Crunch. Retrieved 23 March 2015. External link in
- "Google Groups". groups.google.com. Retrieved 7 February 2019.
- "Turndown information for PageSpeed Service - PageSpeed Service". Google Developers. Retrieved 7 February 2019.