Изображения (фото) товаров в WebP автоматически

Изображения (фото) товаров в WebP автоматически для Shop-Script

Сохранение всех фото на лету в формате webp

Отзывов пока нет

7 дней бесплатно

Чтобы попробовать бесплатно, откройте плагин в своем «Инсталлере». Бесплатный период доступен только в облаке Webasyst.

Ваш отзыв
Установок
< 10
Разработчик
Поддержка

Плагин «Изображения WebP» для Shop-Script

Плагин автоматически переводит фотографии товаров в формат WebP, чтобы снизить вес изображений и ускорить загрузку страниц. В результате каталог открывается быстрее, карточки товаров загружаются стабильнее, а сервер получает меньшую нагрузку. Если перекодирование в WebP даёт файл крупнее исходного (часто у уже сильно сжатых JPEG), плагин подбирает более низкое качество или оставляет исходник, чтобы не «раздувать» размер файла.

Ключевые преимущества

  • Автоматическая конвертация новых фото: изображения у товаров, загруженные в админке, сразу сохраняются в WebP (при включенной настройке).
  • Конвертация при импорте товаров: фотографии, добавленные в процессе импорта, также автоматически переводятся в WebP.
  • Пакетная обработка существующей базы: уже загруженные изображения можно конвертировать через CLI-команду (с опциональным «разрешением» в настройках — см. ниже).
  • Контроль размера: при пакетной и одиночной конвертации приоритет у варианта WebP, который не больше исходного файла; иначе исходник сохраняется.
  • Проверка окружения в админке: в настройках отображается, доступны ли GD (imagewebp) и Imagick (WEBP), и даны примеры команд установки пакетов.
  • Экономия места: в большинстве случаев итоговые файлы занимают меньше диска при выбранном качестве без заметной потери визуального качества.

Что делает плагин

  • Конвертирует основные изображения товаров в WebP.
  • Конвертирует миниатюры и служебные версии изображений.
  • Поддерживает пакетную обработку по расписанию (cron) при включённой настройке разрешения CLI/cron.
  • Позволяет настраивать качество, режим lossless (без потери пикселей относительно растра), лимит обработки за запуск.
  • Опционально не трогает GIF (анимация сохраняется).

Настройки плагина

Настройка Назначение
Проверка окружения (GD / Imagick) Информационный блок: установлены ли средства вывода WebP; если нет — подсказки и примеры команд (apt/dnf и т.д.).
Конвертировать новые и замененные фото в WebP сразу Включает автоматическую обработку новых изображений при загрузке в админке.
Качество WebP (1–100) Стартовое качество в режиме с потерями. Если при нём WebP получается крупнее исходника, плагин последовательно снижает качество, пока размер не станет не больше исходного; если не удаётся — файл не заменяется.
WebP без потери качества (lossless) Режим как lossless в Squoosh: пиксели совпадают с декодированным растром; файлы часто крупнее. Для настоящего lossless нужны PHP 8.1+ с GD и константой IMG_WEBP_LOSSLESS либо Imagick с WEBP; иначе используется запасной вариант. В описании в админке перечислено, что может понадобиться доустановить на сервере.
Лимит изображений за один запуск CLI Количество файлов, обрабатываемых за один проход. Помогает контролировать нагрузку и время выполнения PHP.
Разрешить пакетную конвертацию по cron / CLI Условие для планировщика: пока выключено, команда php cli.php shop webpimagesConvert сразу завершается без обработки фото — строку в crontab можно оставить и включать массовую обработку только когда нужно.
Писать лог запусков CLI/cron в файл Файл wa-log/webpimages-cli.log. Работает и для полной строки */15 * * * * php …/cli.php …, и для короткой команды без >> в crontab.
Подробный лог CLI При включённой записи в файл: вкл. — строки OK/SKIP по каждому изображению и расширенная диагностика пустой очереди; выкл. — только краткая сводка запуска.
Конвертировать при сохранении товара Дополнительная обработка при сохранении карточки товара. Для больших каталогов удобнее использовать CLI/cron.
Не конвертировать GIF Позволяет оставлять анимированные GIF без изменений.
Запуск из cron (только CLI) Справка в админке: примеры команд для crontab и панелей. Полный чек-лист (пользователь, PATH, wa-log, SSH) — в файле description.html в каталоге плагина.

Пакетная обработка уже загруженных фото

Запустите команду из корня сайта (предварительно включите в настройках плагина «Разрешить пакетную конвертацию по cron / CLI», иначе команда завершится без конвертации):

php cli.php shop webpimagesConvert

Команда обрабатывает изображения поэтапно (с учётом лимита за запуск), поэтому её удобно запускать регулярно через cron.

Рекомендуемый простой cron (часто достаточно в панели)

Одна строка: полный путь к cli.php, команда php из PATH планировщика (не php-cgi). Подходит для режима «полная строка crontab» в ISPmanager и аналогов:

*/15 * * * * php /ПУТЬ_К_КОРНЮ_САЙТА/cli.php shop webpimagesConvert

Если в панели отдельно задаются расписание и команда — в поле команды только:

