Очистка и оптимизация базы данных WordPress

Очистка, оптимизация и ускорение базы данных WordPress

В процессе эксплуатации блога на WordPress его база данных постепенно засоряется различной ненужной информацией: остатками удалённых плагинов, черновиками, спам-комментариями и другими устаревшими записями.

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

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

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

Удаление устаревших значений из таблицы wp_postmeta

Проблема состоит в том, что каждый раз при установке и активации нового плагина или темы WordPress создаёт дополнительные метаданные. После удаления тем и плагинов в таблице wp_postmeta нередко остаются ненужные записи.

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

Настоятельно рекомендую сделать полную резервную копию базы данных. Например, воспользуйтесь инструментом экспортирования в phpMyAdmin.

Для начала очистки открываем phpMyAdmin, выбираем базу данных, находим таблицу wp_postmeta и напротив в этой же строке нажимаем Структура:

Видим такие имена параметров, как meta_id, post_id, meta_key и другие. Нас интересует meta_key — находим строку с таким именем и нажимаем на Уникальные значения:

В результате мы увидим номера строк, а также уникальные значения мета-ключей. Здесь начинается самое интересное — необходимо пристально их изучить и выявить «лишние». Очень важно быть особо внимательными на этом этапе, потому что никто кроме вас не сможет определить, какие именно строки являются «лишними»!?

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

  • _aioseo_description — плагин All In One SEO Pack
  • _aioseo_keywords — плагин All In One SEO Pack
  • _aioseo_title — плагин All In One SEO Pack
  • _edit_last — время последнего редактирования записи (WordPress)
  • _edit_lock — метка о текущем редактировании записи (WordPress)
  • _encloseme — обработка видео и аудио ссылок в контенте (WordPress)

Анализируем список значений и удаляем те, которые принадлежат давно удалённым плагинам. Допустим, в качестве примера, я намеренно удалил плагин All In One SEO Pack, а после удаления в базе данных остались метаданные, которые больше не нужны.

Чтобы найти эти устаревшие метаданные можно воспользоваться формой поиска в phpMyAdmin. Нажмите на вкладку Поиск и затем напротив поля с названием meta_key в поле Значение напишите одно из найденных лишних уникальных значений. В моём примере это _aioseo_title. Затем нажимаем на кнопку Вперёд:

В итоге будут найдены строки, которые содержат эти устаревшие метаданные, их без особой сложности можно удалить из базы данных WordPress:

Рекомендую всем читателям как можно раньше провести ревизию своих блогов, выявить устаревшие плагины (не обновляемые более двух лет) и попытаться найти альтернативную замену! 💡

Очистка таблицы wp_commentmeta

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

Однажды я обратил внимание на такую ситуацию: таблица wp_commentmeta стала занимать чрезвычайно много дискового пространства, хотя самих комментариев было не много. Оказалось, одной из основных причин, почему база данных занимает много места, может стать наличие огромного числа спам-комментариев и установленный плагин Akismet Anti-spam: Spam Protection.

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

Их можно удалить из таблицы wp_commentmeta базы данных WordPress. Для этого нужно выбрать базу данных в phpMyAdmin, перейти на вкладку SQL и в появившемся окне вставить следующий SQL-запрос:

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);

После чего нажать Вперёд. Возвращаясь на начальную страницу phpMyAdmin я отметил ощутимое сокращение размера базы данных, за счёт очистки таблицы wp_commentmeta. Таблица уменьшилась в размере почти в 5 раз! 

Удаление старых ревизий и автосохранений

WordPress сохраняет каждую версию записи (редакцию, ревизию), что со временем увеличивает размер базы данных. Для очистки базы данных от старых данных используйте SQL-запрос:

DELETE FROM wp_posts WHERE post_type = 'revision';

Чтобы отключить сохранение ревизий, добавьте в файл wp-config.php:

define('WP_POST_REVISIONS', false);

Более подробную информацию о редакциях записей на WordPress, их предназначении и настройке читайте в отдельной статье.

