На сайте используется ряд изображений с высоким разрешением от 2500px.
pageSpeed конечно же ругается, поэтому пытаюсь использовать современный атрибут srcset
для изображений:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
img {
max-width: 100%;
margin: auto;
}
Для высоко разрешения так и использую в 2500px, а для обычного делаю эти же картинки
в уменьшенным в 2 раза разрешением.
Пример записи img для реального проекта:
В итоге по всем "возможностям" pagespeed ругается на эти изображения и ругается на
img-1-2x.jpg Т.е. на телефонах вместо того чтобы отображать img-1-1x.jpg отображается
большая картинка.
И такие проблемы только для моб. девайсов:
Для десктопа все отлично, скорость 90+!
По совету использую Echo.js lazy load, но этот lazy load на телефонах (особенно при
плохом интернете) не все фото грузит.
Update:
Как оказалось запись:
не валидна!
При использовании атрибута sizes запись должна быть подобна этой:
Просмотрев видеоурок с рекомендацией о сжатии изображения в squoosh.app, сделала
изображения с разрешением .webp. Подключила с использованием picture:
Изображения в формате .webp весят около 200-300 кб, это при том что в большом разрешении
около 2 Мб.
В итоге скорость на страницах упала до 10 - 13, и изображения отображаются только
в хроме. Стоит последняя версия firefox, но почему-то и в нем не отображаются картинки.
caniuse.com/#feat=picture
! Да и не всегда есть возможность оптимизировать все изображения, т.е. менять размеры
или разрешение, а таких картинок на сайте много.
Вопрос:
Почему срабатывает огромное разрешение для телефонов, а не уменьшенное при записи
Ответы
Ответ 1
Делайте картинки в формате webp и добавляйте их в ваш srcset, этого гугл от вас и
ждет, о чем вы бы и сами узнали, если бы развернули блок с ошибкой и прочитали что
там написано.
Для изображений в форматах JPEG 2000, JPEG XR и WebP используется более эффективное
сжатие, поэтому они загружаются быстрее и потребляют меньше трафика, чем изображения
PNG и JPEG.
Вариант с picture наиболее кроссбраузерный.
Сначала даете ему на съедение картинку в формате webp (как я вам в примере написал),
если он не поддерживает такой тип, то будет грузить jpg.
Но гугл пейдж спид это расценит как ХОРОШО.
Ответ 2
Вообще можете тестировать и оптимизировать изображения в gtmetrix, но если поищите
можете найти другие сайты для оптимизации, и еще в photoshop сохраните изображение
с таким качеством что бы было оптимально размер -> качество.
И еще один важный момент. Это для мобильного сайта.
Изображения которые не должны быть видны в мобильном. сделайте фоном блока(если это
возможно) в место тега img. И в определенный момент когда блок скрывается ОБЯЗАТЕЛЬНО
для этого разрешения экрана поставьте для этого блока с фоновым изображением background-image:
none;.
Вот таким образом в вы достаточно оптимизируете свою страницу.
Ответ 3
А если в src ставить уменьшенную картинку, или заглушку и после загрузки скриптом
менять из атрибута, причем можно и с проверкой разрешения окна и для мобильных брать
например из data-mobile меньшего размера? Не знаю такой вариант обманет ли pageSpeed.
Можно переписать на чистом JS
$(function() {
$('.big').html(function() {
$(this).attr("src", $(this).attr('data'));
});
});
Комментариев нет:
Отправить комментарий