Google PageSpeed Tools

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Google PageSpeed is a family of tools by Google Inc, designed to help a website’s performance optimizations.[1] It was introduced at Developer Conference in 2010.[2][3] There are four main components of PageSpeed family tools: PageSpeed Module, also known as mod_pagespeed, 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.

PageSpeed Module[edit]

Mod_pagespeed is an open-source Apache HTTP Server or Nginx webservers module, which automatically applies chosen filters to pages and associated assets, such as stylesheets, JavaScript, and HTML files, as well as to images and website cache requirements. The largest advantage of this module is that it does not require modifications to existing content or workflow,[4] meaning that all internal optimizations and changes to files are made on the server side, presenting modified files directly to the user. Each of 40+ filters corresponds to one of Google’s web performance best practices rules.

Since PageSpeed module is an open-source library, it is frequently updated by numerous developers from all over the world and can be deployed by any individual sites, hosting providers, or CDNs.[5]

Installation is relatively easy and can be done in two ways: from packages or build from source on the following supported platforms:

Ports[edit]

Other servers that offer a PageSpeed optimization module based on Google's PageSpeed SDK:

Filters[edit]

Pagespeed module filters are settings, based on which a webpage optimization rule is applied. They can be divided into five main categories:

Stylesheets optimizations[edit]

These filters change CSS files to optimized versions through making them smaller, combining several into one or extending cache lifetime:

Filter Name Description
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 Above Scripts Rearranges the order of loading stylesheets and javascript files, assuring that scripts are not blocking CSS resources. Improves rendering of a webpage, leading to shorter loading times[8]
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[9]
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

Javascript files optimizations[edit]

These filters are applied to Javascript files, re-referring them to optimized files:

Filter Name Description
Canonicalize Javascript libraries Replaces popular javascript libraries with remote latest free versions, from Google Hosted Libraries by default. This potentially decreases the number of requests to servers in the future, since these libraries might be in user’s browser cache from any other websites
Combine Javascript Combines multiple javascript files into one, therefore decreasing total number of requests by a browser
Defer Javascript Postpones loading and executing javascript files until a page is loaded. This ensures that the loading of visible content is not interrupted
Extend Cache for Javascript Increases the period of time in which cached javascript files are to be kept in local storage, preventing extra requests and data loading upon user return to the same webpage
Include Javascript Source Maps Creates the “map” between minified and original javascript files for improved readability during the debugging process
Inline Javascript Inserts small external javascript files’ content directly into HTML document, therefore reducing the number of requests. This filter is applied only to javascript files smaller than the size set by sub-filter “JsInlineMaxBytes”
Minify External Javascript, Minify Internal Javascript Removes all comments, whitespaces, redundant and obsolete rules, which reduces the total number of bytes loaded
Outline Javascript Experimental filter which puts inlined javascript 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 only try to outline scripts bigger than a size set by sub-filter “JsOutlineMinBytes”

Images optimizations[edit]

Image optimization filters are built to reduce the size of loading graphics:

Filter Name Description
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

HTML optimizations[edit]

This group of filters simply rewrites the contents of HTML files to reduce their size and assure latest best web practices compliance.

Filter Name Description
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[edit]

Short list of filters below aim at optimizations of Google Analytics tracking communications with a website

Filter Name Description
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[edit]

  • Rewrite Domains
  • Run Experiment Module
  • Pre-Resolved DNS
  • Extend PDFs Cache

Speed Impact[edit]

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%,[10] 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.[11][12] As of February 2015, Google has begun testing “Slow” labels on mobile devices[13] for websites that exceed a certain amount of loading time, prompting developers to examine ways to increase a page’s load speed.

PageSpeed Insights[edit]

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.[14] 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[edit]

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[15] and Google recommends the online version be used instead.

PageSpeed Service[edit]

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.[16] Google announced the deprecation of PageSpeed service on 5 May 2015[17] and turned it off on 3 August 2015.[18]

References[edit]

  1. ^ Ivanovs, Alex. "PageSpeed Module: Improving Your Websites' Performance". huffingtonpost.com/. The Huffington Post. Retrieved 23 March 2015. 
  2. ^ Kerner, Sean Michael. "Google Speeds Up the Web with Apache Web Server Module". serverwatch.com/news/. Retrieved 23 March 2015. 
  3. ^ Ram, Ramani. "Page Speed Service: Web performance, delivered". http://googlecode.blogspot.com/. Retrieved 17 March 2015.  External link in |website= (help)
  4. ^ Edwards, Ben. "Authoring critical above-the-fold CSS". https://benedfit.com/. Retrieved 23 March 2015.  External link in |website= (help)
  5. ^ "PageSpeed Insights SDK". https://code.google.com/. Google Inc. Retrieved 23 March 2015.  External link in |website= (help)
  6. ^ "ats_pagespeed". https://www.iispeed.com/. IISpeed B.V.  External link in |website= (help)
  7. ^ "IISpeed". https://www.iispeed.com/. IISpeed B.V.  External link in |website= (help)
  8. ^ Liversidge, Chris. "Breaking Down Page Speed Events For SEO Gain". http://searchengineland.com/. Search Engine Land. Retrieved 23 March 2015.  External link in |website= (help)
  9. ^ Andersen, Anders; Jarlund, Tobias. "Addressing The Responsive Images Performance Problem: A Case Study". smashingmagazine.com/. Smashing Magazine. Retrieved 23 March 2015. 
  10. ^ Kustov, Dmitrii. "Pagespeed Module = Supersonic Website". https://www.hyperlinksmedia.com/learning-center/. Boost Business Friday. Retrieved 20 March 2015.  External link in |website= (help)
  11. ^ Enge, Eric. "Case Study: Impact of Code Cleanup on Site Traffic". http://searchenginewatch.com/. Search Engine Watch. Retrieved 23 March 2015.  External link in |website= (help)
  12. ^ Kuchler, Margaret. "The Growing Need For Speed: How Site Performance Increasingly Influences Search Rankings". retailtouchpoints.com/. Retail Touch Points. Retrieved 23 March 2015. 
  13. ^ Barry, Shwartz. "Google Testing A Red "Slow" Label In The Search Results For Slower Sites". http://searchengineland.com/. Retrieved 17 March 2015.  External link in |website= (help)
  14. ^ Wagner, Janet. "GOOGLE RELEASES PAGESPEED INSIGHTS API V2". programmableweb.com/. Programmable Web. Retrieved 23 March 2015. 
  15. ^ "PageSpeed Insights | PageSpeed Insights | Google Developers". Google Developers. Retrieved 2016-09-08. 
  16. ^ Lardinois, Frederic. "Google Updates PageSpeed Service, Promises To "Turbocharge Your Website"". https://techcrunch.com/. The Tech Crunch. Retrieved 23 March 2015.  External link in |website= (help)
  17. ^ https://groups.google.com/forum/#!topic/page-speed-service-discuss/h4jyUpv6Bc8
  18. ^ https://developers.google.com/speed/pagespeed/service/Deprecation