Автоматическая оптимизация изображений сайта

Автоматическая оптимизация изображений сайта

204
05.10.2018

Последние несколько лет я достаточно тесно сотрудничаю с сео-специалистами в продвижении сайтов на базе 1С-Битрикс. Одной из первых задач от сеошников является приведение работы сайта к зеленым показателям в Google Page Speed. В 90% случаев, сайты, поднятые на готовых решениях, уже удовлетворяют всем требованиям, кроме оптимизации изображений и наличия несжатых css и js файлов.

Сегодня покажу на примере, как настроить автоматическое сжатие изображений.

Для оптимизации изображений использую скрипт zImageOptimizer. Скрипт устанавливается на сервер вместе со всеми необходимыми ему зависимостями.

При вызове скрипта доступны следующщие опции (опции можно комбинировать):

Установка скрипта оптимизации на сервер

Для установки скачиваем файл в домашнюю папку пользователя, являющегося владельцем всех файлов сайта, т.е. в случае работы с BitrixVM - /home/bitrix:

wget https://raw.githubusercontent.com/zevilz/zImageOptimizer/master/zImageOptimizer.sh -O
	/home/bitrix/zImageOptimizer.sh

Установка зависимостей может быть выполнена 2 вариантами - при запуске скрипта - скрипт предложит установить все зависимсти автоматически, либо можно установить все самому. Процесс ручной установке описан на домашней странице скрипта. Для автоматической установки всех зависимостей, запускаем скрипт:

sudo bash zImageOptimizer.sh -c

Параметр "-c" означает, что скрипт покажет установленный софт и спросит об установке отсутствующих пакетов. Нажмите 1 и Enter, чтобы выбрать вариант "1. Install dependences and exit", установка запустится. После установки всех зависимостей, можно повторно вызвать эту же команду, чтобы убедиться, что все компоненты установлены - у всех компонентов будет статус "FOUND".

Только первый запуск скрипта нужно выполнять с root-правами, чтобы скрипт имел возможность установить недостающие компоненты. После того нужно переавторизоваться под пользователем, владельцем файлов сайта:

su bitrix

Проверяем, что переавторизация прошла успешно:

whoami

Теперь можно переходить к процедуре оптимизации изображений на сайте.

Предварительно настоятельно рекомендую сделать бекап сайта - мало ли что-то пойдет не так. Это можно сделать либо штатным средствами bitrix, либо воспользоваться командой:

rsync -avh --include '*/' --include '*.jpg' --include '*.png' --exclude '*' /home/bitrix/site.com/ /home/bitrix/backup/site-com-images/

Чтобы откатиться до бекапа, нужно выполнить команду:

rsync -a /home/bitrix/backup/site-com-images/ /home/bitrix/site.com/

Оптимизация работает в 3-х режимах: простая оптимизация, оптимизация с использованием меток времени и оптимизация файлов, созданных за определенный период.

Оптимизация всей графики в папке

Данный вариант - самый простой и подходит, например, для разового использования. Будут оптимизированы все изображения - и те, которые еще не оптимизированы и ранее оптимизированные.

Запуск скрипта в таком варианте исполнения осуществляется командой:

bash zImageOptimizer.sh -p /путь/до/каталога/

Скрипт пропустит через несколько утилит оптимизации все файлы JPEG, PNG и GIF в указанном и вложенных каталогах. Для разовой оптимизации подходит, но не более того. Повторно сжимать графику нет смысла, потому что сжатия не будет.

Оптимизация с использованием метки времени

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

Чтобы выполнить оптимизацию изображений в каталоге (с учетом вложенных подразделов), необходимо выполнить команду:

bash zImageOptimizer.sh -p /путь/до/каталога/ -n

В результате выполнения скрипта в указанном каталоге будет создан файл метки и, при повторном запуске, будут оптимизированы только новые файлы. При этом, если в скрипт передать каталог уровнем выше, то метка учитываться не будет, т.к. файл метки не будет найден. Чтобы этого избежать, можно указать файл метки вручную:

bash zImageOptimizer.sh -p /путь/до/каталога/ -n -m /home/bitrix/site_name/.timemarker

Оптимизация файлов, созданных за определённый промежуток времени

Это еще один вариант разового ручного запуска. Таким образом, можно организовать сжатие без создания дополнительных меток. Например, чтобы сжать изображения, появившиеся на сервере за прошедшие сутки, можно выполнить команду:

bash /home/bitrix/zImageOptimizer.sh -p /путь/до/каталога/ -t 1d

При этом, параметры могут быть заданы в зависимости от динамичности наполнения сайта данными:

Такой метод подходит для разового запуска, но не годится для регулярной оптимизации, т.к. уже оптимизированные файлы будут новее, чем время запуска предыдущего скрипта, поэтому они снова попадут под скрипт оптимизации.

Таким образом, для регулярной оптимизации подходит только вариант с временными метками - он наиболее удобный и наиболее надежный.

Регулярный запуск скрипта по крону

Для автоматизации процесса оптимизации изображений, выполнение скрипта нужно сделать самостоятельным и регулярным. Для этого запуск скрипта нужно поместить в cron. Например, запуск каждые сутки в 3 ночи будет выглядеть так:

0 3 * * * bash /home/bitrix/zImageOptimizer.sh -p /путь/до/каталога/ -q -n -m /home/bitrix/sitename/.timemarker

Такая запись позволит через просмотр списка файлов домашней папки bitrix-пользователя, увидеть, когда была произведена последняя оптимизация и убедиться, что скрипт работает.


Источник: https://glashkoff.com/kak-optimizirovat-izobrazheniya-sayta/


Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку