wpsell.ru wordpress WPSell

Как уменьшить нагрузку на базу данных WordPress и очистить лишние записи

Если WordPress со временем начинает отвечать медленнее, а в админке появляются задержки, часто проблема не в «тяжёлой теме», а в базе данных. На живых сайтах она постепенно забивается ревизиями записей, автосохранениями, спам-комментариями, временными данными плагинов и другими остатками, которые уже не нужны, но продолжают нагружать запросы.

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

С чего начать: что именно замедляет базу

Перед чисткой важно понимать, что в WordPress нагрузку создают не только «большие таблицы», но и большое количество мелких записей. Самые частые источники мусора:

  • ревизии записей и страниц;
  • автосохранения в редакторе;
  • спам и корзина комментариев;
  • временные данные плагинов, или transients;
  • старые метаданные записей, пользователей и таксономий;
  • остатки удалённых плагинов, которые оставили свои таблицы или записи в стандартных таблицах WordPress.

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

Сделайте резервную копию до любых изменений

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

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

Уберите ревизии и ограничьте их количество

Ревизии — одна из самых частых причин разрастания таблицы wp_posts. WordPress сохраняет промежуточные версии записей и страниц, чтобы можно было откатиться назад. Это полезно, но на сайтах с активной редактурой ревизий накапливается слишком много.

Сначала можно удалить уже накопленные ревизии. Если у вас есть доступ к базе через phpMyAdmin или другой SQL-интерфейс, перед этим обязательно проверьте резервную копию. Для удаления ревизий используется стандартный тип записей revision:

DELETE FROM wp_posts WHERE post_type = 'revision';

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

define( 'WP_POST_REVISIONS', 3 );

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

Автосохранения: не отключать, а не раздувать ими базу

Автосохранение в WordPress помогает не потерять текст при сбое браузера или соединения. Полностью отключать его обычно не стоит. Но если редакторы долго работают с материалами, автосохранения тоже создают лишние записи.

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

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

Очистите спам, корзину и временные данные

Следующий источник мусора — комментарии и временные записи. На сайтах с открытыми комментариями спам быстро забивает таблицы и усложняет работу админки. Удаляйте не только спам, но и старую корзину комментариев, если она давно не очищалась.

Транзиенты — это временные данные, которые WordPress и плагины используют для кэша и служебных задач. Обычно они сами истекают, но иногда остаются в базе дольше, чем нужно. Для их очистки есть несколько безопасных вариантов:

  • через плагины обслуживания базы;
  • через инструменты хостинга;
  • через WP-CLI, если он доступен на вашем сервере.

Если у вас есть WP-CLI, можно удалить устаревшие транзиенты командой:

wp transient delete --expired

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

Что можно чистить вручную, а что лучше не трогать

В базе WordPress есть данные, которые можно удалить безболезненно, и есть те, которые лучше не трогать без понимания последствий. Ниже — практическое разделение.

Можно чиститьКогда это уместноРиск
РевизииЕсли их накопилось слишком многоПотеря старых версий контента
Спам и корзина комментариевЕсли комментарии не нужны или давно не очищалисьМинимальный
Просроченные транзиентыЕсли сайт и плагины активно используют временные данныеНизкий
Черновики и авточерновики старых записейЕсли они больше не нужны редакцииПотеря незавершённых материалов

А вот что лучше не удалять вручную без точного понимания:

  • записи и метаданные активных плагинов;
  • таблицы, которые создал плагин и которые он продолжает использовать;
  • пользовательские поля, если вы не знаете, к чему они относятся;
  • служебные записи темы и плагинов, которые хранят настройки.

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

Сократите будущий рост базы, а не только уберите мусор

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

  • Ограничить число ревизий в wp-config.php.
  • Регулярно очищать спам и корзину комментариев.
  • Проверять плагины, которые создают много временных данных или собственных таблиц.
  • Не держать на сайте неиспользуемые плагины «на всякий случай».
  • Следить за тем, чтобы редакторы не создавали лишние дубли записей и черновиков.

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

Как проверить, что база действительно стала легче

После чистки не нужно гадать по ощущениям. Проверьте результат по нескольким признакам:

  • админка открывается быстрее, особенно список записей и комментариев;
  • таблица wp_posts стала меньше за счёт удаления ревизий;
  • уменьшилось число спам-комментариев и записей в корзине;
  • на хостинге снизилась нагрузка на MySQL в пиковые моменты;
  • редактирование материалов стало менее «тяжёлым».

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

Когда лучше не делать чистку вручную

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

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

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

×
Review
Добавь ценность своему сайту WordPress!
-15%

на Expert Review плагин WordPress

Порадуй свой сайт ⋙