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