Optimizing images with PageSpeed
PageSpeed offers a variety of filters to optimize images for the web. All of these can be enabled individually, or all at once using 'IISpeed rewrite_images'. PageSpeed will back down when it detects that optimizations did not result in an image reduction.
Image optimization: automatically classify candidates for lossy or lossless recompression
Blurring text and sharp lines is one symptom of jpeg compression noise, which is why graphics containing logo's and texts are usually good candidates for the png format instead. As of PageSpeed 184.108.40.206 lossless images (png, gif) that are considered for optimization will be automatically categorized into buckets that should either be recompressed via lossy or lossless optimization. An advanced algorithm determines the image's sensitivity to compression noise. This means that you'll have to worry less about enabling certain filters degrading the visual experience on your website, and can save you a lot of manual work if there are lots of graphics on your pages that you would have to classify yourself otherwise.
Mobile image optimizations (User-Agent specific)
For mobile user-agents, PageSpeed is able to separately tune and recompres images to lossy or lossless formats - or even WebP if supported. It is also possible to separately tune image recompression quality for small screen devices. For mobile user agents, IISpeed is able to first send low-res placeholders of images down the wire to speed up the initial view. After the page completes loading, a higher res version will be downloaded and displayed.
PageSpeed is able to resize images to match the width and height specified in html.
The recompression feature will perform a few passes using different compression settings to figure out the smallest possible size for the configured image quality settings.
The recompression feature can also be configured to convert png to jpeg. Both jpeg and png can be configured for automatic conversion to webp. WebP will only be served to browsers that support it, and offers an additional 30 to 35 percent reduction in image size at the same quality as jpeg.
By enabling 'convert_jpeg_to_progressive', recompression will trancode jpeg images that are not already progressive and larger then 10kb to progressive. Progressive jpegs allow better compression opportunities, as increase the speed at which browsers can show the user an initial image, resulting in a speedier experience.
Often, images still contain lots of metadata like icc profiles, previews, and copyrights. PageSpeed can automatically detect and remove these.
Small images can be inlined, to reduce the amount of requests needed to render the page. The threshold for this can be configured. Part of the content prioritization filters. When optimizing above the fold content for a page, it makes sense to inline images above the fold and defer loading of images bewlow the fold.
Inserting image dimensions
To help the browser render the page, PageSpeed can insert the original image dimensions into image tags. With the dimension inserted, the browser knows the area that the image will take, preventing page reflows.
Filters marked bold are in the core filter set, which is enabled by default.
- Convert gif and png to jpeg : Convert gif and png files to jpeg when possible (no transparancy)
- Convert gif to png : Recompress gif to png. Enabled by recompress_images.
- Convert jpeg to progressive : Re-encode large jpeg images to progressive format for a faster user experience
- Convert jpeg to WebP : Convert images to WebP for browsers that support the format
- Inline images : Inlines small images. Enabled by rewrite_images
- Inline preview images : Inline low quality images, which will be replaced with full versions once the page has loaded.
- Insert image dimensions : Enrich IMG tags with 'width' and 'height' attributes where needed
- Lazyload images : Only load images for the initial viewport, and defer loading of the rest untill they become visible.
- Optimize Images : Optimize images by trimming excess fat and optionally transcoding. Inlines small images into the HTML
- Recompress images : Trim excess data from images. Enabled by rewrite_images
- Recompress jpeg : Recompress jpeg images. Enabled by recompress_images.
- Recompress png : Recompress png images. Enabled by recompress_images.
- Recompress webp : Recompress webp images. Enabled by recompress_images.
- Reduce JPEG subsampling : Reduces color sampling of jpeg images to 4:2:0. Enabled by recompress_images.
- Resize images : Scales images down to their specified size in html img elements. Enabled by rewrite_images.
- Resize mobile images : Like Inline Preview Images, but with smaller images. Will only rewrite for mobile user agents.
- Strip color profiles : Strips color profiles from images. Enabled by recompress_images.
- Strip image meta data : Remove EXIF meta data from images. Enabled by recompress_images.