Оптимизация картинок и конвертация в webp/avif - автоматически и без сторонних сервисов
От: Dev2Fun
Бесплатно
Заказать установку
Дата публикации:
12.05.2017
Число установок:
Более 1000 раз
Дата обновления:
01.09.2026
Включает в себя:
Мастера создания (установка), Модуль
Последняя версия:
0.11.16
В рамках SEO все продвигаемые проекты оптимизируют картинки и конвертируют в webp/avif, для браузеров поддерживающих webp/avif.
С этим модулем ваши картинки будут оптимизироваться и/или конвертироваться в webp/avif автоматически.
С этим модулем поисковые системы будут ещё сильней любить ваш сайт
Модуль также доступен на
Что оптимизирует модуль:
Консольный скрипт для конвертации:
/bitrix/modules/dev2fun.imagecompress/console/convert.php
Консольный скрипт для очистки кэша страниц конвертаций:
/bitrix/modules/dev2fun.imagecompress/console/cache-delayed-delete.php
Как отключить модуль во время обмена и синхронизаций:
Решение частых вопросов
Вопрос: Как очистить сконвертированные картинки.
Ответ: Вам нужно сделать следующие действия:
1. Очистить таблицы:
DELETE FROM b_d2f_imagecompress_images_to_converted;
DELETE FROM b_d2f_imagecompress_images_converted;
(запросы можно выполнить на странице /bitrix/admin/sql.php?lang=ru&del_query=Y)
2. Удалить файлы webp через админку или консоль: rm -rf <path_to_site>/upload/resize_cache/webp
3. Очистить кеш полностью (через админку) или только html в консоле: rm -rf <path_to_site>/bitrix/html_pages
Вопрос: Можно ли восстановить исходные картинки при их оптимизации?
Ответ: В бесплатной версии модуля, при оптимизации, исходная картинка заменяется на оптимизированную версию. Тем самым восстановить исходную картинку не возможно.
Вам следует сделать бэкап папки upload перед началом оптимизаций.
Вопрос: Можно ли восстановить исходные картинки при их конвертации в webp/avif?
Ответ: При конвертации восстановить исходные картинки можно. Для этого необходимо отключить конвертацию в настройках модуля и сбросить кэш.
Вопрос: Что делать, если возникли проблемы?
Ответ: При любых проблемах следует писать на почту или
С этим модулем ваши картинки будут оптимизироваться и/или конвертироваться в webp/avif автоматически.
С этим модулем поисковые системы будут ещё сильней любить ваш сайт

