Интернет-магазин с большим каталогом товаров (тысячи позиций) столкнулся с проблемой:
- сайт загружался медленно из-за тяжелых изображений в форматах JPG, PNG, GIF,
- Google PageSpeed и другие сервисы требовали перевести изображения в современный формат WebP,
- вручную конвертировать тысячи картинок и обновлять ссылки в базе данных невозможно,
- нужно было автоматическое решение, которое работает без участия человека.
Требовалось разработать систему, которая:
- Автоматически находит все изображения товаров в старых форматах
- Конвертирует их в современный формат WebP с сохранением качества
- Обновляет записи в базе данных, чтобы сайт обращался к новым файлам
- Работает по расписанию (например, 15 числа каждого месяца)
- Не ломает сайт, если что-то пошло не так (оставляет оригиналы)
Создал комплексное решение, которое включает:
/local/php_interface/include/image_optimizer/
├── ImageOptimizer.php # Основной класс оптимизации
├── WebpConverter.php # Конвертер в WebP
├── DatabaseUpdater.php # Обновление записей в БД
├── ImageFinder.php # Поиск изображений по всему сайту
├── Logger.php # Логирование результатов
└── cron_optimize.php # Скрипт для запуска по CRON
После конвертации нужно обновить все ссылки в базе данных, чтобы сайт использовал WebP.
Для сайта и бизнеса
✅ Ускорение загрузки — WebP легче оригиналов на 30-50%
✅ Улучшение SEO — Google PageSpeed больше не ругается на форматы изображений
✅ Экономия трафика — посетители скачивают меньше данных
✅ Без потери качества — конвертация с оптимальными настройками (80% качества)
Для администратора
✅ Полная автоматизация — раз в месяц всё делается само
✅ Удобный интерфейс — можно запустить вручную одной кнопкой
✅ Прозрачность — подробные логи всех операций
✅ Безопасность — оригиналы сохраняются, всегда можно откатить
Технические результаты
✅ Конвертация JPG, PNG, GIF в WebP
✅ Обновление ссылок в инфоблоках (элементы и разделы)
✅ Обновление записей в таблице b_file
✅ Работа с изображениями в файловой системе
✅ Пошаговая обработка (чтобы не перегружать сервер)
✅ Запуск по CRON (15 число каждого месяца)
✅ Подробное логирование с ротацией