Веб

WebP для скорости сайта: как ускорить загрузку и поднять позиции в поиске

Картинки — это почти всегда самая тяжёлая часть страницы. Именно из-за них сайт долго грузится, а посетитель уходит, не дождавшись. Хорошая новость: перевести изображения на формат WebP можно за один вечер, и страница похудеет на сотни килобайт без потери качества. Разбираем, как это работает, как это связано с Core Web Vitals и позициями в Google — и как внедрить WebP так, чтобы ничего не сломалось.

Ноутбук с открытым сайтом — скорость загрузки страницы во многом зависит от веса картинок
Каждый лишний килобайт картинки — это доля секунды, на которую посетитель ждёт ваш сайт. Фото: Pexels

Почему именно картинки тормозят сайт

Откройте любой современный сайт и посмотрите, из чего складывается его вес. Скрипты, шрифты, стили — всё это важно, но в большинстве случаев главный «тяжеловес» страницы — это изображения. По данным проекта Web Almanac (HTTP Archive), на изображения приходится значительная доля веса медианной страницы, а только картинки на главной странице мобильной версии тянут в среднем около 900 КБ.

В чём здесь проблема? Каждый килобайт нужно скачать по сети. На быстром Wi-Fi это незаметно, но на мобильном интернете в метро или на даче лишний мегабайт картинок легко превращается в несколько секунд ожидания белого экрана. А по статистике, чем дольше грузится страница, тем больше людей закрывают её, так и не увидев.

Суть в одной фразе

Вы не можете убрать картинки — без них сайт выглядит пусто. Но вы можете сделать так, чтобы те же самые картинки весили на четверть–треть меньше. Именно это и делает WebP.

Что даёт WebP: −25–35% к весу

WebP — это формат изображений от Google, созданный специально для веба. Его задача — отдавать ту же картинку в существенно меньшем размере. Цифры из исследований Google говорят сами за себя:

  • На 25–35% легче JPEG при одинаковом визуальном качестве (по метрике SSIM). Это касается фотографий и любых «пёстрых» изображений.
  • На 26% легче PNG в режиме без потерь. То есть логотипы, иконки и скриншоты тоже становятся компактнее без ухудшения.
  • Примерно в 3 раза легче PNG, если речь о картинке с прозрачностью (альфа-каналом) и допустимо лёгкое сжатие.

Откуда такая экономия? WebP умеет и сжатие с потерями (как JPEG), и без потерь (как PNG), и прозрачность, и даже анимацию — но использует более современные алгоритмы. Грубо говоря, это «один формат вместо трёх», который при этом упаковывает данные плотнее.

−25–35%легче JPEG (с потерями)
−26%легче PNG (без потерь)
~95–96%браузеров поддерживают WebP

Здесь важно понимать практический эффект. Если на странице 1,5 МБ картинок, перевод их в WebP способен скинуть 400–500 КБ. Для пользователя это означает, что страница покажется готовой ощутимо раньше — а вы при этом не трогали ни дизайн, ни вёрстку.

Дашборд с метриками производительности сайта на экране
Вес картинок — самый быстрый рычаг для ускорения сайта: меняешь формат, а не код. Фото: Pexels

LCP и Core Web Vitals: при чём тут SEO

Скорость сайта — это не только про удобство. Google официально учитывает её при ранжировании через набор метрик Core Web Vitals. И главная из них для картинок — это LCP (Largest Contentful Paint).

LCP измеряет, за сколько секунд отрисуется самый крупный видимый элемент в первом экране. На большинстве сайтов это именно крупное изображение — баннер в шапке, обложка статьи, главное фото товара. То есть скорость, с которой загрузится ваша главная картинка, напрямую становится одной из ключевых метрик Google.

Оценка LCPЗначениеЧто это значит
Хорошо≤ 2,5 сПользователь почти не ждёт — зелёная зона Google
Нужно улучшить2,5–4,0 сЗаметная задержка, есть риск потерять часть посетителей
Плохо> 4,0 сДолгое ожидание, страдают и UX, и позиции

