Если размер изображений на странице можно уменьшить без особого ущерба качеству, то PageSpeed Insights предлагает оптимизировать их размер - "Оптимизируйте изображения".
Правильный формат и оптимальная степень сжатия изображений позволяет сократить их объем, что ускорит их загрузку.
Для уменьшения размера изображений можно использовать эффективные алгоритмы сжатия. Существуют инструменты, выполняющие дополнительное сжатие файлов JPEG и PNG без потерь и снижения качества:
В файле gulpfile.js можно найти все задачи. Например задача img-optim сжимает все изображения из директории ./src/img и сохраняет сжатые файлы в папку ./output/img
Файл urls.txt используется задачей screenshots, в нем находится список страниц для создания снимков экранов.
Пример использования разных форматов для одного изображения:
Если мы не используем формат WebP, то атрибут srcset можно использовать прямо в дескрипторе img без использования picture:
Даже если ссылка на favicon не указана в мета-тегах, браузер попытается загрузить его из корня сайта, а это замедлит загрузку страницы.
Такая техника может применяться и в CSS файлах:
Правильный формат и оптимальная степень сжатия изображений позволяет сократить их объем, что ускорит их загрузку.
Для уменьшения размера изображений можно использовать эффективные алгоритмы сжатия. Существуют инструменты, выполняющие дополнительное сжатие файлов JPEG и PNG без потерь и снижения качества:
- для JPEG это MozJPEG (уменьшает время до начала отрисовки за счёт манипулирования уровнями сканирования), jpegtran или jpegoptim (доступно только для Linux, выполнять с параметром --strip-all)
- для PNG Pingo, OptiPNG или PNGOUT
- для GIF Lossy GIF
- для SVG. SVGOMG
Gulp
Для пакетного сжатия изображений можно воспользоваться gulp плагином. Нужно предварительно установить nodejs и в папке из архива выполнить npm install.В файле gulpfile.js можно найти все задачи. Например задача img-optim сжимает все изображения из директории ./src/img и сохраняет сжатые файлы в папку ./output/img
Файл urls.txt используется задачей screenshots, в нем находится список страниц для создания снимков экранов.
Формат WebP
Для использования изображений в формате WebP необходимо использовать согласование содержания (англ. content negotiation) с помощью заголовков Accept, либо использовать дескриптор HTML5 - picture.Пример использования разных форматов для одного изображения:
На устройствах с большим размером окна браузера (1024 px и более) будет использовано full-shot изображение. Для меньших устройств будет использовано close-up изображение. Будет отображаться изображение WebP в браузерах которые поддерживают этот формат, в остальных будет отображаться изображение в формате JPG.<picture><sourcemedia="(min-width: 1024px)"srcset="opera-fullshot.webp"type="image/webp"><sourcemedia="(min-width: 1024px)"srcset="opera-fullshot.jpg"><sourcesrcset="opera-closeup.webp"type="image/webp"><imgsrc="opera-closeup.jpg" alt="The Oslo Opera House"></picture>
Если мы не используем формат WebP, то атрибут srcset можно использовать прямо в дескрипторе img без использования picture:
<article><img srcset="https://s3-us-west-2.amazonaws.com/s.cdpn.io/298/wolf_20131015_003_1400.jpg 1400w,https://s3-us-west-2.amazonaws.com/s.cdpn.io/298/wolf_20131015_003_700.jpg 700w,https://s3-us-west-2.amazonaws.com/s.cdpn.io/298/wolf_20131015_003_400.jpg 400w"sizes="(min-width: 700px) 700px, 100vw"alt="A woman reading"></article>
base64
Очень маленькие изображения, например favicon, можно вставлять на страницу в виде полного base64 кода.Даже если ссылка на favicon не указана в мета-тегах, браузер попытается загрузить его из корня сайта, а это замедлит загрузку страницы.
Такая техника может применяться и в CSS файлах:
.icon-foobar {Нет смысла применять этот метод к большим изображением, даже к favicon большого размера.
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII%3D');
}

Комментарии
Отправить комментарий