Модуль также доступен на
Что оптимизирует модуль:
- картинки jpeg
- картинки png
- файлы pdf
- картинки gif
- картинки svg
- картинки jpeg
- картинки png
- поддержка мультисайтовости
- модуль использует рекомендуемые google: jpegoptim, optipng, gs, svgo, gifsicle, cwebp, imagick
- сжатие картинок в 5-10 раз
- автоматическая конвертация картинок в webp/avif
- конвертация в webp/avif "на лету"
- пройдете анализ
- автоматическая оптимизация (на лету)
- оптимизация картинок при ресайзе (на лету)
- не использует сторонние сервисы
- не использует curl
- почти не нагружает сервер
- оптимизирует без грязи
- освободится значительное кол-во места на диске (в 5-10 раз!)
- progressive jpeg
- возможность оптимизации через консоль (в фоне)
- гибкие настройки
- поддержка битрикс24
- вкл/выкл автоматического уменьшение размера картинок. Можно задать максимальный размер и все картинки которые больше будут автоматически уменьшаться до этого размера.
- учитывает ориентацию оригинального файла (вертикальные остаются вертикальными, горизонатльные остаются горизонтальными)
- оптимизация картинок сохраняет оригинальные права на файлы
- оптимизация картинок сохраняет оригинальное время создание
- hitConvert - Конвертация на хитах. При обращении к картинке. Может работать совместно с режимом postConvert. Создает нагрузку при первом обращении к картинке.
- postConvert - Конвертация в самом конце формирования страницы. Конвертирует все подходящие под условия картинки. Может работать совместно с режимом hitConvert. Создает нагрузку при первом обращении к странице.
- lazyConvert (рекомендуем) - Отложенная конвертация картинок. В фоне конвертирует все найденные картинки по посещаемым страницам. Работает отдельно от всех режимов. Не создает нагрузку при заходе на страницу.
- загрузки картинки превью и детальной у элементов
- загрузки картинки в свойство FILE Image у элементов
- загрузки картинки в разделы элементов
- загрузки картинки в модуль main
- ресайзе картинки (в т.ч. кэшируемой)
- вкл/выкл оптимизация у элементов/разделов/ресайза
- можно установить качество файлов при сжатии
- можно установить степень сжатия у файлов
- вкл/выкл progressive jpeg
- можно сжать все имеющиеся картинки прям из админки
- настройки для конвертации в webp/avif
- агент конвертации картинок
- агент автоматической очистки истекшего кэша
- выбор браузеров в которых выводятся webp/avif версии картинок
- вкл/выкл проверки поддержки браузером webp/avif через заголовки
/bitrix/modules/dev2fun.imagecompress/console/optimize.php |
/bitrix/modules/dev2fun.imagecompress/console/convert.php
Консольный скрипт для очистки кэша страниц конвертаций:
/bitrix/modules/dev2fun.imagecompress/console/cache-delayed-delete.php
Как отключить модуль во время обмена и синхронизаций:
\Bitrix\Main\Loader::includeModule('dev2fun.imagecompress');
\Dev2fun\ImageCompress\Compress::setEnable(false); // отключить
\Dev2fun\ImageCompress\Compress::getEnable(); // получить состояние
|
Решение частых вопросов
Вопрос: Как очистить сконвертированные картинки.
Ответ: Вам нужно сделать следующие действия:
1. Очистить таблицы:
DELETE FROM b_d2f_imagecompress_images_to_converted;
DELETE FROM b_d2f_imagecompress_images_converted;
(запросы можно выполнить на странице /bitrix/admin/sql.php?lang=ru&del_query=Y)
2. Удалить файлы webp через админку или консоль: rm -rf <path_to_site>/upload/resize_cache/webp
3. Очистить кеш полностью (через админку) или только html в консоле: rm -rf <path_to_site>/bitrix/html_pages
Вопрос: Можно ли восстановить исходные картинки при их оптимизации?
Ответ: В бесплатной версии модуля, при оптимизации, исходная картинка заменяется на оптимизированную версию. Тем самым восстановить исходную картинку не возможно.
Вам следует сделать бэкап папки upload перед началом оптимизаций.
Вопрос: Можно ли восстановить исходные картинки при их конвертации в webp/avif?
Ответ: При конвертации восстановить исходные картинки можно. Для этого необходимо отключить конвертацию в настройках модуля и сбросить кэш.
Вопрос: Что делать, если возникли проблемы?
Ответ: При любых проблемах следует писать на почту или
| Коллеги, просим вас сообщать если у вас при работе с модулем возникнут баги/неудобства/идеи или что-то ещё. Сделаем модуль лучше все вместе. Спасибо. |
Характеристики
|
Дата публикации
|
12.05.2017 |
|
Число установок
|
Более 1000 раз |
|
Дата обновления
|
01.09.2026 |
|
Включает в себя
|
Мастера создания (установка) Модуль |
|
Последняя версия
|
0.11.16 |
|
Адаптивность
|
Да |
|
Поддержка композита
|
Да |
|
Совместимо с Сайты24
|
Да |
|
Подходящие редакции 1С-Битрикс
|
3380 3381 3382 3383 3384 3442 3443 |
|
Наличие демо-режима
|
Да |
|
Продолжительность демо-периода
|
Нет |
- * Исправлена работа агентов
* Теперь у агентов "Периодичность выполнения" работает в режиме "через заданный интервал"
* Исправлена работа конвертации в режиме cli
* Улучшена обработка невалидных путей
* Улучшена безопасность - * Улучшение безопасности
- * Улучшение безопасности при работе с exec()
* Переход с webpack.js на vite.js - * Исправлена ошибка, если GD был собран без поддержки exif
* Убрана проверка на readable и executable из под php. Теперь проверяется только на наличие версии
* Улучшена проверка доступности функции exec и необходимых серверных утилит
* Добавлена возможность сбрасывать кэш поиска картинок для конвертации
* Добавлена возможность сбрасывать кэш замены исходных картинок на webp/avif версии
* Улучшено удаление сконвертированной картинки при удалении исходной
* Значительно улучшена безопасность, при работе с exec
- * Исправлен временами встречающийся баг с неправильными путями
- * Исправлен баг, при котором не сохранялась картинка у элемента инфоблока, при оптимизации jpeg картинки
* Возвращена вероятность ошибки "Mysql query error: (2006) MySQL server has gone away (400)". Возникает при наступлении таймаута коннекта к mysql
* Исправлен баг "Dev2fun\ImageCompress\Compress::resize(): Argument #2 ($strFilePath) must be of type string, null given, called in"
* Обновление фронтенда - * Конвертация. Исправление ошибки конвертации при отсутствии хеша картинки (предложил @Elnadrion)
* Конвертация. Исправление ориентации при конвертации в webp (предложил @bxmeta)
* Конвертация. Исправление ориентации при конвертации в avif
* Оптимизация. Исправление ориентации при оптимизации при использовании jpegoptim и optipng
* Оптимизация. Исправлена ошибка "Mysql query error: (2006) MySQL server has gone away (400)"
* Оптимизация. Улучшена оптимизация. Теперь при использовании jpegoptim и optipng переносятся оригинальные права и дата создания - * Исправление выбрасывания исключения jpegoptim и других
* Конвертация. UI. Добавлен функционал указания браузеров для которых должны выводиться webp/avif версии картинок
* Конвертация. UI. Добавлен функционал вкл/выкл проверки поддержки браузером webp/avif через заголовок Accept - * Фикс багов версии 0.11.6
- * Конвертация. Теперь картинки с mime-type webp/avif и с расширениями jpeg/jpg/png не попадают в игнор, а конвертируются в webp/avif
* Конвертация. Теперь в cli всегда работает конвератация, даже если активность конвертации отключена у сайта по-умолчанию. Ранее, если у сайта по-умолчанию была отключена конверация, то в cli конвертация тоже не работала.
* Исправлен баг проверки работы интервальных агентов на кроне
* Настройки. Добавлена отдельная ошибка при проверке на доступность чтения/воспризведения у консольных утилит: jpegoptim, optipng, ps2pdf, cwebp, svgo, nodejs, gifsicle
* Оптимизация. Исправлена редкая ошибка Argument #1 ($strFilePath) must be of type string....
- * Конвертация. Добавлен агент для конвертации
* Конвертация. Добавлена возможность активировать/деактивировать агента для конвертации в настройках модуля
* Конвертация. Добавлен функционал поиска картинок для конвертации
* Конвертация. Добавлен функционал удаления конвертированных картинок
* Улучшен алгоритм проверки, что интервальные агенты работают через cron - * Исправлен баг Non-static method Bitrix\Main\Data\CacheEngineFiles::delayedDelete() cannot be called statically (0)
* Исправлены баги в списках оптимизаций и конвертаций картинок
* Улучшена поддержка кириллических доменов
* Снижена поддержка не валидных названий картинок. Выявлено, что сейчас не поддерживаются названия с пробелами и не валидными знаками
* Улучшено удаление webp/avif-версий удаляемых картинок
* Добавлен интервальный агент для оптимизации картинок. Крайне важно, чтоб интервальные агенты работали на кроне! - * Исправлен баг, при котором данные о сконвертированных картинках не попадали в бд
- * Значительные улучшения производительности при больших количествах картинок
* Исправлен баг при удалении модуля
* Исправлен баг при сохранении флага "Включить автоочистку resize_cache при полном сбросе кэша" - * Уменьшен объем создаваемого кэша. Рекомендуется сбросить кэш.
* Улучшен поиск сопоставления исходных картинок с webp/avif копиями
* Улучшен функционал исключения по исходным картинкам - * Исправлена ошибка "Column DATE_CREATE is not found in the b_d2f_imagecompress_images table"
* Изменено место хранение webp/avif картинок. Теперь картинки хранятся по пути /upload/dev2fun.imagecompress
* Добавлен функционал миграции из старого хранилища в новый, путь: /bitrix/admin/dev2fun_imagecompress_convert_move.php
* Исправлена проблема с пропаданием webp/avif версий после полного сброса кэша
* Добавлена возможность очистки по кнопке ресайзнутых картинок из директорий: /upload/dev2fun.imagecompress/webp/resize_cache и /upload/dev2fun.imagecompress/webp/resize_cache
* Добавлена возможность автоматического сброса ресайзнутых картинок при полном сбросе кэша. Делается на странице настройки конвертаций
* Теперь при ошибках пишутся сообщения в общий журнал событий
* Добавлен foreign key на поля: b_d2f_imagecompress_images_to_converted.IMAGE_ID и b_d2f_imagecompress_images_to_converted.CONVERTED_IMAGE_ID
Если столкнетесь с проблемами при обновлении, то можете переустановить модуль или написать на почту support@dev2fun.com и мы поможем - * Исправлена ошибка "UNCAUGHT_EXCEPTION - [DivisionByZeroError] Division by zero (0)"
- * Конвертация: исправлен warning "Array to string conversion"
* Конвертация: Исправлен fatal error - * Конвертация: исправлена конвертация при экронировании пути
* Конвертация: добавлена поддержка путей не от корня сайта
* Конвертация: исправлен warning "Array to string conversion" - * Исправление бага конвертаций в UI
- * Добавлена поддержка конвертации не валидных названий файлов
* Поправлены баги в интерфейсе при конвертации - * Поправлен баг в исключаемых для конвертации путях до картинок. Теперь учитываются дубли картинок с разными путями.
* Поправлен баг c двойным upload при работе с методом Convert::convertImageByPath()
* Изменена регулярка исключения по-умолчанию с (\/bitrix\/.*) на (\/bitrix\/(?!services\/main\/ajax\.php).*) в связи с запросами битрикса в /bitrix/services/main/ajax.php. Внимание! При обновлении старая регулярка удалится из настроек.
- * теперь метод Dev2fun\ImageCompress::getBrowserAgentName(?string $userAgent) поддерживает null
* добавлен функционал авто-очистки истекшего кэша
* добавлен скрипт авто-очистки истекшего кэша для крона, располагается по адресу: ./console/cache-delayed-delete.php
* добавлен агент авто-очистки истекшего кэша для крона - * исправлен баг в регулярных выражениях исключений в функционале конвертации
- * исправлен баг, при котором не производился авто-ресайз при сохранении картинок в инфоблоках
* добавлена возможность указания пути до node.js для запуска svgo
* исправлен баг Column `SITE_ID` is not found in the `b_d2f_imagecompress_images` - * исправление бага при оптимизации отсутствующей картинки для разделов
* исправление бага при проверке поддержки конвертации у браузера
* исправление бага в путях при конвертации картинок в корне папки upload
- улучшена поддержка старых версий битрикса: * Поправлена проблема Call to undefined method Bitrix\Main\Data\Cache::noOutput() * Поправлена проблема Call to undefined method Bitrix\Main\ORM\Fields\StringField::configureNullable()
- - Техническое обновление 2
- - Техническое обновление
- - Добавлен режим конвертации LazyConvert, который конвертирует картинки в фоне и практически без оверхеда. За счет этого режима удалось добиться 10х прироста в скорости.
- Добавлены дополнительные настройки
- Добавлена поддержка мультисайтовости для конвертаций
- Поправлены несколько багов
- Улучшена работа режима postConvert
- Улучшена обработка ошибок
- Переработано меню модуля в админке
- При оптимизации добавлено сохранение нового размера файла картинки для битрикс24 (таблица b_disk_object)
- - исправление бага при конвертации прозрачных png-картинок в webp для режима phpWebp
- исправление бага в админке при сохранении страниц-исключений - - добавлена поддержка кириллицы и пробелов в названиях файлов
- добавлен консольный скрипт конвертации картинок в WEBP/AVIF. Расположение `console/convert.php` - - исправление бага с $globalEnable в классе Convert
- - правка активности оптимизации
- правка активности конвертации
- добавлена поддержка php8.0 - - Добавлено исключение всех страниц /bitrix из конвертаций
- Улучшена страница настроек - - Улучшена обработка настроек
- Поправлено несколько багов
- Добавлена поддержка конвертации картинок в avif - - Улучшена обработка настроек
- - Исправлен баг связанный с сохранением свойств инфоблоков
- - Исправлен небольшой баг в настройках
- Добавлена поддержка страниц исключений для конвертации в webp (главная страница обозначается как index.php) - - Улучшена поддержка php8
- Улучшена оптимизация pdf
- Добавлена поддержка выбора вида оптимизации для pdf - - Улучшен поиск не webp картинок у аттрибутов с url
- - Улучшен поиск картинок для режима postConvert, в т.ч. и атрибут srcset и css-стили background-image, background и т.п.
- - Улучшен режим postConvert
- - Добавлен режим пост-конвертации (postConvert). Модуль может работать сразу в 2 режимах. Но лучше использовать пост-конвертацию
- Добавлена возможность указания поиска поддерживаемых атрибутов для пост-конвертации
- Добавлено время жизни кэша для пост-конвертации
Не забудьте сбросить кэш - - Поправлен баг с проверкой браузера
- Добавлено событие OnBeforeCheckWebpBrowserSupport c переменной $supportBrowsers, для изменения списка поддерживаемых браузеров. Переменная передается по ссылке.
- Добавлено событие OnAfterCheckWebpSupport c переменной $result, для изменения результата проверки поддержки webp. Результат необходимо вернуть `return $result;`
- Исправлена проверка текущей страницы, теперь webp по-умолчанию отключен в разделах `/bitrix/admin/`
- Убрана проверка поддержки webp в HTTP_ACCEPT из-за отсутствия её в некоторых ajax-запросах. Если хотите добавить, кастомизируйте через событие `OnAfterCheckWebpSupport`
- Исправлен баг в проверке размера файла
Спасибо за ожидание! Вы лучшие!
Не забудьте cбросить кэш. - - Поправлен баг с не показом картинок для тех у кого в HTTP_ACCEPT нет image/webp
Примечание: Вам необходимо cбросить кэш. - - Добавлена конвертация в webp на лету для ресайза (CFile::ResizeImageGet()).
- Поправлен баг при конвертации прозрачных png-файлов.
- Поправлен баг с выводом пустых картинок
Примечание: Вам необходимо почистить папку upload/resize_cache и сбросить кэш. - - Исправлена ошибка, при которой на маках была белая область вместо картинки.
Примечание: Если браузер не поддерживает webp, то показываются старые файлы. - - Изменен алгоритм проверки типа изображения при конвертации в webp
- - Добавлена возможность конвертации картинок в webp "на лету"
- Добавлены алгоритмы конвертаций в webp: phpWebp и cwebp
- Добавлены настройки для конвертаций в webp
- Обновлен роадмап и описание решения в на странице маркетплейса
- - Выведены настройки для svg и gif
- - Исправлен мелкий баг в настройках
- - Исправлен мелкий баг
- - Исправлен мелкий баг
- - Исправлен баг в тестировании конфигурации (Dev2fun\ImageCompress\Check)
- - Добавлена оптимизация gif-изображений
- Добавлена оптимизация svg-изображений
- Добавлена поддержка списков pdf/gif/svg в списке
Roadmap
- 0.5.x: будет добавлена возможность оптимизаций по кастомным путям
- 0.6.x: будет добавлена возможность конвертаций картинок
- 1.0.x: будет добавлена возможность замены дублирующих картинок
Поддержите, пожалуйста, выпуск обновлений донатом - - Добавлена возможность вкл/выкл оптимизацию на instance (полезно для обменов и синхронизаций)
\Bitrix\Main\Loader::includeModule('dev2fun.imagecompress'); \Dev2fun\ImageCompress\Compress::setEnable(false); // отключить \Dev2fun\ImageCompress\Compress::getEnable(); // получить состояние
- Добавлен метод для кастомного запуска оптимизации
\Bitrix\Main\Loader::includeModule('dev2fun.imagecompress'); \Dev2fun\ImageCompress\Process::start(); // запускает оптимизацию 30 не оптимизированных файлов
- - Добавлена возможность оптимизации PDF-файлов
- Добавлена возможность вкл/выкл оптимизация png, jpeg, pdf - - Исправлен chmod. Улучшена конвертация в восьмеричные.
- - Исправлен chmod. Добавлена конвертация десетичных чисел в восьмеричные.
- - Исправлен баг с правами (chmod)
- - События переведены на новое ядро (D7) и протестированы
- Добавлена возможность удаления отсутствующих файлов
- Добавлена возможность указать права для оптимизируемого файла (при указании "0" права не меняются)
Поддержите нас донатом, спасибо! - - Улучшена обработка старых версий optipng
- Добавлена возможность повторной оптимизации
- Улучшен поиск по имени файла
Коллеги, готовим минорный релиз с функционалом заменой дублирующих картинок символьными ссылками.
Поддержите нас донатом, спасибо! - - добавлены события
- добавлен функционал возможности ресайза картинок перед оптимизацией - - Улучшена поддержка PHP5.6
- Внимание! Ветка 0.2.X последняя для PHP5. С версии модуля 0.3+ будет поддерживаться только PHP7+.
Пожалуйста обновите версию PHP заранее! - - Улучшен алгоритм "Сжать все"
- Добавлена поддержка выбора алгоритмов оптимизации. Задел на будущее
- Добален шаг с сохранением таблиц оптимизированных картинок при удалении модуля
- Улучшена обработка ошибок
- Добавлен скрипт для оптимизации из консоли /bitrix/modules/dev2fun.imagecompress/console/optimize.php подробности на странице модуля
- Поддерживаемая версия PHP 5.5+
- Улучшена поддержка PHP7.2 - - исправлен баг с количеством шагов
- исправлен баг с подвисанием при отсутствии картинок
- добавлен функционал количества картинок за шаг оптимизации - - техническое обновление
- - улучшен вывод счетчика, при множественной обработке
- - улучшена множественная обработка картинок
- - улучшена поддержка php5.3
- добавлена проверка на наличие картинке на диске
- добавлен запрет сжатия при отсутствии картинки на диске
- теперь при установке автоматически включается прогрессивное сжатие
- теперь при установке у optipng автоматически устанавливается степень сжатия 5 - - улучшена поддержка multiple
- добавленна поддержка progressive jpeg
- добавленна поддержка запрета уменьшения качества
- - улучшена поддержка php7
- - улучшена поддержка старых версий php
- улучшена обработка файлов с не правильными названиями
- улучшена обработка уже оптимизированных картинок
- улучшена обработка списка картинок - - поправлен баг с правами на картинки после оптимизации
- поправлен баг с GetFields
- Администраторам: Убедитесь в наличии прав на редактирование и чтение у всех файлов /upload - - убрана константа ADMIN_MODULE_NAME
- - убрана поддержка Bitrix\Main\Text\String
- улучшена поддержка php5.3
