<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Optimize Images</title>
  <link rel="stylesheet" href="doc.css">
</head>
<body>
<!--#include virtual="_header.html" -->


  <div id=content>
<h1>Optimize Images</h1>
<h2>Introduction</h2>
<p>
The PageSpeed Modules optimize your images to minimize their size and thus
reduce their load time. They remove non-visible image information and apply
high-efficiency compression techniques. This can result in a data saving of
50% or more.
</p>
<p>
Using PageSpeed Modules, you can focus on the content of your site, knowing
your visitors will receive images in the best format and dimensions for their
device and browser while using minimum bandwidth.
</p>

<h2>Optimization methods</h2>
<p>
PageSpeed Modules can optimize most common image formats, including GIF, PNG,
and JPEG, and convert them to PNG, JPEG, or WebP. GIF, PNG, and JPEG are
supported by all browsers. WebP is a modern image format that can compress
images <a href="https://developers.google.com/speed/webp/">over 25%</a>
more than older formats, and is currently supported by many browsers,
including Google Chrome, Android 4.0+, and Opera. PageSpeed-optimized images
are converted to the best format supported by the target browser, i.e.,
to WebP if it is supported, or PNG or JPEG if not.
</p>
<p>
PageSpeed can also maximize compression based on image content. Lossy formats
compress images far better than lossless formats, but sometimes introduce
visible and undesirable "compression noise". PageSpeed examines the content
of images to see whether they are sensitive to compression noise and, if so,
converts to PNG or the lossless mode of WebP; if not, it converts to JPEG or
the lossy mode of WebP.
</p>

<h2>In-place optimization vs. tag rewriting</h2>
<p>
PageSpeed is capable of doing all this without changing your HTML or CSS, known
as In-Place Resource Optimization (IPRO). However, if you allow PageSpeed to
modify your HTML and CSS, it can do even more. For example, PageSpeed can
shrink images to their actual rendered dimensions, thereby using fewer pixels
and offering additional byte savings. It can also inline small images into HTML
or CSS to avoid additional round trips to your server for fetching the images.
</p>
<p>
This table shows some examples of how PageSpeed can modify your HTML.
</p>
<table>
  <tr>
    <th colspan="2">Example 1</th>
  </tr>
  <tr>
    <td>Before optimization</td>
    <td><code>
      &lt;img src="images/Image1.gif"/&gt
    </code></td>
  </tr>
  <tr>
    <td>After optimization</td>
    <td><code>
      &lt;img src="images/xImage1.gif.pagespeed.ic.GSLMcHP-fl.png"/&gt
    </code></td>
  </tr>
  <tr>
    <td>Explanation</td>
    <td>Image converted from GIF to PNG format and
       <a href="filter-cache-extend">cache-extended</a>.
    </td>
  </tr>
  <tr>
    <th colspan="2">Example 2</th>
  </tr>
  <tr>
    <td>Before optimization</td>
    <td><code>
      &lt;img src="images/Image2.png" width="256" height="192"/&gt
    </code></td>
  </tr>
  <tr>
    <td>After optimization</td>
    <td><code>
      &lt;img src= "images/256x192xImage2.png.pagespeed.ic.ryODdDEGKc.png"
      width="256" height="192"/&gt
    </code></td>
  </tr>
  <tr>
    <td>Explanation</td>
    <td>Image resized to 256 x 192 pixels, recompressed to PNG, and
      cache-extended.
    </td>
  </tr>
  <tr>
    <th colspan="2">Example 3</th>
  </tr>
  <tr>
    <td>Before optimization</td>
    <td><code>
      &lt;img src="images/Image3.jpg" width="65" height="70"/&gt
    </code></td>
  </tr>
  <tr>
    <td>After optimization</td>
    <td><code>
      &lt;img src="data:image/jpeg;base64,...Base64 data"/&gt
    </code></td>
  </tr>
  <tr>
    <td>Explanation</td>
    <td>Image resized and then inlined into HTML as Base64 data. Because the
      inlined data has the desired dimensions, width and height are no longer
      needed.
    </td>
  </tr>
</table>

<p>
<b>Tip</b>: There are multiple ways to tell PageSpeed Modules not to modify
certain images.
<ul>
  <li>
    To avoid modifying a group of images, e.g., images under
    a certain folder or images named after a pattern, you can use the
    <a href="restricting_urls">Disallow</a> option.
  </li>
  <li>
    To avoid modifying the contents of an image, you can add a
    <code>Cache-Control: no-transform</code> response header to the image.
    This header can be overridden by the
    <a href="configuration#notransform">DisableRewriteOnNoTransform</a>
    option.
  </li>
  <li>
    To avoid modifying an <code>img</code> tag, you can use the
    <code>data-pagespeed-no-transform</code> attribute, i.e.,<br>
    <code>&lt;img src="do-not-modify.png" data-pagespeed-no-transform/&gt
    </code>.
  </li>
</ul>
</p>

<h2>Image formats</h2>
<p>
PageSpeed Modules support the most common image formats used on the web.
</p>
<table>
  <tr>
    <td>
      <a href="https://en.wikipedia.org/wiki/GIF">GIF</a>
    </td>
    <td>
      A legacy but still popular image format. GIF is a lossless format,
      so the compressed image is visually identical to the original. It
      supports both single frame (still image) and multiple frames (animation).
      Despite its popularity, GIF often has poor compression performance,
      so PageSpeed converts GIF images to other (better) formats, unless the
      images are tiny.
    </td>
  </tr>
  <tr>
    <td>
      <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a>
    </td>
    <td>
      A more recent lossless format designed as a successor to GIF for
      single-frame images.
    </td>
  </tr>
  <tr>
    <td>
      <a href="https://en.wikipedia.org/wiki/JPEG">JPEG</a>
    </td>
    <td>
      A lossy format where the compression process removes image detail
      that is difficult for the human eye to see. How much data to remove
      depends on the quality level. JPEG has two modes, baseline and
      progressive. Progressive mode can be used to render the image
      incrementally and has a higher compression ratio for large images.
    </td>
  </tr>
  <tr>
    <td>
      <a href="https://en.wikipedia.org/wiki/WebP">WebP</a>
    </td>
    <td>
      A cutting-edge image format. While it is not yet supported in all
      browsers, it is becoming
      <a href="https://developers.google.com/speed/webp/faq">increasingly
      available</a>.
      In addition to superior compression performance, it includes features
      of all other formats: lossy mode, lossless mode, transparency,
      and animation. WebP has added support for these features over time,
      so your visitor's browser may support all, a subset, or none of these
      features. PageSpeed automatically detects the features which your
      visitor's browser supports and only uses the supported features in
      optimization.
    </td>
  </tr>
</table>

<h2 id="filters">Filters</h2>
<p>
PageSpeed Modules provide specific filters so you can control exactly how
your images are optimized. For each visitor, PageSpeed Modules choose the best
format and mode from the ones you allowed and the ones supported by the
visitor's browser.
<p>
</p>
To simplify configuration, PageSpeed Modules provide
<a href="reference-image-optimize#rewrite_images">rewrite_images</a>,
a filter group that consists of the most common image optimizations.
It allows recompression, transcoding to optimal formats, reduction of image
dimensions, and inlining of small images into HTML or CSS. If you want to make
more detailed adjustments, you can also enable or disable the individual
filters:
</p>

<ul>
  <li>To PNG format:
    <a href="reference-image-optimize#convert_gif_to_png">convert_gif_to_png</a>,
    <a href="reference-image-optimize#recompress_png">recompress_png</a>.
  </li>
  <li>To JPEG format:
    <a href="reference-image-optimize#convert_png_to_jpeg">convert_png_to_jpeg</a>,
    <a href="reference-image-optimize#convert_jpeg_to_progressive">
convert_jpeg_to_progressive</a>,
    <a href="reference-image-optimize#recompress_jpeg">recompress_jpeg</a>.
  </li>
  <li>To WebP format:
    <a href="reference-image-optimize#convert_jpeg_to_webp">convert_jpeg_to_webp</a>,
    <a href="reference-image-optimize#convert_to_webp_lossless">
    convert_to_webp_lossless</a>,
    <a href="reference-image-optimize#convert_to_webp_animated">
    convert_to_webp_animated</a>,
    <a href="reference-image-optimize#recompress_webp">recompress_webp</a>.
  </li>
  <li>General:
    <a href="reference-image-optimize#inline_images">inline_images</a>,
    <a href="reference-image-optimize#resize_images">resize_images</a>.
  </li>
