После нескольких лет работы WordPress-сайт почти неизбежно обрастает медиатекой: старые изображения от предыдущего дизайна, тестовые баннеры, фотографии удалённых проектов, десятки миниатюр и тяжёлые JPEG или PNG. Удалять всё подряд опасно, а проверять сотни файлов вручную — долго. Поэтому я собрал для себя A — Медиа: инструмент, который объединяет WebP-конвертацию, аудит использования, карантин и восстановление.
Почему обычной медиатеки недостаточно«Не прикреплено к записи» ещё не означает «не используется»
В WordPress изображение может быть загружено через медиатеку, использовано в Elementor, в пользовательском поле, в настройках темы или просто вставлено в HTML по прямому URL. Поэтому ориентироваться только на поле привязки к записи нельзя. Даже официальный механизм удаления вложения работает с attachment и его файлами, но сам по себе не определяет, используется ли картинка где-нибудь на фронтенде.
У Elementor задача ещё интереснее: редактор хранит структуру страницы в JSON внутри метаполей WordPress. В этой структуре могут находиться изображения контейнеров, виджетов, галерей и адаптивных настроек. Поэтому точный аудит должен смотреть не только на обычный текст записи, но и на данные конструктора.
Сначала ищем подтверждённое использование на действующем сайте. Только после этого формируем список кандидатов на очистку. Корзина, ревизии, старые черновики и неактивные шаблоны не должны автоматически защищать ненужный файл.
Что проверяет A — Медиа перед очисткой
В моей схеме аудит построен вокруг живого сайта. Плагин проверяет опубликованные страницы и записи, публичные архивы, активные Elementor-шаблоны, метаполя, настройки WordPress, блоки A — Universal Code Blocks и другие места, где изображение реально может быть связано с текущим интерфейсом.
- опубликованные страницы и записи;
- главные изображения записей;
- данные Elementor в метаполях;
- активные шаблоны Header, Footer, Single и Archive;
- настройки WordPress и темы, включая логотип и favicon;
- HTML и CSS внутри A — Universal Code Blocks;
- WooCommerce-галереи и пользовательские поля, когда они присутствуют;
- прямые URL и ID изображений в проверяемых данных.
Как я перевожу JPEG и PNG в WebP
Для конвертации A — Медиа использует штатный механизм WordPress Image Editor. WordPress сам выбирает доступный редактор — обычно GD или Imagick — и через него создаёт новый файл. В настройках плагина я использую качество 85: это не математически lossless-режим, а практический компромисс, при котором изображение обычно выглядит так же для глаза, но может занимать заметно меньше места.
Перед заменой плагин сначала создаёт WebP и проверяет, что файл действительно создан, читается и имеет корректный MIME-тип. Если оптимизация не даёт смысла — например, новый файл получается тяжелее исходника — такой результат лучше пропустить, чем менять картинку только ради расширения .webp.
- тот же attachment ID, чтобы не ломать привязки по ID;
- alt, title, caption и description;
- новые размеры миниатюр WordPress;
- ссылки на файл в записях, метаполях и Elementor;
- исходник и резервную копию до финальной проверки сайта.
Почему замена ссылок так же важна, как сама конвертация
Создать WebP-файл недостаточно. Если страница продолжит ссылаться на старый JPEG, то новый файл просто будет лежать рядом и ничего не ускорит. Поэтому после конвертации A — Медиа обновляет прямые ссылки в содержимом WordPress, Elementor-данных, метаполях, настройках и моих собственных Code Blocks. Для Elementor учитываются и обычные URL, и экранированные варианты внутри JSON.
При этом я специально не делаю автоматическое удаление исходника в ту же секунду. Сначала нужно открыть сайт, проверить главную, статьи, промпты, мобильную версию и несколько страниц Elementor. Только после проверки старый файл можно удалить из истории конвертаций.
Карантин вместо опасной кнопки «Удалить всё»
Самая рискованная часть любого очистителя медиатеки — окончательное удаление. WordPress при принудительном удалении attachment удаляет и связанные файлы. Поэтому в A — Медиа между аудитом и удалением есть отдельный карантин.
Копирование
Выбранный файл сначала копируется в защищённую папку карантина.
Проверка
Контрольная сумма SHA-256 сравнивает исходник и копию, чтобы убедиться, что файл не изменился.
Решение
После проверки можно восстановить файл или удалить его окончательно отдельной командой.
Такой подход особенно важен на рабочем сайте. Даже хороший аудит не может гарантировать знание о внешнем CDN, нестандартном скрипте или ссылке из стороннего сервиса. Поэтому карантин — не лишняя перестраховка, а нормальный этап безопасной очистки.
Безопасный порядок работы на действующем WordPress-сайте
- Сделайте резервную копиюСохраните базу данных и папку
wp-content/uploadsдо первой массовой операции. - Проверьте 2–3 тестовых изображенияЗагрузите крупный JPEG и PNG, конвертируйте их в WebP и сравните качество и размер.
- Запустите глубокий аудитДождитесь завершения проверки живых страниц, записей и активных шаблонов.
- Просмотрите статус каждого сомнительного файлаНе переносите в карантин системные изображения и всё, что плагин пометил как используемое.
- Отправьте кандидатов в карантинПроверьте сайт после перемещения: главную, блог, промпты, шаблоны Elementor и мобильную версию.
- Удаляйте окончательно только после проверкиЕсли есть сомнение, оставьте файл в карантине или восстановите его.
Кому пригодится такой инструмент
A — Медиа особенно полезен на сайтах, которые пережили несколько редизайнов или долго собирали контент. Это портфолио, корпоративные сайты, каталоги, блоги, WooCommerce-магазины и проекты на Elementor, где в uploads постепенно остаётся много старых материалов.
- дизайнеру или разработчику после большого редизайна;
- владельцу сайта со старым портфолио;
- администратору WordPress перед переносом или резервным копированием;
- магазину с большим количеством старых карточек и изображений;
- тому, кто хочет перевести оставшиеся JPEG/PNG в WebP без ручной обработки каждого файла.
Я подготовил отдельную версию плагина с WebP-конвертацией, аудитом использования, массовым выбором, карантином, восстановлением и историей операций. В комплект также входит автономный HTML-гайд на русском языке, который открывается в обычном браузере.
Технические нюансы, которые стоит помнить
В основе конвертации используется стандартный WordPress Image Editor. Elementor, в свою очередь, хранит структуру страниц в JSON-данных внутри WordPress post meta — это описано в официальной документации Elementor. Именно поэтому простой поиск по содержимому записи не может заменить полноценный аудит.
Для окончательного удаления WordPress использует собственный механизм работы с attachment и связанными файлами. Поэтому перед массовой очисткой всегда должна быть резервная копия, а на рабочем сайте лучше оставлять этап карантина даже тогда, когда список «не используется» выглядит очевидно.
Оптимизация медиатеки — это не только «сжать все картинки». Надёжный процесс выглядит иначе: найти реальное использование → конвертировать нужные JPEG/PNG в WebP → обновить ссылки → сомнительные файлы отправить в карантин → проверить сайт → только потом удалять окончательно. Именно под такой сценарий я и собирал A — Медиа.
Другие практические материалы о WordPress и автоматизации собраны в блоге ANVARTAR.