Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!

Я согласен с условиями активации продлений
Продлить
Продолжить покупки

Top Man Digital: Ускорение сайта — WebP, WebM, Lazy Load и оптимизация CSS/JS

Модуль уменьшает вес страниц и помогает им быстрее появляться на экране посетителя. Он создаёт облегчённые копии изображений, стилей и скриптов, подставляет их в готовую страницу и откладывает загрузку ресурсов, которые не нужны в первую секунду.Исходные файлы сайта остаются без изменений. Чтобы вернуть прежнюю загрузку страниц, достаточно выключить нужную настройку или воспользоваться аварийным выключателем.Что ускоряет модульИзображенияМодуль создаёт WebP-копии изображений и автоматически подставляет их на страницы. Исходные JPEG и PNG остаются на сервере и используются как запасной вариант.Дополнительно модуль:загружает изображения по мере прокрутки страницы;оставляет первые изображения для немедленной загрузки;назначает главной картинке первого экрана высокий приоритет;добавляет недостающие width и height, чтобы страница не прыгала при загрузке;обрабатывает изображения в галереях и слайдерах, адреса которых хранятся в атрибутах data-*;может готовить копии сразу после загрузки изображения через административную часть.GIF-анимацииТяжёлые GIF-анимации можно показывать как WebM-видео. Для посетителя анимация выглядит привычно: запускается автоматически, работает без звука и повторяется по кругу.На тестовой выборке из 32 анимаций общий размер файлов уменьшился с 362 до 30 МБ. На странице реального сайта четыре GIF-файла весом 30 МБ были заменены WebM-копиями общим размером 3 МБ.Исходная GIF-анимация остаётся внутри разметки как запасной вариант. Функция выключена по умолчанию и требует установленного ffmpeg с поддержкой VP9.Стили и шрифтыМодуль уменьшает CSS-файлы и создаёт отдельные оптимизированные копии. Второстепенные стили и подключения сервисов шрифтов перестают задерживать первую отрисовку страницы.Скрипты и счётчикиСкрипты из разрешённого списка можно выполнять позже, когда основное содержимое страницы уже загружено. Модуль также умеет уменьшать JS-файлы и откладывать известные счётчики и сторонние виджеты.Видео и картыВстроенные видео, карты и другие элементы внутри iframe загружаются по мере прокрутки. Посетитель не тратит время и трафик на содержимое, которое ещё не появилось на экране.Без изменения исходных файловМодуль не перезаписывает изображения, CSS и JavaScript сайта. Все облегчённые версии хранятся отдельно в каталоге /upload/topman.optimizer/assets/.Готовая HTML-страница обрабатывается перед отправкой посетителю. Модуль точечно добавляет нужные атрибуты, адреса и обёртки, не пересобирая всю разметку.Если обработку нельзя завершить безопасно — например, не хватает времени или памяти, — посетитель получает исходную страницу. Ошибка оптимизации не должна останавливать сайт.Административная часть, служебные страницы и режим визуального редактирования не обрабатываются.Фоновая обработка без ожидания посетителяКонвертация изображений, минификация файлов и создание WebM-копий выполняются в фоновой очереди. Посетителю не приходится ждать завершения тяжёлых операций.Очередь может работать:через штатный агент 1С-Битрикс;по расписанию через cron;небольшими порциями после открытия страницы.Если обработчик остановится во время задачи, модуль автоматически вернёт её в очередь.Понятное управлениеВ административной части можно:увидеть, работает ли ускорение;посмотреть количество готовых копий и сэкономленный объём;проверить поддержку WebP, Imagick и ffmpeg на сервере;следить за очередью фоновых задач;запускать массовую обработку изображений и анимаций;повторять и отменять задачи;находить и удалять неиспользуемые копии;смотреть историю изменений;подготовить диагностическую выгрузку для поддержки.Перед удалением ненужных файлов модуль показывает, что именно будет удалено.Поддержка нескольких сайтовДля многосайтовой установки можно задать общие настройки, а затем переопределить их для отдельных сайтов. Например, включить WebM-анимации только на одном сайте, а для остальных оставить общую конфигурацию.Модуль поддерживает композитный режим 1С-Битрикс и предупреждает о настройках, которые зависят от возможностей браузера и поэтому несовместимы с кешированием одинаковой страницы для всех посетителей.ТребованияДля установки нужны:PHP 8.2 или новее;1С-Битрикс 23.900.1000 или новее;права на запись в каталог /upload;GD или Imagick для создания WebP;Imagick для анимированного WebP;ffmpeg с кодеком VP9 для преобразования GIF в WebM.Экран проверки сервера покажет, какие возможности доступны на текущем хостинге.Кому пригодится модульРешение особенно полезно интернет-магазинам, каталогам, корпоративным сайтам и контентным проектам, где много изображений, анимаций, скриптов, счётчиков, видео или карт.Можно включать функции постепенно, проверять результат после каждого изменения и в любой момент вернуть прежнюю загрузку страниц.

Top Man Digital: Ускорение сайта — WebP, WebM, Lazy Load и оптимизация CSS/JS

Top Man Digital: Ускорение сайта — WebP, WebM, Lazy Load и оптимизация CSS/JS

Купить продление
Скриншоты
Описание

Технические данные

Опубликовано:
07.09.2026
Версия:
1.0.15
Установлено:
Менее 50 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес»
Адаптивность:
Нет
Поддержка Композита:
Нет
Совместимо с Сайты24
Нет

Пользовательское соглашение

Описание

Модуль уменьшает вес страниц и помогает им быстрее появляться на экране посетителя. Он создаёт облегчённые копии изображений, стилей и скриптов, подставляет их в готовую страницу и откладывает загрузку ресурсов, которые не нужны в первую секунду.

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

Что ускоряет модуль

Изображения

