Включаем сжатие изображений через tinypng или аналоги — до 50% экономии веса
Хочу себе такие же кнопкиЧто вы получите и почему это важно
Сокращая вес изображений на Битриксе, вы ускоряете загрузку страниц, повышаете позиции в поиске и экономите трафик — это как заменить тяжёлый чемодан на лёгкую сумку: всё помещается, но везётся легче. В этом уроке вы узнаете, как достичь до 50 % экономии за счёт сжатия через TinyPNG и аналогичные сервисы, и как внедрить процесс в ваш сайт без потери качества.
1. Почему вес изображений тормозит сайт
| Проблема | Последствия | Как выглядит в реальном времени |
|---|---|---|
| Большие файлы (PNG > 300 KB) | Долгая загрузка, высокий bounce‑rate | Пользователь ждёт 5 сек +, пока откроется товар |
| Неоптимизированные форматы | Неправильное кэширование, лишний трафик | Сервер отсылает 10 МБ вместо 5 МБ |
| Отсутствие WebP/AVIF | Браузеры используют старый PNG/JPEG | Тот же файл занимает в 2‑3 раза больше места |
Ключевой термин: вес — размер файла в килобайтах/мегабайтах, который браузер скачивает.
2. Основы сжатия изображений
| Тип сжатия | Как работает | Пример |
|---|---|---|
| Lossless (без потерь) | Удаляет избыточные данные, сохраняет всё визуальное | PNG‑optimizers (optipng, pngcrush) |
| Lossy (с потерями) | Уменьшает детали, которые человеческий глаз не различает | JPEG‑optimizers, TinyPNG, WebP‑converter |
Аналогия: представьте, что вы упаковываете чемодан. Lossless — вы аккуратно складываете вещи, не бросая ничего. Lossy — вы решаете, что некоторые мелочи (пары носков) можно оставить дома, чтобы чемодан стал легче, но всё равно в нём будет всё необходимое.
3. TinyPNG и его аналоги
- TinyPNG – онлайн‑сервис, который использует smart lossy‑алгоритм для PNG и JPEG.
- CompressPNG, Kraken.io, ImageOptim, Squoosh – бесплатные/платные альтернативы с похожими результатами.
Важно: большинство сервисов позволяют обрабатывать до 20 изображений за раз бесплатно; для автоматизации нужен API‑ключ.
Пример сравнения (по среднему сжатию)
| Формат | Исходный размер | После TinyPNG | Экономия |
|---|---|---|---|
| PNG 800 × 600 | 350 KB | 180 KB | 49 % |
| JPEG 1200 × 800 | 500 KB | 260 KB | 48 % |
| WebP (через TinyPNG) | 300 KB | 150 KB | 50 % |
4. Как подключить автоматическое сжатие в Битриксе
4.1. Установка модуля‑плагина
- Скачайте модуль «Image Optimizer» из маркетплейса Битрикса.
- Загрузите его через админку → «Marketplace» → «Установить».
- В настройках укажите API‑ключ TinyPNG (получить на странице TinyPNG API).
4.2. Принцип работы
- При загрузке нового изображения скрипт отправляет файл на сервер TinyPNG.
- Сервис возвращает сжатый вариант, который сохраняется в
/upload/optim/. - Оригинал сохраняется в резервной папке (на случай отката).
4.3. Пример кода (php)
function compressImage($filePath) {
$apiKey = 'YOUR_TINYPNG_KEY';
$data = file_get_contents($filePath);
$ch = curl_init('https://api.tinypng.com/shrink');
curl_setopt($ch, CURLOPT_USERPWD, "api:$apiKey");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ($info['http_code'] == 201) {
$json = json_decode($result, true);
$compressed = file_get_contents($json['output']['url']);
file_put_contents($filePath, $compressed);
}
}
Совет: оборачивайте функцию в
try/catch, чтобы при ошибке сохранять оригинал.
4.4. Интеграция с компонентом «catalog.item»
AddEventHandler('main', 'OnAfterFileSave', function($arFile){
if (in_array($arFile['CONTENT_TYPE'], ['image/png','image/jpeg'])) {
compressImage($_SERVER['DOCUMENT_ROOT'].$arFile['SRC']);
}
});
Эта обработка гарантирует, что каждое загруженное изображение будет автоматически оптимизировано.
5. Автоматизация на уровне сервера (cron)
Если у вас уже есть готовый контент, запустите cron‑задачу:
0 2 * * * php /path/to/bitrix/modules/image_optimizer/cron.php
cron.php проходит по папке /upload/, проверяет файлы без суффикса -opt и отправляет их в TinyPNG.
Плюс: можно задать порог — сжатие только файлов > 150 KB, чтобы не тратить ресурсы на уже лёгкие изображения.
6. Лучшие практики и подводные камни
| Практика | Почему важна | Как реализовать |
|---|---|---|
| Сохраняйте оригиналы | На случай отката и необходимости в разных размерах | Делайте резерв в /upload/orig/ |
| Используйте WebP | Современные браузеры показывают его в 2‑3 раза быстрее | Включите конвертацию в модуле «Image Optimizer» |
| Не сжимайте SVG | SVG уже векторный, сжатие может разрушить структуру | Исключайте их из обработки |
| Проверяйте визуальное качество | Потери могут быть заметны на деталях | Сравните до/после в графическом редакторе |
| Контролируйте количество запросов к API | Бесплатный тариф ограничен 500 запросами в месяц | Ставьте кэш и проверяйте размер перед отправкой |
7. Как измерять эффект
- Google PageSpeed Insights – сравните показатели First Contentful Paint до и после.
- WebPageTest – обратите внимание на Weight (общий размер).
- Лог‑анализ – в
access_logищите запросы к/upload/и вычисляйте средний размер.
Пример: после внедрения TinyPNG ваш средний вес изображений упал с 350 KB до 170 KB → 48 % экономии, а время загрузки главной страницы сократилось с 4,2 сек до 2,3 сек.
8. Быстрый чек‑лист
- [ ] Получить API‑ключ TinyPNG (или аналог).
- [ ] Установить модуль‑плагин в Битрикс.
- [ ] Настроить обработчик
OnAfterFileSave. - [ ] Добавить cron‑задачу для уже существующих файлов.
- [ ] Включить конвертацию в WebP и исключения SVG.
- [ ] Проверить результаты в PageSpeed и WebPageTest.
Практика для закрепления
-
Расчёт экономии
У вас есть 12 изображений PNG, каждый весит 400 KB. После обработки в TinyPNG они стали 210 KB. Какой процент экономии в среднем? -
Код‑задача
Напишите функциюshouldCompress($size)``, возвращаетtrue, если размер файла превышает 150 KB, иначеfalse. Приведите пример её использования в обработчикеOnAfterFileSave`. -
Сценарий интеграции
Опишите, какие шаги вы предпримете, если после внедрения сжатия на сайте возникли артефакты (пиксели, искажения) только у JPEG‑изображений. -
Сравнение сервисов
Выберите два бесплатных аналога TinyPNG (например, Kraken.io и Squoosh) и сравните их по показателям: средний процент сжатия, время обработки, наличие API. Сформулируйте вывод, какой сервис лучше подходит для автоматизации в Битриксе. -
Оптимизация под мобильные устройства
Как вы будете настроить автоматическое создание ретина‑изображений (2×) и их последующее сжатие, чтобы не перегружать мобильных пользователей? Опишите последовательность действий в админке Битрикса.
Готово! Теперь вы знаете, как сократить вес изображений в два раза, ускорить ваш сайт на Битриксе и улучшить пользовательский опыт. Применяйте полученные навыки, проверяйте результаты и держите ваш онлайн‑магазин в форме.
Если нужен быстрый старт на VDS‑хостинге, обратите внимание на предложения VDSina – они поддерживают все необходимые PHP‑расширения и позволяют масштабировать ресурсы под растущий трафик.
Английский видеочат для путешествий
Чат рулетка 2026: Интерактивные элементы
Чат-рулетка: случайный собеседник в одно нажатие
Чат с Аней: Моё общение
Этикетки для упаковки и доставки
Как настроить бэкапы для вашего сайта на хостинге Host.bg
Как обновить PHP на хостинге Host.bg
Как решить проблемы с загрузкой сайта на Host.bg
Калькулятор зарплаты SEO-оптимизатора
Курска: автошколы с бесплатной консультацией
Лайфхаки для управления хостингом на Host.bg
Монетизация через платные услуги
Мск: ИП или ООО — лучший старт для бизнеса?
Общение в интернете без риска
Ошибки при настройке хостинга и их решения
Проблемы с доменами и их решения на хостинге Host.bg
Продвижение сайтов: поисковое продвижение + ИИ
Ремонт квартир с использованием норм
Roblox: игровая культура
Сайтостроение: основы и секреты
Сколько стоит биткоин
Сравнение ценовых диапазонов хостинга Host.bg
Трубная продукция для трубопроводных конструкций
Утепление в Твери и Брянской области
Vdsina: Великая сила
Видео рулетка 18+
Видеочат с случайным собеседником онлайн
Видеообщения по всему миру
Выбор оптимального плана хостинга на Host.bg