</ul>

<p>
You can use any combination of the filter group and individual filters for
your site. In each case, images are optimized only to the formats that are
supported by your visitor's browser, and images are replaced only when the
optimized one is smaller than the original.
</p>

<h2 id="image-quality">Image quality</h2>
<p>
For images that are sensitive to compression noise, PageSpeed Modules always
use lossless compression; for other images, PageSpeed Modules use the more
aggressive lossy methods. For the lossy formats you can specify up to three
quality levels, indicated by specific situations:
</p>
<ul>
<li>
When the user indicates a
<a href="https://support.google.com/chrome/answer/2392284">
preference for reduced data usage</a>.
</li>
<li>
When the user visits your site from a mobile device. Mobile devices usually
have a high device pixel ratio, so compression noise is less visible.
In addition, mobile devices are more likely to use an expensive data channel.
</li>
<li>
For all other cases, e.g., when the user visits your site from a desktop or
tablet.
</li>
</ul>

<p>
If your visitors have high transfer costs, slow connection speeds, or for
other reasons, they may prefer reduced data usage. Some browsers, including
<a href="https://developer.chrome.com/multidevice/data-compression">Chrome</a>,
<a href="https://developers.google.com/web/updates/2016/02/save-data">Opera</a>,
and <a href="https://developers.google.com/web/updates/2016/02/save-data">
Yandex</a>, let visitors choose to send a
<a href="http://httpwg.org/http-extensions/client-hints.html#the-save-data-hint">
Save-Data</a> header when they request pages. You can honor their preference by
allowing lower image quality for such requests.
</p>
<p>
The image quality levels can be specified using various parameters, listed here
in order of precedence.
</p>

<ol>
<li>
Format-specific qualities for save-data:
<a href="reference-image-optimize#JpegQualityForSaveData">
JpegQualityForSaveData</a> and
<a href="reference-image-optimize#WebpQualityForSaveData">
WebpQualityForSaveData</a>.
</li>
<li>
Format-specific qualities for mobile:
<a href="reference-image-optimize#JpegRecompressionQualityForSmallScreens">
JpegRecompressionQualityForSmallScreens</a>,
<a href="reference-image-optimize#WebpRecompressionQualityForSmallScreens">
WebpRecompressionQualityForSmallScreens</a>, and
<a href="reference-image-optimize#WebpAnimatedRecompressionQuality">
WebpAnimatedRecompressionQuality</a>.
</li>
<li>
Format-specific qualities for all other cases:
<a href="reference-image-optimize#JpegRecompressionQuality">
JpegRecompressionQuality</a>,
<a href="reference-image-optimize#WebpRecompressionQuality">
WebpRecompressionQuality</a>, and
<a href="reference-image-optimize#WebpAnimatedRecompressionQuality">
WebpAnimatedRecompressionQuality</a>.
</li>
<li>
Format-generic quality for all other cases:
<a href="reference-image-optimize#ImageRecompressionQuality">
ImageRecompressionQuality</a>.
</li>
</ol>

<p>
Each parameter has a range of 0 - 100, representing lowest to
highest quality. They can also be set to -1, indicating that the
parameter should be ignored and the parameters of the lower precedences should
be used. If all of the quality parameters are set to -1, images will
not be optimized to any lossy format.
</p>
<p>
<b>Tip</b>: If you do not want to recompress lossy-format images or convert
images to lossy formats, it is best to disable any filter that would
<a href="#filters">optimize to JPEG or WebP</a>. Setting all
of the qualities to -1 wastes CPU to achieve the same result.
</p>