Модуль создаёт WebP-копии изображений и автоматически подставляет их на страницы. Исходные JPEG и PNG остаются на сервере и используются как запасной вариант.

Дополнительно модуль:

  • загружает изображения по мере прокрутки страницы;
  • оставляет первые изображения для немедленной загрузки;
  • назначает главной картинке первого экрана высокий приоритет;
  • добавляет недостающие width и height, чтобы страница не прыгала при загрузке;
  • обрабатывает изображения в галереях и слайдерах, адреса которых хранятся в атрибутах data-*;
  • может готовить копии сразу после загрузки изображения через административную часть.

GIF-анимации

Тяжёлые GIF-анимации можно показывать как WebM-видео. Для посетителя анимация выглядит привычно: запускается автоматически, работает без звука и повторяется по кругу.

На тестовой выборке из 32 анимаций общий размер файлов уменьшился с 362 до 30 МБ. На странице реального сайта четыре GIF-файла весом 30 МБ были заменены WebM-копиями общим размером 3 МБ.

Исходная GIF-анимация остаётся внутри разметки как запасной вариант. Функция выключена по умолчанию и требует установленного ffmpeg с поддержкой VP9.

Стили и шрифты

Модуль уменьшает CSS-файлы и создаёт отдельные оптимизированные копии. Второстепенные стили и подключения сервисов шрифтов перестают задерживать первую отрисовку страницы.

Скрипты и счётчики

Скрипты из разрешённого списка можно выполнять позже, когда основное содержимое страницы уже загружено. Модуль также умеет уменьшать JS-файлы и откладывать известные счётчики и сторонние виджеты.

Видео и карты

Встроенные видео, карты и другие элементы внутри iframe загружаются по мере прокрутки. Посетитель не тратит время и трафик на содержимое, которое ещё не появилось на экране.

Без изменения исходных файлов

Модуль не перезаписывает изображения, CSS и JavaScript сайта. Все облегчённые версии хранятся отдельно в каталоге /upload/topman.optimizer/assets/.

Готовая HTML-страница обрабатывается перед отправкой посетителю. Модуль точечно добавляет нужные атрибуты, адреса и обёртки, не пересобирая всю разметку.

Если обработку нельзя завершить безопасно — например, не хватает времени или памяти, — посетитель получает исходную страницу. Ошибка оптимизации не должна останавливать сайт.

Административная часть, служебные страницы и режим визуального редактирования не обрабатываются.

Фоновая обработка без ожидания посетителя

Конвертация изображений, минификация файлов и создание WebM-копий выполняются в фоновой очереди. Посетителю не приходится ждать завершения тяжёлых операций.

Очередь может работать:

  • через штатный агент 1С-Битрикс;
  • по расписанию через cron;
  • небольшими порциями после открытия страницы.

Если обработчик остановится во время задачи, модуль автоматически вернёт её в очередь.

Понятное управление

В административной части можно:

  • увидеть, работает ли ускорение;
  • посмотреть количество готовых копий и сэкономленный объём;
  • проверить поддержку WebP, Imagick и ffmpeg на сервере;
  • следить за очередью фоновых задач;
  • запускать массовую обработку изображений и анимаций;
  • повторять и отменять задачи;
  • находить и удалять неиспользуемые копии;
  • смотреть историю изменений;
  • подготовить диагностическую выгрузку для поддержки.

Перед удалением ненужных файлов модуль показывает, что именно будет удалено.

Поддержка нескольких сайтов

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

Модуль поддерживает композитный режим 1С-Битрикс и предупреждает о настройках, которые зависят от возможностей браузера и поэтому несовместимы с кешированием одинаковой страницы для всех посетителей.

Требования

Для установки нужны:

  • PHP 8.2 или новее;
  • 1С-Битрикс 23.900.1000 или новее;
  • права на запись в каталог /upload;
  • GD или Imagick для создания WebP;
  • Imagick для анимированного WebP;
  • ffmpeg с кодеком VP9 для преобразования GIF в WebM.

Экран проверки сервера покажет, какие возможности доступны на текущем хостинге.

Кому пригодится модуль

Решение особенно полезно интернет-магазинам, каталогам, корпоративным сайтам и контентным проектам, где много изображений, анимаций, скриптов, счётчиков, видео или карт.

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

Отзывы (0)
Обсуждения (0)
Здесь пока никто ничего не написал. Будьте первым.
Что нового
1.0.15 (02.09.2026) СТРАНИЦА БОЛЬШЕ НЕ ПАДАЕТ НА РЕДИРЕКТЕ Кеш, в который модуль складывает сведения о картинках и скриптах страницы, открывал буфер вывода. PHP запрещает открывать буфер внутри обработчика буфера вывода, а модуль попадает в такой обработчик на отдельных путях — например когда страница отвечает перенаправлением: буфер дожимается перед отправкой заголовка Location. Там это не неудачная запись в кеш, а фатальная ошибка: вместо перенаправления посетитель получал пустую страницу с текстом ошибки.
1.0.14 (31.08.2026) Версия 1.0.14 Собрано от 1.0.13, опубликованной в кабинете. АНИМАЦИИ МОЖНО ОТДАВАТЬ ВИДЕО Самое тяжёлое, что отдаёт большинство сайтов, — анимированные GIF, и ни один формат картинки не отвечает на это хорошо. Замер на 32 реальных анимациях: 362 МБ исходников, 108 МБ в анимированном WebP и 30 МБ в видео WebM. На главной одного из сайтов четыре анимации весили 30,0 МБ и стали 3,0 МБ. Новая галочка «Показывать анимации видео вместо картинки» на экране «Настройки», в группе про картинки. Модуль дополнительно кодирует каждую анимацию в WebM и подставляет её на странице тегом video — без кнопок управления, беззвучно, само запускается и зациклено, так что для посетителя это по-прежнему выглядит как гифка. Исходный тег img остаётся внутри запасным вариантом: браузер, который не умеет video, покажет ровно ту анимацию, что и раньше. Класс и стиль с картинки переносятся на видео, подпись alt становится aria-label. Галочка выключена по умолчанию, и на то две причины. Нужен ffmpeg на сервере — без него ничего не собирается и галочка ничего не делает; наличие ffmpeg и поддержку кодека VP9 показывает экран «Проверка сервера». И это единственная подстановка, которая меняет сам тег: если в вёрстке стили написаны на тег img (например «.баннер img { ширина }»), к видео они не применятся — такие шаблоны стоит проверить глазами. Картинки с srcset и картинки внутри тега picture этот режим не трогает: видео нельзя положить внутрь picture, а один файл не отвечает на набор размеров. Анимации в этих случаях получают обычную обёртку picture с анимированным WebP, как и раньше. На экране «Настройки модуля» появился предел «Сколько времени даётся на кодирование одной анимации» — 45 секунд по умолчанию. Кодировщик никогда не работает дольше, чем задача считается занятой: если два этих числа задать несогласованно, берётся меньшее, потому что кодировщик, переживший свою аренду, — это задача, отданная второму обработчику, и два процесса пишут один файл. Обработчик очереди, который работает прямо в запросе посетителя, видеозадачи не берёт вовсе: у него на всё есть секунда, а кодирование занимает десятки. ИСПРАВЛЕНИЕ, ВАЖНОЕ ПРИ ОТКАТЕ ВЕРСИИ Если в сохранённых настройках оказывался параметр, которого установленная версия модуля не знает, она отвергала настройки целиком — и сайт молча переставал ускоряться. Ни ошибки, ни записи в истории: проверка настроек происходит раньше, чем модуль успевает что-либо записать. Так бывает после отката модуля на версию младше той, что записала настройки. Теперь незнакомый параметр отбрасывается, а всё остальное работает. На экране «Настройки» появляется плашка с перечнем таких параметров и подсказкой сохранить настройки ещё раз — этого достаточно, чтобы список исчез. Сохранение по-прежнему незнакомый параметр не принимает: там ошибку ещё можно исправить. Заодно у настроек, которые версия прочитать не может, появился свой ответ на экране. Раньше это состояние показывалось теми же словами, что и «ничего не включено», и владелец сайта шёл проверять галочки, среди которых искать было нечего.
1.0.13 (29.08.2026) Версия 1.0.13 Обновление ставится и на 1.0.11, и на 1.0.12: оно несёт изменения обеих версий. АДМИНИСТРАТИВНАЯ ЧАСТЬ ПЕРЕДЕЛАНА ЦЕЛИКОМ Все семь экранов модуля переписаны на единое оформление. Работа модуля на сайте не изменилась ничем: ни одна настройка, ни один сохранённый параметр, ни один этап обработки страниц не тронуты. Что изменилось на экранах: Настройки. Галочки собраны в группы с заголовками; три уточнения, которые раньше жили на отдельном экране, стоят под теми галочками, которые их включают. Вкладка сайта, живущего по общим настройкам, теперь прямо говорит, что менять здесь нельзя и почему, а не показывает экран серых недоступных полей без объяснения. Настройки модуля. Шестнадцать числовых пределов разложены по четырём смысловым группам с подписями, допустимые диапазоны выровнены колонкой. Галочка запуска обработчика очереди по расписанию поднята наверх отдельным блоком: раньше она лежала под всеми числами. Проверка сервера. Сводка разделена на «готовность к работе», «для обращения в поддержку» и «срок хранения копий». Проверка, которая не смогла выполниться, теперь так и написана — до этого в строке была пустая ячейка, читавшаяся как «замечаний нет». Каждый вердикт помечен значком, а не только цветом. Фоновые задачи. Два прогона показаны одинаково, с полосой выполнения. Строка для планировщика cron, правило для nginx, код проверки и отпечаток возможностей сервера получили кнопку «Копировать»: раньше их приходилось выделять мышью через перенос строки. Обзор. Итог работы показан двумя крупными числами. Сообщение о других модулях, меняющих страницы, больше не помечается зелёной галочкой: модуль не может отличить антиспам от конкурирующего ускорителя, поэтому это сведение, а не оценка. История и поддержка. Постраничность добавлена и снизу, широкая таблица прокручивается внутри себя, а не растягивает страницу. Лицензия и демо. Когда демо закончилось, блок покупки становится первым на экране. Пять последствий окончания демо разделены на то, что прекращается, и то, что сохраняется, — одним списком они читались как пять потерь. ИСПРАВЛЕНИЯ Копии WebP теперь доходят до страниц, где шаблон оборачивает каждую картинку в тег picture. Модуль такие картинки не трогал вовсе — и правильно, если автор задал свои варианты через source. Но пустая обёртка без единого source ничего не задаёт, и там копия теперь доходит: браузеру, который сообщил о поддержке формата, адрес подменяется на месте, остальным добавляется source внутрь уже существующего тега, а исходная картинка остаётся запасным вариантом. На проверенной странице так дошли три готовые копии из четырёх. В журнале изменений два события показывались служебными кодами вместо русских названий. ИЗ ВЕРСИИ 1.0.12 Для сайтов с включённым «Композитным сайтом»: ядро прогоняет обработчики страницы второй раз, над той копией, которая ложится в кеш целых страниц, а у модуля стоял признак «работаем один раз за запрос». Из двух копий обрабатывалась ровно одна, и никогда та, которую потом отдают всем посетителям. Замер на клиентском сайте: страница при генерации получала 54 подмены, она же из кеша — ни одной. Теперь модуль различает копии по их содержимому. Экран настроек предупреждает, если «Композитный сайт» включён, и называет три настройки, которые на странице из кеша работать не могут. Учтён конфликт с модулями миниатюр, которые открывают файл по его адресу заново: настройка «отдавать копии всем браузерам» на таких сайтах отходит в сторону, чтобы страница не падала с ошибкой библиотеки GD. Снят экран «Тонкая настройка»: четырнадцать из его пятнадцати полей уже были галочками на экране «Настройки», а три оставшихся перенесены туда же.
1.0.12 (27.08.2026) Версия 1.0.12 Главное — для сайтов с включённым «Композитным сайтом»: там модуль почти ничего не давал, и теперь это исправлено. Ядро прогоняет обработчики страницы второй раз, над той копией, которая ложится в кеш целых страниц, а у модуля стоял признак «работаем один раз за запрос». Из двух копий обрабатывалась ровно одна, и никогда та, которую потом отдают всем посетителям. Замер на клиентском сайте: страница при генерации получала 54 подмены, она же из кеша — ни одной, и так на каждом обращении. Теперь модуль различает копии по их содержимому: одни и те же байты второй раз не обрабатываются, а другая копия получает свою работу. Экран настроек предупреждает, если «Композитный сайт» включён, и называет три настройки, которые на странице из кеша работать не могут: отдача WebP напрямую, подмена фонов в стилях и подмена адресов ленивой загрузки. Все три зависят от того, что сообщил о себе конкретный браузер, а страница из кеша приходит всем одинаковая, включая браузеры без поддержки WebP. На таких сайтах копии отдаются через тег picture, где оригинал остаётся запасным вариантом. Мы рекомендуем композит отключать. Снят конфликт с модулями миниатюр. Такой модуль берёт адрес картинки и открывает файл заново; получив адрес копии в формате WebP, он падает с ошибкой «imagecopyresampled(): Argument #2 must be of type GdImage, false given», потому что библиотека GD на большинстве хостингов WebP не читает. Теперь настройка «отдавать копии всем браузерам» сама перестаёт применяться, если на сайте установлен модуль такого рода, и экран настроек об этом говорит; копии при этом продолжают доходить до посетителя через разметку страницы, а модуль миниатюр получает исходный файл. Проверяются mystery.thumbs, wd.thumbs, niges.imageresize, aspro.thumbs. Галочку можно не снимать: она заработает снова, если такой модуль удалят. На экране «Проверка сервера» появился раздел о сроке хранения копий у браузера — том самом, на который ругаются отчёты о скорости. Заголовок ставит тот, кто отдаёт файл, а запрос картинки PHP не видит вовсе, поэтому модуль не может задать срок сам — но может подготовить правило. Раздел показывает, записаны ли собственные правила модуля рядом с копиями (год хранения и пометка «неизменяемый», их кладёт установщик), что видит Apache, и печатает готовую строку для nginx с путями вашего сайта. У пункта меню «Тонкая настройка» появилась своя иконка. Закрыты шесть замечаний предрелизного разбора. Правило «в страницу, которая ложится в кеш целых страниц, не попадает ничего, зависящего от конкретного посетителя» не работало: такую страницу узнавали по заголовкам ответа, а страница по пути в кеш их не несёт. Теперь модуль спрашивает у платформы, включён ли кеш вообще. Уборка временных каталогов больше не идёт по символическим ссылкам — на общем хостинге сосед мог оставить ссылку куда угодно. Определитель модулей миниатюр, не сумев обратиться к базе, отвечал «таких нет» и тем самым снимал защиту ровно тогда, когда что-то уже не в порядке; теперь неизвестность читается как «не включать». Проверка сервера открывает только имя самого сайта, взятое у платформы, а не то, что написано в заголовке запроса. Контрольная сумма страницы считается после дешёвых проверок, поэтому сайт с выключенной обработкой ответа больше не платит за неё на каждой странице. Отдельно закрыты восемь замечаний предрелизного разбора. Из них существенное: правило, которое не пускает в сохранённую для всех страницу подмены, зависящие от браузера, на деле не срабатывало — оно спрашивало признаки у самого ответа, а страница по дороге в кеш их не несёт; теперь модуль спрашивает у платформы, включён ли кеш вообще. Уборка временных каталогов больше не идёт по символическим ссылкам. Определение установленных модулей миниатюр при ошибке базы отвечало «таких нет» и снимало защиту — теперь неизвестность и отсутствие различаются. Хеш страницы считается после дешёвых проверок, а не до них.
1.0.11 (26.08.2026) Версия 1.0.11 Анимированные GIF конвертируются в анимированный WebP. Это формат, которому есть что отдать: проверочный баннер весит 9,62 МБ в GIF и 1,75 МБ в WebP той же анимацией — измерено на клиентском хостинге. Копия остаётся картинкой, поэтому едет тем же путём, что и остальные, и отдаётся через ту же обёртку, а сам GIF остаётся запасным вариантом. Требуется Imagick: только он умеет читать все кадры, поэтому на серверах без него гифки просто пропускаются. Анимации ставятся в очередь последними и не берутся в работу там, где посетитель ждёт ответа. Для них добавлен отдельный фоновый прогон на экране "Очередь" — одна анимация готовится столько же, сколько сотня обычных картинок, и в общем прогоне они мешали бы друг другу. Предел размера исходного файла по умолчанию поднят с 8 до 12 МБ: именно он отсекал такие баннеры. Появилась галочка "Отдавать WebP напрямую, без обёртки picture". Обычная доставка оборачивает картинку в тег picture, чтобы браузер без поддержки формата получил оригинал, но при этом картинка становится на уровень глубже в разметке — и на некоторых шаблонах перестают работать стили вида ".карточка > img" и скрипты галерей и слайдеров, которые ищут картинку через родителя. С галочкой адрес копии подставляется прямо в src, разметка не меняется вовсе. Фоны в стилях отдавались напрямую всегда, поэтому включённая галочка приводит к общему виду всю отдачу. Копия предлагается только браузерам, заявившим поддержку формата. Исправлено: подстановка фона могла испортить разметку. Если адрес в стиле был записан с экранированными кавычками, после подстановки они возвращались настоящими и обрывали атрибут — элемент терял фон. Теперь значение кодируется обратно, а результат сверяется с задуманным на готовой странице. Исправлено: подготовка копий могла оборвать страницу. Пределы в настройках противоречили друг другу — картинка в 40 мегапикселей требует больше памяти, чем модулю разрешено занимать, а нехватка памяти обрывает страницу целиком. Теперь потребность считается до начала работы и сверяется с тем, что процессу действительно доступно. Исправлено: после правки файла скрипта сайт продолжал отдавать старую сжатую копию. Копия выбиралась по адресу файла, а не по его содержимому, поэтому исправленный скрипт никогда не пересобирался. Теперь размер и время файла решают, годится ли копия, и правка приводит к пересборке. Исправлено: подменялись адреса скриптов самого Битрикса. Это ломало штатное правило ядра "один адрес — одна загрузка" при подгрузке компонентов и оставляло устаревшие копии служебных сборок. Теперь такие файлы не трогаются. Исправлено: на экране настроек модуля часть числовых пределов была шире рабочих. Можно было указать, например, 50 задач за один проход фонового агента, хотя берётся не больше десяти, — число сохранялось и молча урезалось. Теперь верхние границы на экране совпадают с теми, что модуль действительно соблюдает, а значение, сохранённое прежней версией выше новой границы, показывается уже в допустимых пределах. Укрепление по итогам предрелизной проверки. Анимация собирается во временном каталоге, имя которого нельзя предсказать со стороны, — на общем хостинге это защищает от подмены файла соседом по серверу. Проверка "поместятся ли кадры" больше не отключается на серверах, где у ImageMagick не выставлены пределы: раньше именно там специально подготовленный GIF мог занять сервер надолго. Кроме того, GIF читается не целиком, а в пределах разрешённого размера, и нестандартное значение memory_limit больше не приводит к ошибке в середине конвертации. Большие каталоги обрабатываются во много раз быстрее. Очередь пополнял только фоновый агент — не больше десяти задач в минуту и лишь пока на сайте кто-то есть, — поэтому CLI-воркер, способный на сотню за проход, простаивал за очередью, которая наполнялась десятью. Теперь очередь пополняет тот, кто её разгребает, и воркер берёт настройки сайта, а не собственные умолчания. На экране "Очередь" появился блок "Прогон по расписанию" с готовой строкой для планировщика: с путями вашего сайта и тем PHP, на котором сайт работает. Строку можно запускать в несколько потоков — задача достаётся ровно одному. Замер: 25 картинок за 3,8 секунды одним потоком против трёх в минуту у агента. Исправлено: прогон по каталогу не мог переделать то, от чего однажды отказались. Очередь при повторной постановке возвращала уже существующую задачу в любом состоянии, включая завершённую впустую, — поэтому прогон шагал по каталогу, отчитывался и не ставил ничего. Установка Imagick, поднятие предела размера или перезапуск прогона не помогали никогда. Теперь завершённая задача для файла без копии возвращается в работу. Исправлено: длинную конвертацию отбирали у того, кто её делал. Аренда задачи длилась минуту, а конвертация большой анимации идёт дольше, и уборщик зависших задач передавал её другому — работа выбрасывалась и начиналась заново, три раза, после чего файл считался неконвертируемым. Аренда теперь переживает весь проход. Исправлено: анимации не записывались на хостинге, где сайт заперт в своём каталоге (open_basedir). Системный временный каталог там недоступен, а копия писалась именно туда. Теперь запись идёт во временную папку самой CMS внутри сайта. Исправлено: картинки с пробелами и кириллицей в имени не оптимизировались вовсе. Адрес приходит в закодированном виде, а на диске имя обычное — файл искали под именем, которого нет, и промах выглядел как попытка выйти за пределы сайта. Исправлено: сервер с настроенной ImageMagick больше не занижается модулем. Прежде модуль опускал её пределы до своих, и на сервере, где разрешён гигабайт памяти, это загружало дисковый слой вместо того, чтобы разгрузить его: анимация на 204 кадра упиралась в предел диска. Свои числа модуль теперь ставит только там, где у сборки нет никаких, и умеет их поднять; упёршись в чужой потолок, он отказывается один раз и называет цифры. Исправлено: прогресс прогона считал не то. Оба прогона читали все картинки подряд, а "всего" считалось только по своему виду — сайт с сорока анимациями среди пятисот картинок показывал "116 из 40" и продолжал расти, что выглядит как зависший прогон. Исправлено: анимации оставались без копий при включённой галочке прямой отдачи. Логика исключала их целиком — у GIF в этом режиме не остаётся запасного варианта, — и копии строились, но не доходили ни до кого. Теперь обычные картинки идут прямо в src, а анимации получают обёртку picture: она появляется только вокруг них. Предел размера копии по умолчанию поднят с 8 до 12 МБ — до того же значения, что и предел исходника. Копия и так сохраняется только если она меньше оригинала, поэтому отдельный меньший предел отбрасывал уже сделанную работу. Мелкое: версия модуля на экранах теперь берётся из работающего кода, а не из записи установщика, которая после обновления оставалась прежней; воркер, опустошивший очередь, так и пишет, а не сообщает об упоре в лимит. Исправлено: атрибуты, записанные одинарными кавычками или без кавычек, читались как пустые. Такие картинки и скрипты модуль просто не видел — не сжимал, не откладывал, не измерял. Ничего при этом не ломалось, поэтому и не бросалось в глаза: на шаблоне, свёрстанном так, модуль молча не делал ничего. На экране настроек появилась галочка «Обработчик очереди по расписанию». Раньше экран «Очередь» показывал строку для планировщика и сообщал, что нужно включить обработчик, а включить его было негде.
1.0.10 (23.08.2026) Версия 1.0.10 Анимированные GIF конвертируются в анимированный WebP. Это формат, которому есть что отдать: проверочный баннер весит 9,62 МБ в GIF и 1,75 МБ в WebP той же анимацией — измерено на клиентском хостинге. Копия остаётся картинкой, поэтому едет тем же путём, что и остальные, и отдаётся через ту же обёртку, а сам GIF остаётся запасным вариантом. Требуется Imagick: только он умеет читать все кадры, поэтому на серверах без него гифки просто пропускаются. Анимации ставятся в очередь последними и не берутся в работу там, где посетитель ждёт ответа. Для них добавлен отдельный фоновый прогон на экране "Очередь" — одна анимация готовится столько же, сколько сотня обычных картинок, и в общем прогоне они мешали бы друг другу. Предел размера исходного файла по умолчанию поднят с 8 до 12 МБ: именно он отсекал такие баннеры. Появилась галочка "Отдавать WebP напрямую, без обёртки picture". Обычная доставка оборачивает картинку в тег picture, чтобы браузер без поддержки формата получил оригинал, но при этом картинка становится на уровень глубже в разметке — и на некоторых шаблонах перестают работать стили вида ".карточка > img" и скрипты галерей и слайдеров, которые ищут картинку через родителя. С галочкой адрес копии подставляется прямо в src, разметка не меняется вовсе. Фоны в стилях отдавались напрямую всегда, поэтому включённая галочка приводит к общему виду всю отдачу. Копия предлагается только браузерам, заявившим поддержку формата. Исправлено: подстановка фона могла испортить разметку. Если адрес в стиле был записан с экранированными кавычками, после подстановки они возвращались настоящими и обрывали атрибут — элемент терял фон. Теперь значение кодируется обратно, а результат сверяется с задуманным на готовой странице. Исправлено: подготовка копий могла оборвать страницу. Пределы в настройках противоречили друг другу — картинка в 40 мегапикселей требует больше памяти, чем модулю разрешено занимать, а нехватка памяти обрывает страницу целиком. Теперь потребность считается до начала работы и сверяется с тем, что процессу действительно доступно. Исправлено: после правки файла скрипта сайт продолжал отдавать старую сжатую копию. Копия выбиралась по адресу файла, а не по его содержимому, поэтому исправленный скрипт никогда не пересобирался. Теперь размер и время файла решают, годится ли копия, и правка приводит к пересборке. Исправлено: подменялись адреса скриптов самого Битрикса. Это ломало штатное правило ядра "один адрес — одна загрузка" при подгрузке компонентов и оставляло устаревшие копии служебных сборок. Теперь такие файлы не трогаются. Исправлено: на экране настроек модуля часть числовых пределов была шире рабочих. Можно было указать, например, 50 задач за один проход фонового агента, хотя берётся не больше десяти, — число сохранялось и молча урезалось. Теперь верхние границы на экране совпадают с теми, что модуль действительно соблюдает, а значение, сохранённое прежней версией выше новой границы, показывается уже в допустимых пределах. Укрепление по итогам предрелизной проверки. Анимация собирается во временном каталоге, имя которого нельзя предсказать со стороны, — на общем хостинге это защищает от подмены файла соседом по серверу. Проверка "поместятся ли кадры" больше не отключается на серверах, где у ImageMagick не выставлены пределы: раньше именно там специально подготовленный GIF мог занять сервер надолго. Кроме того, GIF читается не целиком, а в пределах разрешённого размера, и нестандартное значение memory_limit больше не приводит к ошибке в середине конвертации.
1.0.9 (10.08.2026) Версия 1.0.9 Исправлена ошибка, из-за которой могла не открываться страница заказа в личном кабинете (TypeError в обработчике OnAfterResizeImage). Ядро Битрикса передаёт обработчикам событий аргументы в том виде, в каком их дал вызывающий код: штатный компонент деталей заказа вызывает уменьшение картинки так, что вместо данных колбэка приходит null, а вместо размеров - false, и обработчик со строгими типами падал до первой своей строки, роняя страницу. Ошибка проявлялась при включённой настройке "Готовить копии при загрузке файлов". Исправлены все пять обработчиков событий ядра, а не только упавший: ни один больше не объявляет типы аргументов, каждый проверяет пришедшее сам и на неожиданном вводе молча не делает ничего. Отдельная проверка в наборе тестов запрещает возвращение строгих типов в обработчики. Рекомендуем установить это обновление не откладывая.
1.0.8 (09.08.2026) Версия 1.0.8 Открытие страницы готовит всю страницу. Раньше за один показ в очередь подготовки попадали три картинки - в расчёте на то, что следующий просмотр продолжит. На странице каталога картинок тридцать-шестьдесят, а на сайте без трафика следующего просмотра не бывает, и это выглядело как "конвертация не работает". Теперь один показ ставит в очередь все недостающие картинки страницы, а сразу после отдачи страницы готовится до двадцати из них - посетитель уже получил страницу и ничего не ждёт. Шире стала только постановка в очередь; сама конвертация ограничена теми же рамками, что и раньше, а на серверах, где работа идёт до ответа, не изменилось ничего. Новый раздел "Тонкая настройка" - для тех, кому связки экрана "Настройки" слишком крупные. Там одна галочка включает несколько связанных вещей сразу; здесь те же вещи включаются по отдельности - например, копии картинок без очереди при загрузке файлов. Те же вкладки по сайтам, то же сохранение в одно действие, та же кнопка отмены. Показано только то, что реально влияет на страницы, каждая настройка подписана обычными словами. Обычное сохранение больше не сбрасывает значения, заданные по отдельности: связки записываются поверх сохранённого, а не поверх заводских значений. Если значения заданы тонко и не совпадают со связками, экран "Настройки" предупреждает об этом до сохранения. Поле "Сколько первых картинок грузить сразу" больше не предлагает значения меньше 2: модуль и раньше не опускался ниже - главная картинка страницы откладываться не должна, - но экран обещал ноль зря.
1.0.7 (09.08.2026) Версия 1.0.7 Исправлено главное: модуль больше никогда не откладывает главную картинку страницы. Счёт "сколько первых картинок грузить сразу" тратился на служебные изображения - логотип и иконки мессенджеров в шапке, - и на проверенной витрине весь запас уходил на них ещё до первой настоящей картинки. Баннер первого экрана получал отложенную загрузку, а именно по нему браузер меряет скорость появления страницы; отсюда же была и заметная часть сдвига вёрстки. Теперь служебное - векторные файлы и всё, что называется логотипом, иконкой, спрайтом - запас не тратит: откладывание начинается после тех картинок, которые имеет в виду владелец. Пометку "самая важная картинка страницы" теперь тоже получает первая содержательная картинка, а не позиция, которую всегда занимал логотип. Пять чисел подготовки при открытии страницы вынесены на экран технических ограничений: как часто она запускается, сколько картинок и секунд ей отведено до ответа и после него. Раньше они существовали только внутри модуля, и на большом каталоге их не из чего было поднять. Из интерфейса убрано слово "профиль". Внутри модуль по-прежнему хранит настройки версиями - это то, что делает изменения обратимыми, - но экран, который назывался профилями, ушёл ещё в прошлой версии, а тексты отстали: журнал действий писал "создан профиль", лицензия обещала "публикацию профилей", а настройки модуля отправляли в раздел, которого больше нет. Теперь везде обычные слова: настройки созданы, настройки применены, настройки сайта удалены.
1.0.6 (07.08.2026) Версия 1.0.6 Исправлено главное: картинки открытой страницы готовятся первыми. Очередь разбиралась в порядке поступления, а массовый прогон успевает поставить в неё все файлы сайта - на проверенной витрине 2 487 штук. Посетитель открывал страницу, её картинки вставали за ними, и подготовка при показе страницы честно работала, но над файлами со страниц, на которые никто не смотрит. Со стороны это выглядит как "конвертация на лету не работает". Теперь порядок задаёт то, кто ждёт: картинка показываемой страницы, затем всё остальное, и в самом конце массовый прогон - он существует, чтобы занимать ничьё время, и перед посетителем встать не может. За один показ страницы готовится столько картинок, сколько успевает за отведённую секунду, а не одна. Секунда и была настоящим ограничением, поэтому она не изменилась. Настройки стали проще ещё раз: экран профилей убран. Настройки задаются вкладками - все сайты или один из них, - а профили, приоритеты, шаблоны адресов, черновики и версии были вторым способом задать то же самое, только на языке разработчика. Именно так галочка и оказывается в профиле, который к сайту не применяется. Внутри всё осталось: настройки по-прежнему хранятся версиями, и последнее изменение можно отменить. Если на сайте есть набор настроек, сделанный прежней версией модуля, и он важнее вкладки - экран настроек об этом говорит и предлагает его выключить. Убраны технические подписи. На прежнем экране настройка без своего описания показывалась одним лишь внутренним именем вроде image.webp - понять по такой строке, что делает галочка, было нельзя. Теперь у каждой настройки название и пояснение обычными словами.
1.0.5 (07.08.2026) Версия 1.0.5 Настройки стали проще. Раньше их приходилось задавать через профили: у каждого свой код сайта, приоритет, шаблоны адресов, черновики и список версий, которые надо публиковать по одной. Всё это осталось внутри - на нём держится возможность откатиться, - но с экрана ушло. Теперь на экране настроек вкладки: "Все сайты" и по вкладке на каждый сайт. Сайт работает по общим настройкам, пока не нажать "Настроить отдельно" - тогда его настройки заводятся копией того, что этому сайту отдаётся сейчас, и дальше меняются, не задевая остальные сайты. Кнопка "Вернуть общие настройки" убирает их обратно. Вместо списка версий одна кнопка "Отменить последнее изменение". Исправлено, и это главное в версии: на сайтах с несколькими площадками настройки могли сохраняться в профиль, который ни на один запрос не отвечал. Экран выбирал профиль по первому активному сайту в порядке сортировки, а посетителям отвечал другой. Галочка при этом сохранялась, публиковалась и была видна на экране - но на сайте не работала. Теперь чтение и запись идут в один и тот же профиль, а экран прямо называет тот, который показывает. Исправлено: проверка сервера сообщала о включённом композитном кеше на сайтах, где он выключен. Читался признак режима кеша, а он остаётся в настройках навсегда после выключения. Теперь состояние спрашивается у платформы. Профили можно удалять. Кнопка появляется у выключенного профиля; последний профиль удалить нельзя. Версии настроек удаляются вместе с ним, запись об удалении остаётся в журнале действий. Экран профилей никуда не делся и остался в разделе для специалистов - для того, чего вкладки намеренно не умеют: профиль на раздел сайта, отдельные настройки для авторизованных посетителей, перенос настроек между сайтами.
1.0.4 (07.08.2026) Версия 1.0.4 Подготовка копий при открытии страницы. Раньше картинки готовил только фоновый агент - несколько штук в минуту, и на большом каталоге это дни. Теперь часть той же работы делается в момент показа страницы, поэтому картинки открытой страницы готовы за секунды. Кто платит за это временем, зависит от сервера, и модуль это определяет сам: если сервер умеет отдать страницу и продолжить работу (php-fpm, LiteSpeed) - не платит никто. На остальных работа идёт до ответа, поэтому там строгие рамки: одна картинка, не дольше секунды и не на каждом запросе. Что умеет ваш сервер, написано на экране "Проверка сервера". Возможность выключена по умолчанию, включается отдельной галкой. Исправлено: модуль сам создавал сдвиг вёрстки. Отложенная загрузка вешалась и на картинки, размер которых неизвестен, - место под них не резервировалось, и страница дёргалась при догрузке. На проверенной витрине из 42 отложенных картинок 21 была без размеров, и CLS вырос с 0 до 0,31. Теперь откладывание требует известного размера. Исправлено: модуль не знал размеров собственных копий. При подмене адреса файла в разметку попадает уже наш webp, и размер искался там, где его нет. Теперь берётся из данных о самой копии - сдвиг уходит, а такие картинки снова можно откладывать. Исправлено: массовый прогон не двигался на посещаемом сайте. Он ограничивался длиной всей очереди, а её наполняет обычный трафик, поэтому прогон всегда получал отказ. Теперь за один шаг он добавляет не больше, чем фоновый работник успевает разобрать. Исправлено: на серверах, где Imagick терял прозрачность, картинка не отдавалась вовсе. Теперь она пересобирается без потерь, как это уже делалось на GD.
1.0.3 (06.08.2026) Версия 1.0.3 Массовая подготовка копий. Раньше очередь наполнялась только просмотрами: открыли страницу - модуль заказал три картинки с неё. Так он успевает за новыми файлами, но не догоняет накопленное, а до картинок с редко посещаемых страниц не доходит вовсе. На витрине в 3 879 картинок это 43 часа работы агента ради шести минут собственно конвертации. Теперь на экране "Фоновые задачи" есть прогон по всем файлам сайта: идёт в фоне, продолжается с места остановки, пополняет очередь небольшими порциями и пропускает то, для чего копия уже собрана. Проверка сервера предупреждает о композитном кеше Битрикса. Композит забирает копию страницы раньше, чем модуль её меняет, поэтому в сохранённых страницах нет ни отложенной загрузки, ни размеров картинок, ни ссылок на подготовленные копии. Изменения видит только тот посетитель, чей запрос прошёл мимо кеша. Пока композит включён, из всего, что делает модуль, до посетителя доходит лишь подмена адреса файла.
1.0.2 (06.08.2026) Версия 1.0.2 Профиль ускорения теперь создаётся при установке: он действует на всех сайтах, уступает любому вашему профилю и ничего не делает, пока в нём не отметят нужное. Раньше до создания профиля вручную ни одна настройка не сохранялась. Профиль можно написать сразу на все сайты, а сам сайт выбирается из списка, а не вводится кодом. Исправлено: при совпадении нескольких профилей действовал тот, у которого число приоритета больше, хотя интерфейс всегда обещал обратное. Профиль, созданный при установке, из-за этого перекрывал профили, сделанные вручную. Профиль можно выключить и включить обратно. Раньше публикация включала профиль, а выключить его было нечем. Экран профилей приведён в порядок: три поля вместо шести, редкие настройки свёрнуты, создание профиля сразу открывает его на настройку, в списке видно, где профиль действует и какой из них главнее. Исправлено: очередь подготовки картинок вставала. Копия, которая экономит меньше десятой части, не отдаётся посетителю - и при этом считалась неготовой, поэтому одни и те же мелкие файлы занимали весь лимит на каждом ответе. На проверенной витрине три миниатюры по 1-2 КБ не давали попасть в очередь сорока другим картинкам, включая файл на 1,4 МБ.
Установка
Модуль устанавливается стандартным способом через Маркетплейс 1С-Битрикс. Во время установки он автоматически создаёт необходимые таблицы, подключает обработчики и запускает фоновый агент.
Требования

