| <html> |
| <head> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <title>PageSpeed Filters</title> |
| <link rel="stylesheet" href="doc.css"> |
| </head> |
| <body> |
| <!--#include virtual="_header.html" --> |
| |
| |
| <div id=content> |
| <h1>PageSpeed Filters</h1> |
| |
| <p> |
| PageSpeed improves web page latency by changing the resources on that |
| web page to implement web performance |
| <a href="/speed/docs/best-practices/rules_intro">best practices</a>. Each sort |
| of change that PageSpeed makes is embodied in a <em>filter</em>. The filters |
| are run in a pre-defined order, but can be enabled and disabled in the server |
| <a href="configuration">configuration file</a>. |
| </p> |
| <p> |
| Some filters simply alter HTML content, such as removing excess |
| whitespace, attributes, or attribute values that will be ignored. |
| </p> |
| <p> |
| Other filters change references to CSS, JavaScript, or images to point |
| to more optimized versions, because they: |
| </p> |
| <ul> |
| <li>are smaller,</li> |
| <li>combine multiple files into one, and</li> |
| <li>extend the cache lifetime</li> |
| </ul> |
| |
| <h2>Categories of filters</h2> |
| <p> |
| Filters are of many categories that fit under performance best practices. |
| The current set of filters fits in these categories as follows: |
| </p> |
| <a href="/speed/docs/best-practices/caching"> |
| <h3>Optimize Caching</h3> |
| </a> |
| <ul> |
| <li><a href="filter-canonicalize-js">Canonicalize JavaScript Libraries</a> |
| <li><a href="filter-cache-extend">Extend Cache</a></li> |
| <li><a href="filter-cache-extend-pdfs">Extend Cache PDFs</a></li> |
| <li><a href="filter-local-storage-cache">Local Storage Cache</a></li> |
| <li><a href="filter-css-outline">Outline CSS</a></li> |
| <li><a href="filter-js-outline">Outline JavaScript</a></li> |
| </ul> |
| |
| <a href="/speed/docs/best-practices/rtt"> |
| <h3>Minimize Round Trip Times</h3> |
| </a> |
| <ul> |
| <li><a href="filter-css-combine">Combine CSS</a></li> |
| <li><a href="filter-flatten-css-imports">Flatten CSS @imports</a></li> |
| <li><a href="filter-css-inline">Inline CSS</a></li> |
| <li><a href="filter-css-inline-google-fonts">Inline Google Fonts API CSS</a></li> |
| <li><a href="filter-js-combine">Combine JavaScript</a></li> |
| <li><a href="filter-js-inline">Inline JavaScript</a></li> |
| <li><a href="filter-css-above-scripts">Move CSS Above Scripts</a></li> |
| <li><a href="domains#shard">Configuration file directive to |
| shard domains</a></li> |
| <li><a href="filter-image-sprite">Sprite Images</a></li> |
| <li><a href="filter-insert-dns-prefetch">Pre-Resolve DNS</a></li> |
| </ul> |
| |
| <a href="/speed/docs/best-practices/request"> |
| <h3>Minimize Request Overhead</h3> |
| </a> |
| <ul> |
| <li><a href="filter-domain-rewrite">Rewrite Domains</a></li> |
| <li><a href="domains#mapping_rewrite">Configuration |
| file directive to map domains</a></li> |
| </ul> |
| |
| <a href="/speed/docs/best-practices/payload"> |
| <h3>Minimize Payload Size</h3> |
| </a> |
| <ul> |
| <li><a href="filter-whitespace-collapse">Collapse Whitespace</a></li> |
| <li><a href="filter-head-combine">Combine Heads</a></li> |
| <li><a href="filter-attribute-elide">Elide Attributes</a></li> |
| <li><a href="filter-js-minify">Minify JavaScript</a></li> |
| <li><a href="filter-image-optimize">Optimize Images</a></li> |
| <li><a href="filter-prioritize-critical-css">Prioritize Critical CSS</a></li> |
| <li><a href="filter-dedup-inlined-images">Deduplicate Inlined Images</a></li> |
| <li><a href="filter-comment-remove">Remove Comments</a></li> |
| <li><a href="filter-quote-remove">Remove Quotes</a></li> |
| <li><a href="filter-css-rewrite">Rewrite CSS</a></li> |
| <li><a href="filter-rewrite-style-attributes" |
| >Rewrite Style Attributes</a></li> |
| <li><a href="filter-trim-urls">Trim URLs</a></li> |
| </ul> |
| |
| <a href="/speed/docs/best-practices/rendering"> |
| <h3>Optimize Browser Rendering</h3></a> |
| <ul> |
| <li><a href="filter-convert-meta-tags">Convert Meta Tags</a></li> |
| <li><a href="filter-js-defer">Defer Javascript</a></li> |
| <li><a href="filter-hint-preload-subresources" |
| >Hint Resource Preloading</a></li> |
| <li><a href="filter-inline-preview-images">Inline Preview Images</a></li> |
| <li><a href="filter-lazyload-images">Lazily Load Images</a></li> |
| <li><a href="filter-image-responsive">Make Images Responsive</a></li> |
| <li><a href="filter-css-to-head">Move CSS to Head</a></li> |
| <li><a href="filter-image-optimize">Optimize Images</a></li> |
| <li><a href="reference-image-optimize#progressive" |
| >Convert JPEG to Progressive</a></li> |
| <li><a href="filter-rewrite-style-attributes" |
| >Rewrite Style Attributes</a></li> |
| </ul> |
| |
| <h3>Other</h3> |
| <ul> |
| <li><a href="filter-head-add">Add Head</a></li> |
| <li><a href="filter-instrumentation-add">Add Instrumentation</a></li> |
| <li><a href="filter-source-maps-include" |
| >Include JavaScript Source Maps</a></li> |
| <li><a href="filter-css-inline-import">Inline @import to Link</a></li> |
| <li><a href="filter-insert-ga">Insert Google Analytics Snippet</a></li> |
| <li><a href="filter-make-show-ads-async" |
| >Make Google AdSense Async</a></li> |
| <li><a href="filter-make-google-analytics-async" |
| >Make Google Analytics Async</a></li> |
| <li><a href="filter-pedantic">Pedantic</a></li> |
| <li><a href="module-run-experiment">Run Experiment</a></li> |
| </ul> |
| |
| <p> |
| In some cases, a filter such as 'Optimize Images' helps both minimize request overhead and optimize browser rendering. |
| </p> |
| |
| </div> |
| <!--#include virtual="_footer.html" --> |
| </body> |
| </html> |