Логика простая: тяжёлая главная картинка в JPEG на 600 КБ грузится дольше, чем та же картинка в WebP на 400 КБ. Перевели в WebP — LCP стал меньше — Core Web Vitals улучшились. А значит, у страницы выше шанс подняться в выдаче и не отпугнуть посетителя.

Быстрый сайт продаёт лучше медленного. WebP — один из самых дешёвых способов сделать его быстрее: вы не переписываете код, а просто отдаёте картинки легче.

Совет

Сначала найдите свой LCP-элемент (в Chrome DevTools, вкладка Performance, или через PageSpeed Insights). Чаще всего это одна большая картинка. Оптимизируйте именно её в первую очередь — эффект будет максимальным при минимуме усилий.

Как подключить WebP через <picture> с fallback

WebP поддерживают около 95–96% браузеров — практически все актуальные версии Chrome, Firefox, Edge, Safari и мобильных браузеров. Но чтобы оставшиеся проценты пользователей (например, на очень старых iPhone) тоже видели картинки, используют тег <picture> с запасным вариантом.

Принцип такой: внутри <picture> вы перечисляете несколько источников, а браузер берёт первый, который умеет открыть. Если WebP не поддерживается — он молча падает на обычный JPEG или PNG.

<picture>
  <source srcset="/img/hero.webp" type="image/webp">
  <img src="/img/hero.jpg" alt="Описание картинки"
       width="1200" height="630" loading="lazy">
</picture>

Что здесь важно:

  • <source> с type="image/webp" — это «предпочтительный» вариант. Браузер с поддержкой WebP возьмёт именно его.
  • <img> внутри — обязательный fallback. Старый браузер проигнорирует <source> и покажет JPEG.
  • width и height резервируют место под картинку и защищают от «прыжков» вёрстки (это улучшает другую метрику Core Web Vitals — CLS).
  • loading="lazy" откладывает загрузку картинок ниже первого экрана. Но не вешайте lazy на LCP-картинку — её, наоборот, нужно грузить как можно раньше.

Частая ошибка

Не ставьте loading="lazy" на главную картинку первого экрана (ваш LCP-элемент). Lazy-loading заставит браузер отложить её загрузку — и LCP, наоборот, ухудшится. Lazy нужен только для картинок, которые не видны сразу.

srcset и ретина: одна картинка под все экраны

Вторая половина оптимизации — отдавать картинку нужного размера. Нет смысла грузить изображение шириной 2000 px на телефон с экраном 400 px. Здесь помогает атрибут srcset: вы готовите несколько версий картинки, а браузер сам выбирает подходящую под экран и плотность пикселей (ту самую «ретину»).

<picture>
  <source
    type="image/webp"
    srcset="/img/photo-480.webp 480w,
            /img/photo-800.webp 800w,
            /img/photo-1200.webp 1200w"
    sizes="(max-width: 600px) 480px, 800px">
  <img src="/img/photo-800.jpg" alt="Описание"
       width="800" height="533" loading="lazy">
</picture>

Атрибут sizes подсказывает браузеру, какого размера будет картинка в макете, а srcset со значениями 480w / 800w / 1200w даёт ему выбор. Телефон возьмёт лёгкий вариант 480w, десктоп с ретиной — 1200w. Сочетание WebP + srcset — это, по сути, максимум, который можно выжать из картинок без потери качества.

Рабочее место веб-разработчика с кодом на экране
WebP плюс srcset: каждый посетитель получает картинку ровно под свой экран. Фото: Pexels

Автоматизация: CDN и плагины

Прописывать <picture> вручную для каждой картинки — нормально для небольшого лендинга, но утомительно для блога с сотнями статей. Для таких случаев есть автоматические решения:

1

Плагин для CMS

Для WordPress, Shopify, Joomla и других есть плагины (например, на базе Imagify, ShortPixel, EWWW), которые сами создают WebP-копии и подменяют картинки на лету. Вы продолжаете загружать привычные JPEG.

2

CDN с оптимизацией изображений

Cloudflare, Cloudinary, imgix и подобные сервисы отдают WebP автоматически. Когда браузер запрашивает картинку, он присылает заголовок Accept; если в нём есть image/webp, CDN отдаёт WebP, если нет — оригинал.

