Overview
PageSpeed (mod_pagespeed) optimizes your site and makes content load more quickly. PageSpeed applies a variety of filters including minifying scripts, inlining CSS, and automatically deferring JavaScript to avoid blocking DOM rendering. Users can browse your site with less latency, and in turn, improve visitor engagement.
Availability
PageSpeed is available on all v5+ platforms. PageSpeed is enabled by default.
Filter usage
PageSpeed is built as modular filters. These filters, in turn, may be added and removed to a web site resulting in a variety of optimizations. Filters may be added or removed in a .htaccess file. By default, all filters listed in CoreFilters
(refer to Filter list) are enabled.
- Create a file named
.htaccess
in your document root if it does not already exist- To add filters:
ModPagespeedEnableFilters filtera,filterb
- To remove filters:
ModPagespeedDisableFilters filtera,filterb
- To add filters:
- Once committed, these filters specified will be added or removed from
CoreFilters
Filter list
Note: In the heading, “CF” is CoreFilters and OFB is “OptimizeForBandwidth”.
Filter Name | In CF | In OFB | Brief Description |
---|---|---|---|
add_head |
Yes | No | Adds a <head> element to the document if not already present. |
combine_heads |
No | No | Combines multiple <head> elements found in document into one. |
inline_import_to_link |
Yes | No | Inlines <style> tags comprising only CSS @imports by converting them to equivalent <link> tags. |
outline_css |
No | No | Externalize large blocks of CSS into a cacheable file. |
outline_javascript |
No | No | Externalize large blocks of JS into a cacheable file. |
move_css_above_scripts |
No | No | Moves CSS elements above <script> tags. |
move_css_to_head |
No | No | Moves CSS elements into the <head> . |
combine_css |
Yes | No | Combines multiple CSS elements into one. |
rewrite_css |
Yes | Yes | Rewrites CSS files to remove excess whitespace and comments, and, if enabled, rewrite or cache-extend images referenced in CSS files. In OptimizeForBandwidth mode, the minification occurs in-place without changing URLs. |
fallback_rewrite_css_urls |
Yes | No | Rewrites resources referenced in any CSS file that cannot otherwise be parsed and minified. |
rewrite_style_attributes |
No | No | Rewrite the CSS in style attributes by applying the configured rewrite_css filter to it. |
rewrite_style_attributes_with_url |
Yes | No | Rewrite the CSS in style attributes if it contains the text ‘url(‘ by applying the configured rewrite_css filter to it |
flatten_css_imports |
Yes | No | Inline CSS by flattening all @import rules. |
prioritize_critical_css |
No | No | Replace CSS tags with inline versions that include only the CSS used by the page. |
make_google_analytics_async |
No | No | Convert synchronous use of Google Analytics API to asynchronous |
rewrite_javascript |
Yes | Yes | Rewrites JavaScript files to remove excess whitespace and comments. In OptimizeForBandwidth mode, the minification occurs in-place without changing URLs. |
rewrite_javascript_external |
Yes | Yes | Implied by rewrite_javascript. Rewrites JavaScript external files to remove excess whitespace and comments. In OptimizeForBandwidth mode, the minification occurs in-place without changing URLs. |
rewrite_javascript_inline |
Yes | Yes | Implied by rewrite_javascript. Rewrites inline JavaScript blocks to remove excess whitespace and comments. |
include_js_source_maps |
No | No | Adds source maps to rewritten JavaScript files. |
combine_javascript |
Yes | No | Combines multiple script elements into one. |
canonicalize_javascript_libraries |
No | No | Redirects JavaScript libraries to a JavaScript hosting service. |
inline_css |
Yes | No | Inlines small CSS files into the HTML document. |
inline_google_font_css |
No | No | Inlines small CSS files used by fonts.googleapis.com into the HTML document. |
inline_javascript |
Yes | No | Inlines small JS files into the HTML document. |
local_storage_cache |
No | No | Cache inlined resources in HTML5 local storage. |
insert_ga |
No | No | Adds the Google Analytics snippet to each HTML page. |
rewrite_images |
Yes | Yes | Optimizes images, re-encoding them, removing excess pixels, and inlining small images. In OptimizeForBandwidth mode, the minification occurs in-place without changing URLs. |
convert_jpeg_to_progressive |
Yes | Yes | Converts larger jpegs to progressive format. Implied by recompress images. |
convert_png_to_jpeg |
Yes | Yes | Converts gif and png images into jpegs if they appear to be less sensitive to compression artifacts and lack alpha transparency. Implied by recompress images. |
convert_jpeg_to_webp |
Yes | Yes | Producess lossy webp rather than jpeg images for browsers that support webp. Implied by recompress images. |
convert_to_webp_lossless |
No | No | Replaces gif and png images with webp images on browsers that support the format. |
insert_image_dimensions |
No | No | Adds width and height attributes to <img> tags that lack them. |
inline_images |
Yes | No | Implied by rewrite_images. Replaces small images bydata: urls. |
recompress_images |
Yes | Yes | Implied by rewrite_images. Recompresses images, removing excess metadata and transforming gifs into pngs. |
recompress_jpeg |
Yes | Yes | Implied by recompress_images. Recompresses jpegs, removing excess metadata. |
recompress_png |
Yes | Yes | Implied by recompress_images. Recompresses pngs, removing excess metadata. |
recompress_webp |
Yes | Yes | Implied by recompress_images. Recompresses webps, removing excess metadata. |
convert_gif_to_png |
Yes | Yes | Implied by recompress_images. Optimizes gifs to pngs. |
strip_image_color_profile |
Yes | Yes | Implied by recompress_images. Strips color profile info from images. |
strip_image_meta_data |
Yes | Yes | Implied by recompress_images. Strips EXIF meta data from images. |
jpeg_sampling |
Yes | Yes | Implied by recompress_images. Reduces the color sampling of jpeg images to 4:2:0. |
resize_images |
Yes | No | Implied by rewrite_images. Resizes images when the corresponding <img> tag specifies a smaller width and height . |
resize_rendered_image_dimensions |
Yes | No | Implied by rewrite_images. Resizes an image when the rendered dimensions of the image are smaller than the actual image. |
inline_preview_images |
No | No | Uses inlined low-quality images as placeholders which will be replaced with original images once the web page is loaded. |
resize_mobile_images |
No | No | Works just like inline_preview_images , but uses smaller placeholder images and only serves them to mobile browsers. |
remove_comments |
No | No | Removes comments in HTML files (but not in inline JavaScript or CSS). |
collapse_whitespace |
No | No | Removes excess whitespace in HTML files (avoiding<pre> , <script> , <style> , and <textarea> ). |
elide_attributes |
No | No | Removes attributes which are not significant according to the HTML spec. |
extend_cache |
Yes | No | Extends cache lifetime of CSS, JS, and image resources that have not otherwise been optimized, by signing URLs with a content hash. |
extend_cache_css |
Yes | No | Implied by extend_cache. Extends cache lifetime of otherwise unoptimized CSS resources by signing URLs with a content hash. |
extend_cache_images |
Yes | No | Implied by extend_cache. Extends cache lifetime of otherwise unoptimized images by signing URLs with a content hash. |
extend_cache_scripts |
Yes | No | Implied by extend_cache. Extends cache lifetime of otherwise unoptimized scripts by signing URLs with a content hash. |
extend_cache_pdfs |
No | No | Extends cache lifetime of PDFs by signing URLs with a content hash. |
sprite_images |
No | No | Combine background images in CSS files into one sprite. |
rewrite_domains |
No | No | Rewrites the domains of resources not otherwise touched by PageSpeed, based on MapRewriteDomain and ShardDomain settings in the config file. |
trim_urls |
No | No | Shortens URLs by making them relative to the base URL. |
pedantic |
No | No | Add default types for <script> and <style> tags if the type attribute is not present and the page is not HTML5. The purpose of this filter is to help ensure that PageSpeed does not break HTML4 validation. |
remove_quotes |
No | No | Removes quotes around HTML attributes that are not lexically required. |
add_instrumentation |
No | No | Adds JavaScript to page to measure latency and send back to the server. |
convert_meta_tags |
Yes | No | Adds a response header for each meta tag with anhttp-equiv attribute. |
defer_javascript |
No | No | Defers the execution of JavaScript in HTML until page load complete. |
dedup_inlined_images |
No | No | Replaces repeated inlined images with JavaScript that loads the image from the first occurence of the image. |
lazyload_images |
No | No | Loads images when they become visible in the client viewport. |
insert_dns_prefetch |
No | No | Inserts <link rel="dns-prefetch" href="//www.example.com"> tags to reduce DNS resolution time. |
in_place_optimize_for_browser |
No | Yes | Perform browser-dependent in-place resource optimizations. |