Если на сайте много редакторов и статьи часто правят, ревизии в WordPress быстро превращаются в источник лишнего мусора в базе данных. Сам механизм полезный: он позволяет откатить текст к предыдущей версии. Но на контентных проектах с большим потоком правок старые версии записей могут накапливаться тысячами и занимать заметный объём в таблице wp_posts.
Полностью отключать ревизии имеет смысл не всегда. Чаще практичнее ограничить их количество: так вы сохраните возможность отката, но не будете хранить десятки промежуточных версий одной и той же статьи. Ниже разберу, как это сделать безопасно и что проверить после изменений.
Что именно дают ревизии и когда от них есть смысл отказаться
Ревизия — это отдельная запись в базе данных, которую WordPress создаёт при сохранении поста, страницы и некоторых других типов контента. В админке они видны в редакторе записи, где можно сравнить версии и восстановить нужную.
Для небольшого сайта это обычно не проблема. Но на проектах, где:
- редакторы несколько раз в день переписывают одни и те же материалы;
- есть длинные статьи с множеством правок;
- контент регулярно обновляется и перепубликуется;
- база данных уже заметно выросла;
ревизии начинают раздувать таблицу wp_posts, а вместе с ней — и время резервного копирования, и объём бэкапов, и иногда нагрузку на хостинг.
Полное отключение подходит, если у вас есть другой процесс контроля изменений: например, строгая редактура, внешняя система версионирования текста или вы уверены, что откат к старым версиям не нужен. Если такой уверенности нет, лучше ограничить количество ревизий, а не убирать их совсем.
Как отключить ревизии через wp-config.php
Самый прямой способ — добавить константу WP_POST_REVISIONS в файл wp-config.php. Этот файл находится в корне сайта, рядом с папками WordPress. Перед правкой обязательно сделайте резервную копию: ошибка в wp-config.php может привести к недоступности сайта.
Чтобы полностью отключить ревизии, добавьте строку выше комментария /* That's all, stop editing! Happy publishing. */:
define('WP_POST_REVISIONS', false);После этого WordPress перестанет создавать новые ревизии для записей и страниц.
Если вам нужно не отключение, а ограничение, укажите число, например 5:
define('WP_POST_REVISIONS', 5);В этом случае для каждой записи WordPress будет хранить только последние пять ревизий. Старые версии будут удаляться по мере появления новых.
Есть важный нюанс: эта настройка влияет только на новые ревизии. Она не удаляет уже накопленные записи из базы. Поэтому после изменения константы база сама по себе сразу не уменьшится.
Как удалить уже накопившиеся ревизии
Если база уже разрослась, одного отключения недостаточно. Сначала нужно остановить дальнейший рост, а затем убрать старые ревизии, которые уже лежат в базе.
Самый безопасный путь — сначала сделать полный бэкап базы данных, а потом удалить лишнее. Это особенно важно на живом сайте: массовое удаление без копии не стоит делать наугад.
Удалить старые ревизии можно несколькими способами. Самый удобный для технически подготовленного владельца сайта — через SQL-запрос в phpMyAdmin или другом клиенте к базе данных. Запрос ниже удаляет только ревизии:
DELETE FROM wp_posts WHERE post_type = 'revision';Если у вас префикс таблиц не wp_, замените его на свой. После выполнения запроса ревизии исчезнут из базы, а её размер уменьшится после оптимизации таблиц.
Но здесь есть риск: если вы удалите ревизии, откатиться к старым версиям уже не получится. Поэтому сначала проверьте, не нужны ли редакции за последние дни или недели. На контентных проектах иногда полезно сохранить хотя бы несколько последних версий перед чисткой.
Как уменьшить разрастание базы без полного отключения
Если задача — не убрать ревизии совсем, а держать базу под контролем, обычно достаточно двух шагов: ограничить число ревизий и периодически чистить старые записи.
Практический вариант для большинства сайтов с активной редактурой — хранить 3–10 ревизий на запись. Этого обычно хватает, чтобы вернуть предыдущую формулировку или откатить неудачную правку, но при этом база не растёт бесконтрольно.
Ещё один полезный момент: ревизии особенно быстро накапливаются на длинных материалах, которые часто редактируют несколько человек. Если у вас есть такие страницы, имеет смысл не отключать ревизии полностью, а ограничить их и дополнительно следить за чистотой базы.
После массовой чистки полезно оптимизировать таблицы базы данных. Это не обязательная магия, а обычная техническая процедура: удалённые записи освобождают место логически, но физический размер таблицы не всегда уменьшается сразу. На некоторых хостингах оптимизацию можно запустить из phpMyAdmin, но на больших базах делать это лучше в спокойное время, когда нагрузка на сайт минимальна.
Как проверить, что ревизии действительно отключены или ограничены
Проверка простая и не требует специальных инструментов.
- Откройте любую запись в редакторе WordPress.
- Измените текст и сохраните запись несколько раз.
- Посмотрите, появляются ли новые ревизии в блоке истории версий.
Если вы полностью отключили ревизии, новых версий в редакторе быть не должно. Если ограничили их число, WordPress будет показывать только последние сохранённые версии, а самые старые начнут исчезать по мере новых сохранений.
Дополнительно можно проверить базу данных: в таблице wp_posts не должно расти количество строк с post_type = 'revision' после новых правок, если ревизии отключены. При ограничении рост будет, но только в пределах заданного лимита.
Что ещё стоит учесть перед отключением
Ревизии — не единственный источник роста базы, но на контентных сайтах они часто дают заметный вклад. При этом отключение ревизий не влияет на черновики, автосохранения и другие механизмы редактора так, как это иногда ожидают. Автосохранение в редакторе продолжит работать, но постоянные версии записи создаваться не будут.
Если у вас на сайте несколько редакторов, заранее договоритесь о процессе работы. Когда ревизии отключены, восстановить случайно удалённый фрагмент текста уже не получится через стандартный интерфейс WordPress. В таких проектах я обычно советую не отключать ревизии полностью, а ограничивать их количеством и периодически чистить базу.
Если нужен более удобный способ управлять ревизиями и другими лишними данными сайта без ручной правки файлов и SQL, можно использовать инструменты оптимизации базы. Например, в Clearfy Pro есть функции для чистки WordPress от части технического мусора. Но даже в этом случае принцип остаётся тем же: сначала решите, нужно ли вам полное отключение или достаточно лимита, а уже потом чистите накопленные ревизии.
Для сайтов с большим количеством контента самый рабочий сценарий обычно такой: ограничить ревизии в wp-config.php, удалить старые записи из базы после бэкапа и периодически проверять, не растёт ли таблица wp_posts снова. Это даёт контроль над размером базы без потери базовой защиты от неудачных правок.