php /ПУТЬ_К_КОРНЮ_САЙТА/cli.php shop webpimagesConvert

Если php не находится, замените на полный путь к CLI, например /opt/php83/bin/phpphp -v должно быть (cli)).

Нужна ли длинная команда с cd, логом и php-cgi?

Обычно нет. Если у вас уже обрабатывает задание вида */15 * * * * php /полный/путь/cli.php shop webpimagesConvert, дополнительно ничего не требуется. Строка с cd и перенаправлением в wa-log/webpimages-cron.logпо желанию (удобно для отладки), а не обязательное условие.

php-cgi в cron для cli.php использовать нельзя — будет «Run from CLI only», HTML и предупреждение про force-cgi-redirect. В длинной команде вместо php-cgi укажите тот же CLI, что и для простого варианта, например:

cd '/ПУТЬ_К_КОРНЮ_САЙТА' && '/opt/php83/bin/php' cli.php shop webpimagesConvert >> '/ПУТЬ_К_КОРНЮ_САЙТА/wa-log/webpimages-cron.log' 2>&1

(подставьте свои пути; каталог wa-log создайте заранее).

Дополнительно: вариант с cd и логом — если простой не срабатывает или нужен файл лога, см. серые блоки в настройках плагина «Запуск из cron» (wa-log/webpimages-cron.log).

Планировщик в панелях (ISPmanager, cPanel, Plesk, DirectAdmin и др.)

Сначала используйте простой вариант выше. Интервал (каждые 15 минут и т.д.) задаётся в панели отдельно, если форма это поддерживает. Не открывайте cli.php в браузере — только запуск из планировщика/SSH. Актуальные строки с вашим путём к сайту — в админке плагина.

  • ISPmanager (ispmgr): Планировщик → новое задание. Режим «полная строка crontab» / русский тип запуска — вставьте зелёную строку из настроек плагина с */15 * * * *. Если поля «расписание» и «команда» раздельные — в команду только php …/cli.php shop webpimagesConvert (без пяти полей времени).
  • cPanel: Advanced → Cron Jobs → Add New Cron Job: расписание (например Once per fifteen minutes) + в Command простую команду или полную строку — в зависимости от формы.
  • Plesk: Tools & Settings → Scheduled Tasks или задачи домена: расписание + команда (сначала простой вариант).
  • DirectAdmin: Advanced Features → Cron Jobs.

Подробный чек-лист: пользователь cron, PATH, права на wa-data, каталог wa-log, проверка по SSH — в разделе «Cron и CLI: чек-лист» ниже на этой странице.

Cron и CLI: чек-лист

  • Только PHP CLI, не php-cgi. Для cli.php Webasyst нужен интерпретатор командной строки (php). Если в cron указать php-cgi (как в ISPmanager иногда подставляется путь к CGI), получите «Run from CLI only», заголовок Content-type: text/html и предупреждение про CGI security. Используйте бинарник php из того же каталога: например /opt/php83/bin/php, а не /opt/php83/bin/php-cgi. Проверка: /opt/php83/bin/php -v — в первой строке должно быть (cli).
  • Задача должна выполняться от пользователя, у которого есть доступ к файлам сайта и wa-data (как у сайта). Включите в настройках плагина «Разрешить пакетную конвертацию по cron / CLI», иначе команда завершится без обработки.
  • Почему «в фоне не работает»: у cron пустой PATH — команда php может указывать на другой интерпретатор без расширений или вовсе отсутствовать. Узнайте путь: зайдите по SSH от того же пользователя, что и cron, выполните which php или php -v. В строке crontab используйте полный путь, например /usr/bin/php8.2.
  • Пользователь cron должен читать файлы сайта и wa-data (часто это пользователь веб-сервера или отдельный аккаунт хостинга). Если cron от root, а файлы от www-data — возможны отказы в доступе.
  • Создайте каталог wa-log в корне сайта, если его нет — иначе перенаправление вывода в лог не сработает.
  • Проверка вручную по SSH (должен быть вывод «Output encoding» и строки OK/SKIP):
    cd /ПУТЬ_К_КОРНЮ_САЙТА && php cli.php shop webpimagesConvert
    Подставьте реальный каталог, где лежит cli.php Webasyst (корень установки).
  • Отдельные PHP-скрипты в корне не используйте — только стандартный cli.php Webasyst.

Результат для магазина

  • Быстрее загружаются страницы каталога и карточки товаров.
  • Снижается средний вес изображений и расход дискового пространства (без принудительного увеличения размера файлов относительно уже оптимизированных исходников).
  • Новые фото и фото из импорта автоматически приводятся к современному формату WebP там, где это даёт выигрыш по размеру.

Рекомендации перед запуском

  • Сделайте резервную копию перед массовой обработкой.
  • Для первого запуска установите лимит 20–50 изображений.
  • После проверки стабильности постепенно увеличивайте лимит.
  • Проверьте блок «Проверка окружения» в настройках и при необходимости доустановите GD с WebP или Imagick.

webictus

Все продукты этого разработчика