3

Отдача с сервера

На своём сервере (Nginx/Apache) можно настроить правило: при наличии файла .webp и поддержке у браузера — отдавать его вместо .jpg. Это контент-негоциация по тому же заголовку Accept.

Все три подхода объединяет одна идея: сервер сам решает, какой формат отдать конкретному браузеру. Вам не нужно ничего менять в коде шаблонов — оптимизация происходит на уровне доставки.

Как массово конвертировать сайт в WebP

Прежде чем подключать автоматику, нужно получить сами WebP-файлы. Если у вас уже есть готовая папка картинок (или вы делаете это разово), самый быстрый путь — пакетный онлайн-конвертер: загрузили десяток JPEG/PNG, скачали WebP архивом, без установки программ.

Переведите свои картинки в WebP за пару минут

Бесплатные конвертеры FormatZ сожмут ваши JPEG и PNG в WebP прямо в браузере — без установки и регистрации. Загрузите пачку файлов и скачайте результат архивом.

Конвертировать JPG в WebP

Для скриншотов, логотипов и графики с прозрачностью используйте конвертер PNG → WebP — он сохранит чёткость и альфа-канал. А если позже понадобится вернуть универсальный формат (например, для редактора, который не открывает WebP), пригодится обратное преобразование WebP → JPG. Полный список доступен на странице всех форматов.

Чек-лист внедрения

Соберём всё в короткий план, который можно выполнить по пунктам:

  • Найдите LCP-элемент. Через PageSpeed Insights или DevTools определите главную картинку первого экрана и начните с неё.
  • Сконвертируйте картинки в WebP. Фото — из JPEG, графику и прозрачность — из PNG. Можно пакетно через онлайн-конвертер.
  • Подключите через <picture>. Обязательно с <img>-fallback в JPEG/PNG для совместимости.
  • Добавьте srcset и sizes для адаптивных и ретина-экранов, где это уместно.
  • Проставьте width/height у всех картинок, чтобы избежать «прыжков» вёрстки (CLS).
  • Используйте loading="lazy" для картинок ниже экрана — но не для LCP-картинки.
  • Включите автоматику. Плагин CMS или CDN с отдачей WebP по заголовку Accept.
  • Проверьте результат. Повторно прогоните PageSpeed Insights — LCP и общий вес страницы должны упасть.
График аналитики посещаемости и скорости сайта после оптимизации
После перехода на WebP проверьте метрики снова — вес страницы и LCP должны пойти вниз. Фото: Pexels

Это та редкая оптимизация, где соотношение «усилие/результат» почти идеальное: один формат, несколько строк разметки, минус сотни килобайт и плюс к скорости, удобству и SEO одновременно.

WebP легче JPEG на 25–35% и PNG (без потерь) на 26% при том же качестве. Так как на картинки приходится значительная часть веса страницы, перевод изображений в WebP часто сокращает общий вес страницы на сотни килобайт и заметно ускоряет загрузку — особенно на мобильном интернете.
Косвенно — да. Скорость загрузки входит в Core Web Vitals Google, а метрика LCP (Largest Contentful Paint) часто измеряется именно по главной картинке. Более лёгкие изображения улучшают LCP, а Core Web Vitals — один из факторов ранжирования. Плюс быстрый сайт повышает конверсию и удержание.
LCP (Largest Contentful Paint) — это время, за которое отрисуется самый крупный видимый элемент экрана. Очень часто это большая картинка в шапке или баннер. Хороший LCP — до 2,5 секунды. Если эта картинка тяжёлая, LCP растёт; если перевести её в WebP и уменьшить вес, LCP падает.
WebP поддерживают около 95–96% браузеров. Для остальных используют тег picture: внутри него source с type image/webp и обычный img с JPEG или PNG как запасной вариант. Браузер сам выберет формат, который умеет открыть, так что ничего не сломается.
Несколько путей: онлайн-конвертер для разовой пакетной конвертации (например, JPG → WebP и PNG → WebP на FormatZ), плагин для CMS (WordPress, Shopify и др.), который сам отдаёт WebP, или CDN с автоматической оптимизацией изображений на лету по заголовку Accept браузера.