Как оптимизировать изображения на сервере

Львиную долю интернет-трафика сегодня составляют изображения. Опытные веб-разработчики следят за тем, чтобы их сайты не только отрисовывались, но и загружались быстро. Соответственно, часто возникает необходимость оптимизации изображений прямо на сервере. Но что делать, если ваш сайт существует не первый день, и в файловую систему загружены уже сотни, тысячи изображений?

Выход есть.

Повторюсь, что речь у нас снова идёт как минимум о виртуальном сервере, к которому вы имеете полный доступ по SSH.

Будем исходить из того, что основные типы изображений, которые нам необходимо оптимизировать — это JP[E]G и PNG.

  1. Установим две утилиты для оптимизации изображений.
    sudo apt-get install jpegoptim optipng -y
  2. Перейдём в папку, где у нас хранятся изображения.
    cd /home/codemotion/www/codemotion.ru/wp-content/uploads
  3. Запустим поочередно два процесса оптимизации для каждого из типов изображений.
    find . -name '*.jpg' | xargs jpegoptim -m85 --strip-all

    find . -name '*.png' -print -exec optipng -o5 -quiet -keep -preserve {} \;

Не забудьте проверить права на файлы, т.к. jpegoptim имеет обыкновение их менять.

cd ./uploads && chown -R www-data:www-data * && find . -type f -name "*.jpg" -exec chmod 0644 {} \;

Вот и всё.

Таким образом можно сохранить достаточно места на жёстком диске сервера. По моему опыту процентов 30% от исходной папки с изображениям. Если речь идёт о нескольких гигабайтах, то, согласитесь, это достаточно значительный размер.

Пользователям маков рекомендует программу JPEGMini Pro, которая при конвертации задействует все ядра компьютера. Ей можно оптимизировать не только изображения с сайтов, но и фотографии.