WP-1

Как удалить ревизии записей WordPress и ограничить их количество

Если в WordPress накопились сотни или тысячи ревизий, это обычно видно не сразу: база данных разрастается, резервные копии становятся тяжелее, а на слабом хостинге сайт может начинать отвечать медленнее. Решение здесь двоякое: сначала удалить старые ревизии, а затем ограничить их количество, чтобы проблема не возвращалась.

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

Что можно удалить без риска

В WordPress ревизии хранятся отдельно от текущей версии записи. Удаление старых ревизий не удаляет саму запись, её контент или медиафайлы. Но есть важный нюанс: если вы удалите все ревизии, откатиться к более раннему варианту текста уже не получится. Поэтому перед чисткой имеет смысл сделать резервную копию базы данных.

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

Как удалить ревизии записей WordPress

Есть несколько рабочих способов. Выбор зависит от того, есть ли у вас доступ к панели хостинга, SSH и готовы ли вы ставить плагин для обслуживания базы.

Через плагин очистки базы

Самый простой путь для владельца сайта — использовать плагин, который умеет удалять ревизии и другие служебные записи. Такой вариант удобен, если вы не хотите работать с SQL и боитесь ошибиться в запросе. Важно только выбирать инструмент, который действительно показывает, что именно будет удалено, и позволяет сначала проверить объём мусора.

После установки плагина обычно нужно открыть раздел очистки базы, найти пункт с ревизиями и запустить удаление. Перед этим проверьте, есть ли в интерфейсе предупреждение о резервной копии. Если его нет, копию лучше сделать вручную.

Через phpMyAdmin или другой доступ к базе

Если у вас есть доступ к базе данных, ревизии можно удалить SQL-запросом. Этот способ быстрее, но требует аккуратности: запрос должен выполняться только в нужной базе, а перед ним нужна резервная копия.

Для удаления всех ревизий используется такой запрос:

DELETE FROM wp_posts WHERE post_type = 'revision';

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

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

Через WP-CLI

Если на хостинге доступен WP-CLI, это один из самых удобных способов для разработчика или технически подготовленного администратора. Команда удаляет все ревизии из базы:

wp post delete $(wp post list --post_type=revision --format=ids) --force

Команда работает только если WP-CLI установлен и у вас есть доступ к консоли. На некоторых хостингах он недоступен, поэтому заранее проверьте возможности окружения. После удаления стоит убедиться, что список ревизий действительно пустой.

Как ограничить количество ревизий в WordPress

Удалить старые ревизии — это разовая уборка. Чтобы база снова не раздувалась, нужно ограничить число новых ревизий. В WordPress для этого используется константа WP_POST_REVISIONS в файле wp-config.php.

Если задать число, WordPress будет хранить только указанное количество ревизий для каждой записи. Например, чтобы оставить по 5 ревизий, добавьте в wp-config.php строку:

define('WP_POST_REVISIONS', 5);

Добавлять её нужно выше строки /* That's all, stop editing! Happy publishing. */. После этого WordPress перестанет бесконечно копить версии и будет ограничивать их число.

Если поставить 0 или false, ревизии фактически отключаются. На практике это не лучший вариант для обычного сайта: при ошибке в тексте или случайном удалении фрагмента откатиться будет некуда. Для большинства проектов безопаснее ограничить ревизии, а не убирать их полностью.

Какой лимит выбрать

Универсального числа нет, но ориентир простой: чем чаще редактируются длинные материалы, тем полезнее оставить больше ревизий. Для новостного сайта или блога с частыми правками обычно хватает 3–5 ревизий. Для корпоративного сайта с редкими обновлениями можно оставить 2–3. Если над материалами работает несколько авторов и редактор часто возвращается к предыдущим версиям, лимит лучше не занижать.

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

Как проверить, что всё сработало

После удаления ревизий и настройки лимита стоит проверить две вещи: старые ревизии действительно исчезли, а новые больше не накапливаются без ограничений.

Самый простой способ — открыть запись в админке и посмотреть блок ревизий в редакторе. Если вы удалили всё, там не должно быть длинного списка старых версий. Затем сохраните запись несколько раз и убедитесь, что число ревизий не растёт бесконечно, а остаётся в пределах заданного лимита.

Ещё один практичный способ — посмотреть размер таблицы wp_posts в phpMyAdmin или через инструменты хостинга. После массового удаления ревизий она обычно становится заметно компактнее, хотя итог зависит от того, сколько именно мусора было в базе и как устроен сам сервер.

На что обратить внимание перед чисткой

Есть несколько типичных ошибок, из-за которых очистка превращается в проблему. Первая — удалять ревизии без резервной копии. Вторая — путать ревизии с автосохранениями и ожидать, что они ведут себя одинаково. Третья — отключать ревизии полностью, а потом обнаруживать, что редакторам не хватает возможности отката.

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

Если вам нужен не только разовый порядок в базе, но и регулярная чистка служебных данных WordPress, можно посмотреть в сторону Clearfy Pro. Он закрывает именно задачи обслуживания сайта, где важно убирать лишнее и не держать базу перегруженной без необходимости.

В итоге схема простая: сначала удаляете старые ревизии безопасным способом, затем задаёте разумный лимит в wp-config.php и периодически проверяете, не разрастается ли база снова. Для большинства сайтов этого достаточно, чтобы не жертвовать удобством редактирования и при этом не тащить за собой лишний объём данных.

×
Прокачай свой сайт WordPress!

WordPress

-20% на премиум темы и плагины

Создай сайт своей мечты ⋙