<h2>Image dimensions</h2>
<p>
PageSpeed Modules can shrink an image to its actual display dimensions based
on the design of the page, the visitor's device, and the visitor's actions,
to ensure the best user experience without wasting pixels.
<p>
You can use the
<a href="reference-image-optimize#resize_images">resize_images</a> filter to
shrink the image to the dimensions specified by the <code>width=</code> and
<code>height=</code> attributes in the <code>&lt;img&gt;</code> tag or by the
inline <code>style=</code> attribute.
</p>
<p>
If you cannot use the
<a href="reference-image-optimize#resize_images">resize_images</a> filter,
you can use the
<a href="reference-image-optimize#resize_rendered_image_dimensions">
resize_rendered_image_dimensions</a>
filter to shrink the images to their rendered dimensions. In this case,
PageSpeed injects JavaScript into your HTML that will report the rendered
dimensions to the server, known as "beaconing". After receiving a few beacons,
PageSpeed identifies the dimensions, and shrinks the images.
</p>
<p>
You can use the
<a href="filter-image-responsive#configuration">responsive_images</a>
filter to ensure your visitor sees full-resolution images, whether they are
using a retina-based or regular device. Sending full resolution images to all
devices is challenging because different devices may use a different number of
pixels (known as device pixels) for displaying a region of the page
(measured by CSS pixels). For example, a region of 100x100 CSS pixels in a
page is displayed using 100x100 device pixels on an iPhone 3, 200x200 device
pixels on an iPhone 6, and 300x300 device pixels on an iPhone 6+. For the best
visual effect using the least bandwidth, you can resize your image to 100x100
for iPhone 3, to 200x200 for iPhone 6, and to 300x300 for iPhone 6+. Using this
filter, PageSpeed generates images at all of these dimensions, and then
modifies the <code>&lt;img&gt;</code> tags so your visitor's browser uses the
best size.
</p>
<p>
Taking the <a href="filter-image-responsive#configuration">responsive_images</a>
filter one step further, you can use the
<a href="filter-image-responsive#configuration">responsive_images_zoom</a>
filter to send images of higher resolutions when your visitor zooms in. Using
this filter, PageSpeed injects JavaScript into your HTML that checks the zoom
level of the page and fetches a higher-resolution image if necessary. On the
back end, PageSpeed resizes the image to the proper resolutions.
</p>

<h2>Inline images</h2>
<p>
In addition to making the images smaller, PageSpeed Modules can help your page
load faster by inlining images or previews into your HTML or CSS.
</p>
<p>
PageSpeed can inline small images directly into the HTML or CSS, reducing
server requests. This is enabled by the
<a href="reference-image-optimize#inline_images">inline_images</a> filter,
and is controlled by the
<a href="reference-image-optimize#ImageInlineMaxBytes">ImageInlineMaxBytes</a>
and <a href="reference-image-optimize#CssImageInlineMaxBytes">
CssImageInlineMaxBytes</a> options.
</p>
<p>
As well as inlining small images, PageSpeed can inline a reduced-quality
version of large images into the HTML or CSS and, after the page is loaded,
replace the low-quality image with the original. See
<a href="reference-image-optimize#inline_preview">Inline Preview Images</a>
for details.
</p>

<h2 id="srcsets">Srcsets</h2>
<p class="note"><strong>Note: New feature as of 1.12.34.1.</strong></p>

<p>
In addition to optimizing image <code>src</code> attributes, as of 1.12.34.1
PageSpeed will now also optimize images referenced in <code>srcset</code>s.
This includes all PageSpeed image optimizations except resizing.
</p>

<p>
PageSpeed can also automatically insert <code>srcset</code> attributes.  See the
the <a href="filter-image-responsive#configuration">responsive_images</a>
filter for configuration instructions.
</p>

