Инструкция, оптимизация изображений на сервере.
От SEO специалистов поступила задача по оптимизации картинок на сервере.
Хотел изначально сделать скриптом с помощью утилиты find, в статье указал несколько вариантов.
Оптимизировать, уменьшить, сжать изображение без потерь качества можно с помощью программ optipng и jpegoptim.
Но не стоит забывать, что сильное сжатие испортит изображение!
Пример делаю на системе FreeBSD.
С начало нам нужно установить на сервере программы.
# cd /usr/ports/graphics/optipng && make install clean # cd /usr/ports/graphics/jpegoptim && make install clean
Описания ключей обработки optipng:
-o6 Уровень сжатия изображения, (уровень от 1 до 7). --strip all Удаляем метаданные.
Команда оптимизации изображений png.
optipng -o6 -strip all /www/site.local/uploads/2016/47/78df4.png
Описания ключей обработки jpegoptim:
--all-progressive jpeg изображения в прогрессивный jpeg. --strip-all Удаляем комментарии у изображений. -t Смотрим результат. -p Оставляем время создания файла. -m96 Устанавливаем сжатие изображения, (уровень 0 до 100)
Оптимизация jpeg изображений.
jpegoptim --all-progressive --strip-all -tpm96 /www/site.local/uploads/2015/45/145.jpg
Примеры использования.
Простой способ рекурсивно пробежать по директориям с картинками.
optipng -o6 -strip all /www/site.local/uploads/20[0-9][0-9]/[0-9][0-9]/*.png jpegoptim --all-progressive --strip-all -tpm96 /www/site.local/uploads/20[0-9][0-9]/[0-9][0-9]/*.jpg
Либо есть еще такой способ, find ищет изображения и после передает обработку изображений через xargs утилитам optipng, jpegoptim.
find /www/site.local/uploads/2017/ -type f -name "*\.png" | /usr/bin/xargs optipng -strip all -o6 find /www/site.local/uploads/2017/ -type f -name "*\.jpg" | /usr/bin/xargs jpegoptim --strip-all --all-progressive -ptm95
Если изображений много на сервере, то лучше все таки через find искать картинки.
Добавлю простенький скрипт.
#!/bin/sh SE_PNG=`find /www/site.local/uploads/ -type f -name "*\.png"` for j in $SE_PNG do optipng -strip all -o6 $j done exit 0
Вот вся оптимизация изображений на сервере, разумеется я указал не все ключи от этих утилит optipng и jpegoptim.
Похожий материал:
nginx webp правило отображения картинок.
Примеры find.