Формат WebP, разработанный Google, обеспечивает в среднем на 25–35% меньший размер изображений по сравнению с JPEG и PNG без ощутимой потери качества. Это напрямую влияет на скорость загрузки страниц, особенно на мобильных устройствах, где каждый килобайт имеет значение. Начиная с версии WordPress 5.8, поддержка WebP встроена в ядро, но её активация и корректная работа требуют дополнительных шагов.
Для загрузки WebP-файлов через медиабиблиотеку необходимо убедиться, что сервер поддерживает формат. Это зависит от установленной версии библиотеки GD или Imagick. Например, GD должна быть версии не ниже 2.1, а Imagick – с поддержкой WebP на уровне сборки. Проверить наличие поддержки можно с помощью вызова phpinfo() или функции wp_image_editor_supports().
Даже при активной поддержке WebP загрузка изображений может быть заблокирована фильтрами WordPress. Чтобы разрешить загрузку, добавьте следующий фильтр в файл functions.php вашей темы:
function enable_webp_upload($mimes) {
$mimes['webp'] = 'image/webp';
return $mimes;
}
add_filter('upload_mimes', 'enable_webp_upload');
Для максимального эффекта рекомендуется конвертировать существующие изображения в WebP и использовать их через атрибут srcset или через механизм адаптивной загрузки, встроенный в WordPress. Плагины вроде WebP Express или Imagify автоматизируют этот процесс и обеспечивают обратную совместимость с браузерами, не поддерживающими WebP.
Проверка текущей поддержки WebP на хостинге
Для начала необходимо убедиться, что сервер поддерживает работу с изображениями в формате WebP. Это зависит от установленной библиотеки GD или Imagick, а также версии PHP и модуля libwebp.
Создайте файл phpinfo.php с содержимым:
<?php phpinfo(); ?>
Откройте его в браузере и найдите разделы GD и Imagick. В блоке GD должна присутствовать строка WebP Support enabled. В Imagick ищите поддержку формата WebP в списке доступных форматов.
Альтернативный способ – выполнить PHP-скрипт, проверяющий наличие поддержки:
<?php
if (function_exists(‘imagewebp’)) {
echo ‘GD поддерживает WebP’;
} else {
echo ‘GD не поддерживает WebP’;
}
?>
Если используется Imagick:
<?php
$imagick = new Imagick();
$formats = $imagick->queryFormats(‘WEBP’);
echo in_array(‘WEBP’, $formats) ? ‘Imagick поддерживает WebP’ : ‘Imagick не поддерживает WebP’;
?>
Для Apache-подобных серверов проверьте наличие модуля mod_rewrite и директив AddType image/webp .webp в конфигурации. Для Nginx – правильную настройку MIME-типов и директив try_files.
Если поддержка отсутствует, обратитесь к хостинг-провайдеру с запросом на установку нужных расширений или переходите на VPS, где сможете настроить окружение самостоятельно.
Настройка загрузки WebP-изображений в медиабиблиотеку
По умолчанию WordPress может блокировать загрузку изображений в формате WebP, если не активирована соответствующая поддержка на сервере. Чтобы устранить это ограничение, выполните следующие шаги:
- Убедитесь, что используется WordPress версии 5.8 или выше – именно с этой версии реализована базовая поддержка WebP.
- Проверьте, активны ли модули
GD
илиImagick
в PHP. WebP поддерживается только при наличии одного из них. - Если после обновления формат WebP всё ещё не принимается, добавьте MIME-тип вручную. Откройте файл
functions.php
активной темы и добавьте:
function allow_webp_uploads($mime_types) {
$mime_types['webp'] = 'image/webp';
return $mime_types;
}
add_filter('upload_mimes', 'allow_webp_uploads');
- После добавления кода проверьте загрузку изображений через «Медиафайлы → Добавить новый».
- Для корректного отображения миниатюр в админке удостоверьтесь, что библиотека обработки изображений (GD или Imagick) действительно поддерживает WebP. Это можно проверить с помощью функции
gd_info()
или командойphp -i | grep Imagick
в консоли. - Если используется Imagick, иногда требуется установка дополнительных пакетов, например
libwebp-dev
и перекомпиляция Imagick с поддержкой WebP.
После настройки изображения WebP можно загружать и использовать как обычные: вставлять в записи, задавать как миниатюры и фоновое оформление.
Конвертация существующих изображений в формат WebP
Для массового перевода изображений на WebP рекомендуется использовать плагин WebP Express или Converter for Media. Оба инструмента интегрируются с медиатекой WordPress и автоматически создают копии файлов в WebP при загрузке страниц.
Перед началом конвертации выполните резервное копирование директории wp-content/uploads. Это позволит избежать потери данных при сбоях в процессе преобразования.
Оптимальный метод конвертации – использование cwebp через командную строку. Пример команды:
find . -type f \( -iname "*.jpg" -o -iname "*.png" \) -exec cwebp -q 80 {} -o {}.webp \;
Ключ -q 80 устанавливает качество сжатия. Значение 80 – сбалансированный выбор между размером файла и визуальным качеством.
Если сервер не поддерживает exec() или нет доступа к оболочке, используйте WP-CLI с установленным пакетом imagify или подключите внешние API, например ShortPixel, для удалённой обработки.
После конвертации важно убедиться, что WebP версии действительно используются. Для этого проверьте HTML-код страниц: изображения должны быть вставлены через тег <picture> или через фильтры, подставляющие WebP в зависимости от поддержки браузером.
Для повышения совместимости активируйте опцию «Serve WebP images to supported browsers» в плагине или настройте правило в .htaccess:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} \.(jpe?g|png)$
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule ^(.*)\.(jpe?g|png)$ $1.$2.webp [T=image/webp,E=accept:1]
</IfModule>
Контролируйте результаты с помощью инструментов браузера и Lighthouse. Это позволит оценить экономию трафика и выявить недоступные WebP-версии.
Установка и настройка плагинов для WebP
ShortPixel Image Optimizer – один из самых эффективных плагинов для автоматической конвертации изображений в WebP. После установки перейдите в Настройки → ShortPixel и в разделе Advanced активируйте опцию WebP format. Включите опцию Deliver the WebP versions of the images, выбрав метод доставки через .htaccess или с использованием тегов picture.
Imagify поддерживает автоматическую генерацию WebP и совместим с большинством кеширующих плагинов. После активации перейдите в Настройки → Imagify и включите опцию Create WebP versions of images. Чтобы включить отображение WebP, активируйте Display images in WebP format on the site. Поддерживается доставка через rewrite rules или JavaScript fallback для старых браузеров.
WebP Express предоставляет расширенные настройки и подходит для опытных пользователей. После установки зайдите в Настройки → WebP Express, выберите способ конвертации – рекомендуется cwebp при наличии поддержки на сервере. В разделе Image types to convert укажите только необходимые форматы – например, JPEG и PNG. Активируйте Enable redirection to WebP для автоматической подмены форматов при загрузке страниц.
После настройки любого из плагинов рекомендуется проверить работу через DevTools браузера: убедитесь, что изображения загружаются в формате WebP. Также важно очистить кэш сайта и CDN, если используется, чтобы изменения вступили в силу.
Обеспечение обратной совместимости с браузерами без поддержки WebP
Несмотря на широкую поддержку WebP, ряд устаревших браузеров, включая Internet Explorer и некоторые версии Safari на macOS и iOS, не способен корректно отображать изображения в этом формате. Чтобы обеспечить корректную загрузку изображений для всех пользователей, необходимо реализовать механизм резервного отображения.
- Используйте элемент
<picture>
для указания нескольких форматов одного изображения. Указывайте WebP первым, а в качестве резервного – JPEG или PNG.
<picture>
<source srcset="image.webp" type="image/webp">
<source srcset="image.jpg" type="image/jpeg">
<img src="image.jpg" alt="Описание">
</picture>
- Для фоновых изображений в CSS используйте
@supports
с проверкой на WebP:
@supports (background-image: url("image.webp")) {
.element {
background-image: url("image.webp");
}
}
@supports not (background-image: url("image.webp")) {
.element {
background-image: url("image.jpg");
}
}
- Применяйте серверную конвертацию с условием User-Agent. На Apache можно использовать модуль
mod_rewrite
с проверкой заголовков Accept:
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME}\.webp -f
RewriteRule (.+)\.(jpg|jpeg|png)$ $1.webp [T=image/webp,E=accept:1]
- Для сайтов на WordPress используйте плагин WebP Express или аналогичный, поддерживающий fallback для несовместимых браузеров.
- Проверяйте работу изображений через эмуляцию старых браузеров или используя инструменты типа BrowserStack.
Настройка отображения WebP через .htaccess и nginx
Для корректной отдачи WebP-изображений на серверах Apache настройте файл .htaccess, добавив проверку поддержки браузером формата WebP. Вставьте следующий код в корневой каталог сайта:
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} (.*)\.(jpe?g|png)$
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule (.+)\.(jpe?g|png)$ %{REQUEST_URI}.webp [T=image/webp,L]
Этот набор правил направляет запросы на существующие WebP-файлы, если браузер поддерживает данный формат. Не забудьте включить модуль mod_rewrite на сервере.
Также добавьте правильные MIME-типы, чтобы WebP правильно распознавался:
AddType image/webp .webp
Для nginx настройка требует изменения конфигурационного файла сервера. В блоке server или location пропишите условие для проверки заголовка Accept и отдачи WebP, если файл существует:
location ~* ^/(.+)\.(jpe?g|png)$ {
add_header Vary Accept;
set $webp "";
if ($http_accept ~* "image/webp") {
set $webp ".webp";
}
if (-f $request_filename$webp) {
rewrite ^/(.+)\.(jpe?g|png)$ /$1$webp break;
}
}
Обязательно добавьте в конфигурацию nginx MIME-тип:
types {
image/webp webp;
}
Эти настройки гарантируют, что сервер отдаст WebP-версию при её наличии и поддержке браузера, а при отсутствии вернёт оригинальный формат. Проверяйте права доступа к файлам и корректность путей после внедрения.
Проверка скорости загрузки сайта после внедрения WebP
Для оценки влияния формата WebP на производительность сайта используйте специализированные инструменты: Google PageSpeed Insights, GTmetrix или WebPageTest. Сравнивайте метрики до и после внедрения WebP, обращая внимание на показатели Largest Contentful Paint (LCP), First Contentful Paint (FCP) и время полной загрузки страницы.
Среднее сокращение размера изображений в формате WebP по сравнению с JPEG или PNG составляет 25-35%, что напрямую влияет на уменьшение времени загрузки. После конвертации медиафайлов проверьте скорость загрузки ключевых страниц, особенно главной и часто посещаемых разделов.
Для объективной оценки рекомендуются проводить тесты в одинаковых условиях: с аналогичной скоростью интернета и на одинаковом устройстве. Запишите результаты до и после внедрения WebP, чтобы выявить фактический прирост производительности.
Если показатели LCP не снижаются ниже 2,5 секунд, несмотря на использование WebP, проверьте кеширование, серверные настройки и оптимизацию других ресурсов (скриптов, стилей). Важен комплексный подход, так как формат изображений – лишь один из факторов влияния на скорость.
Рекомендуется автоматизировать проверку скорости с помощью CI/CD-инструментов или регулярных скриптов, чтобы отслеживать динамику производительности сайта в реальном времени и оперативно выявлять откаты.
Вопрос-ответ:
Что такое формат WebP и почему его стоит использовать на сайте WordPress?
WebP — это современный формат изображений, который обеспечивает хорошее качество при меньшем размере файла по сравнению с традиционными JPEG или PNG. Использование WebP помогает ускорить загрузку страниц, снизить расход трафика и улучшить пользовательский опыт на сайте.
Какие способы включения поддержки WebP доступны для WordPress без использования плагинов?
Поддержка WebP может быть добавлена вручную через настройку сервера, например, с помощью правил в .htaccess для Apache или конфигурации Nginx. Также можно включить соответствующие модули, которые будут автоматически отдавать WebP-версии изображений браузерам, которые их поддерживают.
Можно ли конвертировать уже загруженные изображения в WebP внутри WordPress?
Да, есть несколько плагинов, которые позволяют автоматически преобразовывать существующие изображения в формат WebP и хранить их рядом с оригиналами. После этого сайт может отдавать WebP-версии при поддержке браузера, что помогает улучшить производительность без необходимости повторной загрузки всех изображений вручную.
Какие проблемы могут возникнуть при включении WebP в WordPress и как их избежать?
Основные сложности связаны с совместимостью браузеров и возможным отсутствием поддержки на стороне хостинга. Чтобы избежать проблем, рекомендуется проверить, поддерживает ли ваш сервер отдачу WebP, а также использовать механизмы подмены изображений, которые корректно работают с разными браузерами, включая те, которые WebP не распознают.
Как включить автоматическую генерацию WebP изображений при загрузке файлов в WordPress?
Для этого чаще всего используют специальные плагины, которые при загрузке изображения автоматически создают WebP-версию и интегрируют её в медиабиблиотеку. Некоторые из таких решений поддерживают настройку формата и качества, что позволяет оптимизировать изображения под нужды сайта без дополнительных действий со стороны пользователя.
Как добавить поддержку формата WebP на сайт WordPress без плагинов?
Для включения поддержки формата WebP в WordPress без использования плагинов можно вручную настроить сервер и добавить соответствующий код в тему. Во-первых, нужно убедиться, что ваша версия PHP и сервер поддерживают работу с WebP. Затем в файле functions.php вашей темы добавьте код, который позволит загружать и обрабатывать файлы WebP так же, как и другие форматы изображений. Также можно внести изменения в .htaccess или конфигурацию сервера для правильной обработки этих файлов. Такой способ требует базовых знаний о работе с сервером и кодом, но позволяет избежать дополнительных расширений и снизить нагрузку на сайт.