<h2>Other controls</h2>
<p>
PageSpeed Modules provide controls to make sure that your server is stable,
your proxy/CDN (if any) is fully utilized, and your images are delivered to
the user in the format you want.
</p>
<p>
Image optimization is an expensive process. To ensure the stability of your
server, you can use
<a href="reference-image-optimize#ImageResolutionLimitBytes">
ImageResolutionLimitBytes</a>
to limit the maximum dimensions of images to optimize, and
<a href="reference-image-optimize#ImageMaxRewritesAtOnce">
ImageMaxRewritesAtOnce</a>
to limit the maximum number of images that are concurrently optimized.
</p>
<p>
To ensure that your proxy/CDN can handle the optimized images correctly,
you can use <a href="reference-image-optimize#AllowVaryOn">AllowVaryOn</a>
to tell PageSpeed which request headers can be used to control image
optimization. You can also use
<a href="reference-image-optimize#NoTransformOptimizedImages">NoTransformOptimizedImages</a>
to instruct proxies not to further compress the images.
</p>
<p>
The
<a href="reference-image-optimize#serve_webp_urls">
ServeRewrittenWebpUrlsToAnyAgent</a>
option can be used to tell PageSpeed how to respond to a request asking for a
WebP image when the browser does not appear to support WebP. In this case,
PageSpeed will normally return the image as a PNG or JPEG (whichever is most
appropriate). If <code>ServeRewrittenWebpUrlsToAnyAgent</code> is enabled,
PageSpeed will instead return the WebP unconditionally. Returning the image
depending on the headers ensures that your visitor sees the image correctly.
Returning the image unconditionally in WebP format is useful if you want to
serve WebP but your CDN or proxy removes headers from the request.
</p>
<p>
You can also ask PageSpeed to insert the image dimensions into
<code>&lt;img&gt;</code> tags so the browser can compute the layout of the
page before downloading the images. See
<a href="reference-image-optimize#insert_image_dimensions">
insert_image_dimensions</a>
filter for more information.
</p>

<h2 id="Risks">Risks</h2>
<p>
Image optimization is not perfect, and its use can have some downsides. Here
are some potential issues and suggested solutions.
</p>

<table>
  <tr>
    <td>
      <p><em>
        Image optimization is both CPU- and memory-intensive.
      </em></p>
      <p>
        You will probably see your server load increase while images are being
        rewritten, particularly immediately after server start. If the load
        increases too much, you can alleviate it by setting
        <a href="reference-image-optimize#ImageMaxRewritesAtOnce">
        ImageMaxRewritesAtOnce</a> and
        <a href="reference-image-optimize#ImageResolutionLimitBytes">
        ImageResolutionLimitBytes</a>.
        After the images have been optimized once, they will be cached for
        future use.
      </p>
    </td>
  </tr>
  <tr>
    <td>
      <p><em>
        Reducing the dimension of an image or compressing it to a lossy format
        causes some image details to be lost.
      </em></p>
      <p>
        This is sometimes noticeable, though usually not; you should inspect
        the optimized images to ensure their quality is acceptable.
      </p>
    </td>
  </tr>
  <tr>
    <td>
      <p><em>
        PageSpeed removes metadata, such as copyright information.
      </em></p>
      <p>
        If you want keep a specific image's metadata, add
        <code>data-pagespeed-no-transform</code> attribute. PageSpeed does not
        remove watermarks.
      </p>
    </td>
  </tr>
  <tr>
    <td>
      <p><em>
        It is possible to craft an image that, after re-compression, looks
        like HTML to certain browsers.
      </em></p>
      <p>
        While PageSpeed adds proper content-type headers and headers that
        forbid content-type sniffing, some ancient browsers can still be
        tricked into rendering them as HTML. If you have user-submitted images,
        you should filter them before using them in your site.
      </p>
    </td>
  </tr>
  <tr>
    <td>
      <p><em>
        Your beacons may need a new attribute.
      </em></p>
      <p>
        If you use images as beacons to monitor page activity, you should add
        <code>data-pagespeed-no-transform</code> attribute to them. Otherwise,
        PageSpeed may optimize the images and the activity will not be reported
        to you.
      </p>
    </td>
  </tr>
  <tr>
    <td>
      <p><em>
        Images may incur stretching distortion if you ask PageSpeed Modules to
        insert image dimensions.
      </em></p>
      <p>
        If you use <code>insert_image_dimensions</code> on pages where your
        CSS modifies image sizes, the images may appear distorted. Again,
        inspect compressed images for render dimensions.
      </p>
    </td>
  </tr>
  <tr>
    <td>
      <p><em>
        Color profiles are removed by PageSpeed.
      </em></p>
      <p>
        If your images contain color profiles, they are removed to save data.
        This is usually not a problem since most images with a color profile
        render indistinguishably when the color profile is removed.
      </p>
    </td>
  </tr>
</table>

</div>
  <!--#include virtual="_footer.html" -->
  </body>
</html>