Удаление старых slug-записей

Если вы изменяли URL записей, то WordPress сохранял старые адреса для редиректа в мета-ключе _wp_old_slug. Он содержит информацию о предыдущем URL-адресе страницы, если были изменения.

Чтобы удалить старые slug-записи, используйте SQL-запрос:

DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';

Очередной пример из жизни: когда я создавал самую первую запись на своём блоге, то это была не новая запись, а редактировался пост по умолчанию, созданный в процессе установки WordPress с названием «Привет мир!» и ссылка имела вид: https://webliberty.ru/privet-mir/

Со временем, подумав о том, что на каждом втором блоге будет точно такой же URL, я решил его изменить и сделал так: https://webliberty.ru/moy-pervyiy-post/

Прошло время, поисковые системы уже переиндексировали заново данную страницу с новым URL, только Google никак не хотел выкидывать старый адрес из поиска, несмотря на то, что при его вводе в адресную строку браузера происходил 301 редирект на новый адрес 🙁.

Лишь только после удаления _wp_old_slug сервер стал отдавать старый URL с ошибкой 404 (страница не найдена) и Google наконец-то выкинул несуществующую страницу из поиска.

Удаление времени последнего редактирования

Мета-ключ _edit_last содержит информацию о времени последнего редактирования записи. Чтобы удалить эту информацию, используйте SQL-запрос:

DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';

У меня на блоге для каждой записи выведена дата публикации и дата последнего редактирования. Для чего это нужно? Допустим, статья опубликована очень давно, но постоянно обновляется и дополняется, таким образом пользователи увидят, что статья по прежнему актуальна на данный момент. Я не удаляю эти данные.

Удаление информации о редактировании

Мета-ключ _edit_lock сохраняет метку времени и ID пользователя, который редактирует запись. Благодаря этому в консоли WordPress мы можем видеть, что запись в текущий момент редактируется другим пользователем. Актуально, если на сайте зарегистрировано несколько авторов.

Чтобы удалить эту информацию, используйте SQL-запрос:

DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';

Оптимизация базы данных

После удаления ненужных данных следует оптимизировать таблицы, чтобы освободить место. Для проведения этой процедуры открываем phpMyAdmin, выбираем базу данных, отмечаем все таблицы и с отмеченными проводим обслуживание — Оптимизировать таблицу:

Или чтобы оптимизировать только стандартные таблицы базы данных WordPress, используйте SQL-запрос:

OPTIMIZE TABLE `wp_commentmeta`, `wp_comments`, `wp_links`, `wp_options`, `wp_postmeta`, `wp_posts`, `wp_termmeta`, `wp_terms`, `wp_term_relationships`, `wp_term_taxonomy`, `wp_usermeta`, `wp_users`

Плагины для очистки и оптимизации базы данных

Для автоматической очистки базы данных можно использовать плагины для WordPress, например, Advanced Database Cleaner.

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

  • Удаление ревизий, черновиков, временных записей.
  • Оптимизация таблиц базы данных.
  • Удаление неиспользуемых meta-ключей.

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

Автоматизация очистки через Cron

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

if (!wp_next_scheduled('weekly_db_cleanup')) {
    wp_schedule_event(time(), 'weekly', 'weekly_db_cleanup');
}

add_action('weekly_db_cleanup', function() {
    global $wpdb;
    $wpdb->query("DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug'");
    $wpdb->query("DELETE FROM wp_posts WHERE post_type = 'revision'");
});

Подведём итог

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

И напоследок, хочу обратить внимание, что в моём примере приведен стандартный префикс wp_ для таблиц, у вас он может отличаться. Надеюсь, мне удалось все понятно объяснить, если появились вопросы — не стесняйтесь и смело задавайте в комментариях!

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(7 голосов, в среднем: 5 из 5)
Опубликовано 30.09.2014