Для работы модуля необходимы:

  • PHP 8.2 или новее;

  • 1С-Битрикс версии 23.900.1000 или новее;

  • право на запись в каталог /upload;

  • GD или Imagick для создания WebP-копий.

Для дополнительных возможностей:

  • Imagick — для обработки анимированных GIF;

  • ffmpeg с поддержкой VP9 — для преобразования анимаций в WebM.

Если версия PHP или 1С-Битрикс ниже требуемой, установка будет остановлена. Отсутствие Imagick или ffmpeg не мешает работе остальных функций.

Первый запуск

После установки:

  1. Откройте раздел Ускорение сайта → Проверка сервера.

  2. Убедитесь, что модуль может записывать файлы в /upload и видит GD или Imagick.

  3. Перейдите в раздел Настройки и включите модуль.

  4. Для начала включите Ускорять картинки и Загружать картинки по мере прокрутки.

  5. Откройте раздел Фоновые задачи и проверьте, как создаются оптимизированные копии.

Модуль начинает обработку постепенно. Когда изображение впервые появляется на странице, для него создаётся задача. Фоновый агент обрабатывает очередь раз в минуту.

На сайтах с большим количеством файлов рекомендуется настроить запуск обработчика по расписанию. Готовую команду для cron можно скопировать в разделе Фоновые задачи.

Важно

Модуль не изменяет исходные изображения, стили и скрипты. Все облегчённые версии хранятся отдельно. Если отключить модуль или отдельную функцию, сайт сразу продолжит работать с исходными файлами.

Преобразование GIF в WebM выключено по умолчанию. Перед его включением проверьте наличие ffmpeg и работу анимаций в шаблоне сайта.

Поддержка
Рабочее время: пн-пт 10:00-18:00 МСК по производственному календарю.
Почта для связи: marketplace@topman.dev
Время ответа - 2 рабочих дня.

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки