WordPress webp картинки
WebP е съвременен формат на изображението, който осигурява отлична компресия без загуби на изображенията в мрежата.
В този пост ще споделя, как да направим нашият wordpress блог да работи с този формат за по-добра оптимизация с помощта на nginx и webp.

Инсталираме webp
apt-get install webp
webp е нужен за скрипта ни, който ще конвертира всичките ни картинки jpg/png във webp.
Webp script
Скрипта изглежда така:
#!/bin/bash
# Depends on cwebp
# converting JPEG images
find $1 -type f -and \( -iname "*.jpg" -o -iname "*.jpeg" \) -exec bash -c 'webp_path=$(sed 's/\$/.webp/' <<< "$0");
if [ ! -f "$webp_path" ]; then
cwebp -quiet -q 90 "$0" -o "$webp_path";
fi;' {} \;
# converting PNG images
find $1 -type f -and -iname "*.png" -exec bash -c 'webp_path=$(sed 's/\$/.webp/' <<< "$0");
if [ ! -f "$webp_path" ]; then
cwebp -quiet -lossless "$0" -o "$webp_path";
fi;' {} \;
Слагаме го в крон и го правим да се пуска 1 път на ден. Пуска се ето така :
/root/webp.sh /var/www/saitani.com
Webp mime type
В /etc/nginx/mime.types добавяме :
image/webp webp;
и рестартираме nginx.
Nginx vhost
Конфигурацията на nginx vhost-a е следната:
Най-горе добавяме map блок:
map $sent_http_content_type $expires {
default off;
text/html epoch;
text/css max;
application/javascript max;
~image/ max;
}
map $http_accept $webp_suffix {
default "";
"~*webp" ".webp";
}
А по-долу добавяме следните два блока които касаят png/jpg разширенията :
location ~* ^(/wp-content/.+)\.(png|jpg)$ {
add_header Vary "Accept-Encoding";
add_header Cache-Control "public, no-transform";
try_files $uri$webp_suffix $uri =404;
}
location ~* ^(/.+)\.(png|jpg)$ {
add_header Vary "Accept-Encoding";
add_header Cache-Control "public, no-transform";
try_files $uri$webp_suffix $uri =404;
}
Идеята като цяло е следната ; ако браузъра ни поддържа webp то nginx-a ще ни сервира картинките във webp формат.
Ако не , то ще ни сервира оригиналния им формат – png или jpg.
Тестване
Отваряме Developer -> Developer Tools на google chrome, отиваме на Network и рефрешваме сайта. Ако всичко е ок, в полето type трябва да виждаме всичките ни изображения във webp формат.

Като цяло това е по темата за WordPress webp images
10x адаш!