Комментарии

  1. Максим:

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

    Хорошо для этих целей подходит cishost.ru там есть тариф специально для этих целей цена 10 рублей в месяц (основной проект на этом хостинге держать не советую служба поддержки не круглосуточная). А в общем статья не лишена пользы.

    Ответить

  2. Webliberty:

    Максим, согласен в том плане, что основной блог не стоит использовать в качестве тестовой площадки. Но все же, тем кто раз в пол года решит опробовать новый плагин нет смысла держать дополнительный хостинг и тем более оплачивать его. Как вариант — локальный хост, например на денвере.

    Ответить

  3. Ahawks:

    Очень полезная статья, попробую сегодня завтра этот метод, а то очень часто изменяю то или другое на блогах. Спасибо за материал.

    Ответить

  4. Webliberty:

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

    Ответить

  5. BloggerMen:

    Никогда не чистил базу. Теперь поэкспериментирую, надеюсь все обойдется без приключений.

    Ответить

  6. Webliberty:

    BloggerMen, все будет хорошо, на себе проверял. Будет интересно узнать результаты!

    Ответить

  7. Nodar Giorgadze:

    Интересно, только у меня SQL-запрос не выполнился. Нажал выполнить, спросило уверен ли я, а потом просто ничего не происходит — не выводятся результаты запроса. Неужели у меня нечего чистить? 🙂

    Ответить

  8. Webliberty:

    Nodar Giorgadze, если ничего не произошло, вероятно чистить нечего, т.к. если бы запрос был неправильным, то возникнет ошибка. Может Вы пользуетесь кэширующими (оптимизирующими и пр.) плагинами?

    Ответить

  9. armid:

    Nodar Giorgadze, если у вас используется не стандартный префикс таблиц wp_, тогда вам нужно его поменять в запросе.

    Ответить

  10. Ahawks:

    Почистил наконец по твоему методу БД 326 строк удалено) Надеюсь, это пошло во благо) Что-то на новом хостинге блог стал медленнее, надо будет поработать над его скоростью.

    Ответить

  11. Webliberty:

    Ahawks, даже не сомневайся) Чтобы блог работал быстрее попробуй оптимизировать картинки, сжать javascript, почисти исходный код, оптимизируй CSS и т.д. Много всего можно попробовать.

    Ответить

  12. Татьяна:

    Почистила, 355 строк удалено. Надеюсь, что все будет работать быстрее.

    Ответить

  13. Webliberty:

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

    Ответить

  14. Антон:

    А эта очистка не опасна для сайта? 💡

    Ответить

  15. Webliberty:

    Антон, нет, не опасна если Вы имеете в виду запрос к базе данных из рекомендуемого поста. Не забывайте делать резервные копии перед изменениями и все будет в порядке!

    Ответить

  16. Владимир Жданов:

    Мощно! Я люблю mysql и phpmyadmin. В работе с сайтом это отличный инструмент, все как на ладони. Если знать большинство команд, то работа намного упрощается. Наверное, в скорем, напишу небольшую заметку про mysql/
    СпасибО! 😉

    Ответить

  17. Денис, спасибо за такую полезную информацию. Обязательно этим займусь. На самом деле спама очень много.

    Ответить

  18. Webliberty:

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

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

    Ответить

  19. Владимир Жданов:

    И такое у меня было, доигрался серьезно однажды, введя команду DELETE FROM table WHERE id < 1000, а нужно было удалить десяток записей после 1000… Следовательно знак ставить не 😀

    Ответить

  20. Webliberty:

    Владимир, всякое бывает) В таких ситуациях главное не паниковать, как многие начинают, да что там говорить, я и сам начинаю паниковать если что-то не так пошло. Главное собраться, успокоиться и подумать как исправить. Для этого конечно же потребуется резервная копия базы данных, которую желательно делать вручную и хранить на своем компьютере.

    Ответить

  21. Владимир Жданов:

    На мое счастье, у меня была резервная копия. Я жутко побелел, думал идти писать заявление 😀 Но вида не подал, чтобы не спросили, а что это я такой взволнованный.

    Ответить

  22. Лесоруб:

    Денис, здравствуйте…У меня вчера пришло сообщение с хостинга Тайм Вэб, что дисковое пространство превышено и предлагают поменять тариф. Новый тариф предполагает оплату только за весь год, а меня это сейчас не устраивает 😐 Подскажите, как справиться с проблемой.

    Ответить

  23. Webliberty:

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

    А также при вставке изображений предварительно их сжимайте перед загрузкой (уже опубликованные также можно сжать). Далее если у Вас используются плагины для создания резервных копий, то вероятно они их сохраняют на сервере, что тоже сокращает свободное дисковое пространство.

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

    Ответить

  24. apisklov:

    У меня вообще данная таблица 16 мб весит. Надо очистить. Только ты забыл про префикс написать, не у всех он wp_

    Ответить

  25. Владимир Жданов:

    Да почти у всех, мало кто меняет при установке. Наверное единицы. Я работаю по службе с сотней вордпрессов, только у одного префикс не wp_… 😉

    Ответить

  26. И от меня спасибо, Денис! В жизни не додумалась бы сама, что базу данных надо чистить))) А добра там, да, скопилось…. 😮

    Ответить

  27. Владимир Жданов:

    Лесоруб, здравствуйте! Возможно что место превысил Ваш лог ошибок, либо еще какой-нибудь лог. Отключить или поинтересоваться можно, написав хостеру. Ну можно просто сменить хостинг, Locum очень хороший выбор. И цены нормальные и скорость… Я доволен!

    Ответить

  28. Webliberty:

    apisklov, правильно замечание, благодарю! В коде запроса нужно изменить префикс на свой, если он был изменен, а не применен по умолчанию.

    Владимир, а кем работаешь, если не секрет? Вот бы мне такую работу, чтобы и увлечение и основное занятие совпадали ❓

    Ответить

  29. Роман Малышев:

    Полезно! Поудалял комментарии и у себя на некоторых сайтах WordPress

    Ответить

  30. Мишка на сервере:

    Оптимизация вещь довольно таки не простая, тут главное не перестараться, а то можно всех посетителей спугнуть и тогда сайт без будущего 😉

    Ответить

  31. Webliberty:

    Мишка на сервере, на то и делается резервная копия, чтобы откатить изменения назад в случае чего)

    Ответить

  32. Людмила:

    Денис, а комментарии не удалятся? А то потом будет проблема с их восстановлением.

    Ответить

  33. Webliberty:

    Людмила, нет не удалятся, никаких проблем после чистки не возникнет, если сомневаетесь — сделайте резервную копию.

    Ответить

  34. Людмила:

    У меня резервные копии делаются на автомате. Только я еще не пользовалсь ими для восстановления. Надеюсь, что и дальше не придется. А почистить надо. Накопилось много всего. ❗

    Ответить

  35. Яна:

    Денис, я Вам написала письмо, пока не получила ответа, руки чешутся попробовать решить мою проблему самой)

    У меня при попытке зайти на блог иногда выдает «Ошибка установки соединения с базой данных». С хостингом все в порядке — остальные мои блоги работают без проблем, то есть, проблема с базой данных. Мне ее посоветовали почистить. Бекап весит 16 мб, то есть, если я сделаю ошибку в таблице, то не знаю, как импортировать такой большой бекап. Поэтому боюсь сама рисковать и оптимизировать таблицы — за три года туда заглядывала только один раз, и то потому что не могла зайти по паролю, нужно было его изменить. Короче, я нуждаюсь в помощи профессионала. Чешу руки, но начать что-то делать не решаюсь 🙁

    Кстати, а Вы мое письмо получили? Я его отправила по форме обратной связи. Очень жду ответа, очень 🙂

    Ответить

  36. Webliberty:

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

    Без опаски пользуйтесь данным способом очистки базы данных, никаких печальных последствий не возникнет. Я наверное уже писал выше, что провожу данную операцию раз в неделю. Как видите, уже прошло много времени со дня публикации этого поста и все в порядке, все работает)

    Также я рекомендую воспользоваться этими советами, чтобы снизить объем базы данных. Письмо получил)

    Ответить

  37. Яна:

    А я уже попробовала, пока Вас дожидалась. Действительно, ничего не случилось. Проблема с плохой связью с базой данных исчезла до того, как я почистила таблицу, поэтому, возможно, действительно что-то было на хостинге. Но блог пока не стал работать быстрее, буду изучать дальше Ваш блог и оптимизировать свой, чистить другие таблицы БД и т.д. и т.п. Спасибо Вам за блог и за обратную связь — все очень важное)

    Ответить

  38. Михаил:

    Спасибо за статью! У вас она весила 5.1 Мб, у кого то 16 мб, значит у меня рекорд)))

    wp_commentmeta весила 135 метров, вся таблица около 145. Удалено 36740 строк.

    Ответить

  39. Webliberty:

    Михаил, вот это да! Наверное с таким размером БД очень сложно восстанавливать из архива, ведь есть ограничения на размер загружаемого файла… Скорее всего приходится прибегать к помощи поддержки хостера…

    Ответить

  40. Людмила:

    Хотела почистить базу но у меня вместо wp_commentmeta написано wscrp_commentmeta. Что делать?

    Ответить

  41. Яна:

    Денис, у меня такая проблема — моя резервная копия весит 16 мб. Именно поэтому я и пытаюсь почистить базу. Но боюсь, что я потом не смогу втиснуть такой большой бекап в вордпресс, там же нужен файл, размером не больше 8 мб. Что делать?
    Спасибо за блог. Он просто сокровище.

    Ответить

  42. Webliberty:

    Людмила, используйте в запросе имя своей таблицы. У Вас просто задан свой префикс к таблицам, по умолчанию он wp_

    Выполните запрос:

    DELETE FROM wscrp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)

    Не забудьте про резервную копию! Это так, на всякий случай 🙂

    Ответить

  43. Webliberty:

    Яна, обратиться за помощью в техподдержку хостинга, если понадобиться восстановление. И конечно же просто проконсультируйтесь у них как поступать в таких ситуациях. У меня сейчас база около 5 Мб, пока не сталкивался с этим, но скоро по всей видимости придется)

    Ответить

  44. Жанна:

    У меня проблема «Так вот, из моего примера Вы уже поняли, что WordPress хранит в базе данных старые адреса страниц и при их смене производит редирект на новый адрес» не исчезла 🙁

    Ответить

  45. Webliberty:

    Жанна, у Вас быть может настроен редирект с помощью плагина какого-нибудь?

    Ответить

  46. allemiko:

    А вот я даже туда не суюсь дальше, боюсь и обхожу стороной, еле как перенес свою базу на свой хостинг, а оптимизировать и менять, уж точно испорчу 😈

    Ответить

  47. Webliberty:

    Алем, думаешь я там часто ковыряюсь? 😈 Так, пару раз пришлось покопаться, когда с древовидными комментариями начудил, да так, что комментарии к одной записи перебежали на другую страницу, пришлось разбираться…)

    Ответить

  48. Otshelnik-fm:

    Выполнил по вашему методу — 7000 строк нашел и удалил это — 300 килобайт из 30 мегабайтной базы. Эти килобайты то конечно фигня (1%), но вот 7000 строк… Вообщем не жалею)

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

    Ответить

  49. Татьяна Чиронова:

    А вот расшифровать таблицы из под оставленных плагинов оказалось самым трудным. Не решилась. А комментарии от спама регулярно чищу, последний раз 4 мб удалила.

    Ответить

  50. Webliberty:

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

    База данных — это «сердце» блога, из нее подгружаются данные при динамическом построении страницы, поэтому ее нужно беречь 🙂

    Ответить

  51. Михаил:

    Webliberty, что комментарии к одной записи перебежали на другую страницу, — Вот с этого места — можно подробнее? У меня глюки какие-то, комментарии пишутся и отображаются в ней правильно. Но на страницах сами комментарии перебегают черт знает куда…

    Ответить

  52. Webliberty:

    Михаил, сложно сказать, у меня это было после манипуляций с этими комментариями. Несколько убежало и менял в базе их id, чтобы перенести к другому посту. Т.е. проблема не массовая и с тех пор не появлялась. Если у Вас всегда такое происходит — попробуйте по отключать плагины, может какой-то из них глючит…

    Ответить

  53. Галина Шевалер:

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

    Хотя если по-большому счету, то весь ваш сайт нужно брать в закладки и постепенно наводить порядок на блоге.

    Кстати, не предлагаете ли вы подобные услуги за деньги?

    Ответить

  54. Webliberty:

    Спасибо! Подобных платных услуг, к сожалению, не оказываю 😳

    Ответить

  55. Полезно! Денис, спасибо! Давно не чистил БД, скорее всего тоже висят старые данные в ней от плагинов, так как многое давно перевел на код. Надо на досуге заняться, поглядеть 😉

    Ответить

  56. Webliberty:

    Привет, Сергей! Я вот люблю все изучать, а тут как-то делал резервные копии и решил посмотреть проверить базы данных, мало ли следы взлома обнаружу… В последнее время больно много «левых» запросов идет к админке судя по логам, решил перестраховаться.

    Все таблицы просмотрел — нашел лишние, которые сохранились даже после удаления плагинов, и в стандартных обнаружил их следы. Поэтому решил почистить, чтобы был порядок)

    Ответить

  57. Сергей:

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

    Ответить

  58. Webliberty:

    Аналогично, хостер даже письма прислал дважды, это было в августе. Я закрыл доступ к админке с помощью двойной авторизации, сейчас вроде поутихло…

    Ответить

  59. Артём:

    Вовремя нашёл ваш блог — тема как раз кстати. Уже начал ломать голову над тем, как избавиться от мусора. Спасибо автору за тщательную инструкцию. Помогла.

    Ответить

  60. Дмитрий:

    Привет Денис.
    Вы тут подняли тему в комментариях. А как проверить откуда идёт нагрузка на сервер. И вообще комплексные, действенные меры по снижению нагрузок на сервер, а то хостер грозится отключить сайт.

    И ещё вопрос: плагин удалил из админки, почистил базу, зашёл через файлзиллу и в папке с плагинами обнаружил остались файлы от плагинов типа: cforms-ru_RU.mo, wp-db-backup-ru_RU.po, и т.д. что за файлы (вроде бы файлы русификации)? я так понял эти остатки тоже надо удалять ручками?

    Ответить

  61. Webliberty:

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

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

    Ответить

  62. Remo:

    С автором полностью согласен — ПЕРЕД ТЕМ КАК ЧТО-ТО ДЕЛАТЬ С БАЗОЙ ДЕЛАЙТЕ БЕКАП! А так у WP есть один хороший плагин, который также чистит базу чуть ли не в режиме реального времени, называется — WP-Optimize. Посмотрите полезный плагин!

    Ответить

  63. Webliberty:

    WP-Optimize хороший плагин, подойдет нетривиальных задач, однако действия описанные в статье ни один плагин не выполнит. Так что плагин такой можно установить и польза будет непременно, но и ручками тоже приходится поработать)

    Ответить

  64. Геннадий Ольховский:

    Я тоже использую WP-Optimize, но Ваше решение проблемы удаления устаревших значений очень интересно, будем пробовать… 😉

    Ответить

  65. Дмитрий:

    Добрый день! Попробовал данный метод в итоге база слетела, сайт не работает. Естественно восстановил из резервной копии. Будьте острожнее с данным методом.

    Ответить

  66. Webliberty:

    Само собой разумеется, предупреждение о необходимости сделать бэкап размещено. Хотя никто до сих пор о проблемах не сообщал, Вы первый… Да и сам я регулярно провожу чистку БД таким образом.

    Ответить

  67. Ксенья Юрьевна:

    Большое спасибо, Денис. Сразу зашла и удалила несколько строк, но есть заголовки значения которых не знаю.

    Вообще-то мне нужно сделать удаление большого куска кода на сайте. Это громадный файл шифрования нескольких плагинов. Обращалась на хостинг, говорят, что не нужно удалять. Что это нарушит корректную работу плагина bwp minyfy. Что-то не очень этому верю, потому что валидатор это фиксирует, как ошибку. Программа Xenus обозначает это ошибкой 404. Как это убрать пока не знаю. Может быть подскажете 😉

    Ответить

  68. Webliberty:

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

    Ответить

  69. Виталий:

    Здравствуйте, Webliberty!

    Огромное спасибо за нужную статью — прям в тему! 😎
    Вы правильно написали, что начинающие устанавливают кучу плагинов, а со временем их удаляют, как раз про меня) А «следы» плагинов и другой мусор накапливается 🙁

    Поэтому пришла очередь почистить БД, но в папке Плагины, что на сервере, обнаружил только установленные у меня плагины (лишних нет) и внимательно просмотрел найденные строки в meta_key никаких подозрительных значений (насколько я понимаю) не нашёл. Неужели удалённые плагины полностью удалились? Или может они ещё где-нибудь спрятались?

    Ещё вопрос, следов плагинов не нашёл, но нашёл значения _wp_old_slug, из название ясно, что это надо удалить, но вот вопросик: только эти значения? Как я понял все они идут «в связке» с другим значением, имеющим одинаковый номер, например: 469

    469 _yoast_wpseo_metakeywords интерьер трехкомнатной квартиры FORMA Design...
    469 wp_old_slug  interer-trehkomnatnoj-kvartiry-ot-forma-design

    Нужно удалять только значение _wp_old_slug или же вместе с вышеуказанным значением _yoast_wpseo_metakeywords?

    Ещё раз спасибо за толковые и профессиональные статьи и помощь,

    С уважением, Виталий

    Ответить

  70. Webliberty:

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

    Что касается _wp_old_slug, то здесь вручную лучше ничего не делать, слаги хранятся для всех записей, соответственно, чем больше записей, тем больше таких значений.

    Ответить

  71. Виталий:

    Добрый вечер!

    Спасибо за статью, прочитал и сразу внедрил в жизнь, т.е. почистил таблицу wp_postmeta, удалено 243 строки + оптимизировал данную таблицу, проблем с работой сайта нет 🙂

    Хочу и дальше внедрять Ваши статьи в жизнь!!!

    Посмотрел другие таблицы, что-то беспокоит wp_redirection_logs, уж больно большой объём 3.4 МБ, можно ли и её почистить или это нормально для этой таблицы?

    Также прошу Вас, своим опытным взглядом глянуть на строки meta_key, потому что я не очень-то и понял есть ли удалённые плагины там 🙁 При Вашем согласии, готов скинуть Вам строки meta_key на форму обратной связи.

    Очень прошу помочь, т.к. хочу закончить чистку БД и перейти к ускорению сайта по Вашим статьям.

    Спасибо за помощь, с уважением, Виталий

    Ответить

  72. Webliberty:

    Здравствуйте, Виталий! Таблица wp_redirection_logs по-умолчанию не принадлежит WordPress (стандартный список), скорее всего ее использует плагин Redirection или иной для настройки редиректов. Вы используете подобный плагин? Может раньше использовали?

    Чтобы разобраться с meta-ключами мне также понадобится список установленных тем и плагинов. При желании можете отправить, попробую оценить)

    Ответить

  73. Игорь:

    Спасибо за статью!
    Почистил и я свою базу данных от хлама, ничего сложно в этом нет.
    Результат есть, загрузка страниц стала гораздо быстрее!

    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Отправляя комментарий, вы соглашаетесь с политикой конфиденциальности.