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

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

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

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

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

Оптимизация базы данных Вордпресс с помощью phpMyAdmin

Существует несколько способов выполнения SQL-запросов в БД. Самым простым вариантом является phpMyAdmin. Получить к нему доступ обычно можно в панели управления хостингом в разделе «Базы данных».

Внутри phphMyAdmin сразу переходим в раздел SQL.

Здесь мы и будем выполнять все SQL-запросы.

Сразу обращаю внимание, в примерах ниже используется дефолтный префикс таблиц Вордпресс - «wp_ » Поэтому, прежде убедитесь, что префиксы таблиц вашей БД такие же. Если нет - просто меняйте их в запросах на свои.

Удалить старые плагины и данные

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

DELETE FROM wp_postmeta WHERE meta_key = "META-KEY-NAME";

Вместо META-KEY-NAME нужно указать ключи удаляемых плагинов. Их можно найти в таблицах БД.

Удалить все ревизии

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

Удалить разом все ревизии можно таким запросом:

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) LEFT JOIN wp_term_taxonomy d ON (b.term_taxonomy_id = d.term_taxonomy_id) WHERE a.post_type = "revision" AND d.taxonomy != "link_category";

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

Иногда комментариев со спамом становится столько, что вручную их удалить уже не удаётся. С помощью одного SQL-запроса можно удалить сразу все комментарии помеченные как «Спам».

DELETE FROM wp_comments WHERE comment_approved = "spam";

Удалить все неподтвержденные комментарии

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

DELETE from wp_comments WHERE comment_approved = "0";

Удалить все неиспользуемые теги

Удалить все теги, которые не связаны ни с одним постом можно следующим запросом:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0); DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms); DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

Удалить старые шорткоды

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

UPDATE wp_post SET post_content = replace(post_content, "", "");

Где YOUR-SHORTCODE - удаляемый шорткод.

Удалить пингбеки и трекбеки

Интересно, кто-нибудь вообще ими пользуется?

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

DELETE FROM wp_comments WHERE comment_type = "pingback"; DELETE FROM wp_comments WHERE comment_type = "trackback";

Удалить временные опции

Временные опции в Вордпресс позволяют кешировать часть данных в БД. Но иногда этот кеш тоже может сильно раздуться. Очистить его можно одним запросом.

DELETE FROM wp_options WHERE option_name LIKE ("%\_transient\_%")

Оптимизировать таблицы

Раз уж мы зашли в phpMyAdmin, можно заодно проверить и оптимизировать таблицы. Делается это очень просто.

Выбираем все таблицы и нажимаем «Optimize table »

Оптимизация базы данных Вордпресс с помощью плагинов

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

Самый популярный плагин для оптимизации баз данных Вордпресс с более чем 600 тыс. активных установок. Очень прост в использовании, управляется одной кнопкой.

В разделе «Table Information» выводится информация по текущим размерам таблиц базы данных и объем, который плагин сможет освободить. В «Настройках» можно запланировать автоматическую оптимизацию БД. Например, каждую неделю, две недели или месяц.

Плагин WP-Optimize очень прост в использовании. Главное, не забудьте перед его использованием создать резервную копию сайта или хотя бы БД.

Скачать

Набирающий обороты плагин от Лестера Чена - известного разработчика Вордпресс.

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

В отличие от WP-Optimize, WP-Sweet для удаления использует функции Вордпресс, а не прямые запросы к базе данных. Это снижает вероятность пропуска каких-то ненужных данных. Однако, в WP-Sweep пока нет никакой автоматизации процессов.

Скачать

В заключение

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

По материалам wp-rocket.me

Подпишитесь на мой телеграм и первыми получайте новые материалы, в т.ч. которых нет на сайте.

Задался я вопросом,

как почистить базу данных wordpress блога?

поискал в интернете, и нашел интересные статьи, которые и привожу тут (без изменений)


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

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

Шаг 1. Удаляем резервные копии постов (т.н. ревизии)

Наша проблема. WordPress устроен таким образом, что при написании новых постов (или редактировании старых) он периодически (примерно один раз в минуту) создает их резервные копии, что можно четко увидеть в самом низу страницы, при работе с новым или корректировкой старого поста. Но что самое интересное, так это то, что после публикации конечной версии поста, движок WordPress`а автоматически не удаляет эти резервные копии (post revisions). Получается, что при длительной работе с одним постом в базе данных может остаться от пары копий этого поста до бесконечности.

Решение данной проблемы . В панели PhpMyAdmin своей базы данных переходим на вкладку SQL. Появится окно для создания запроса к БД. Вставляем нижеследующий запрос в окно и выполняем ее нажав кнопку OK:

DELETE FROM wp_posts WHERE post_type = "revision";

Разъяснение запроса. Таблица wp_posts имеет поле post_type . Оно может иметь одно из следующих значений: «post», «page» или «revision». Т.к. мы хотим избавиться от всех резервных постов, то наше значение – «revision». Просто запускаем команду, чтобы удалить все элементы в таблице wp_posts , в которой поле post_type равно «revision».

Шаг 2. Удаляем СПАМные комментарии

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

Решение данной проблемы . В панели PhpMyAdmin своей базы данных переходим на вкладку SQL. Появится окно для создания запроса к БД. Вставляем нижеследующий запрос в окно и выполняем ее нажав кнопку OK :

DELETE FROM wp_comments WHERE comment_approved = "spam";

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

DELETE FROM wp_comments WHERE comment_approved = "0";

Разъяснение запроса. Таблица wp_comments содержит поле с именем comment_approved . Именно здесь делается отметка для каждого комментария: одобрен – 1, удален или еще не одобрен – 0, спам – spam. Запустив поочередно эти команды (в одиночных ковычках меняем значения по очереди, т.е. сначала выполняем со значение ’0? , затем – ’1? и напоследок – ‘spam’ , таким образом мы удаляем все комментарии, которые отвечают нашим критериям.

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

wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users

Внимание! Прежде чем удалять лишние строки убедитесь, что:

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

2. Убедитесь, что плагин, таблицы которого вы хотите удалить, действительно уже не используется (деактивирован).
Метки: WordPress, база данных, оптимизация базы данных, чистка базы данных , плагины

http://m-media.su/chistka-bazy-dannyx-wordpress.html

Чем хорош wordpress ? Тем, что он как пластилин при некоторых усилиях принимает нужную форму.

Чем хорош wordpress ? К нему есть большое количество плагинов, которые позволяют прикрутить к блогу любую функциональность.

Все вроде замечательно и прекрасно.

Но в плагинах есть одно неприятное свойство. Обычно они оставляют много записей в базе данных в частности в таблице wp_options . И если вы удалили плагин – то эти записи превращаются в мусор.

wp_options – очень важная таблица базы данных wordpress. В которой хранятся настройки блога.

Чем плох мусор в базе данных? Он раздувает базу данных и увеличивает ее размер.

Больше база данных – медленнее работа блога.

Медленнее работа блога – уже тянет за собой другие неприятные последствия.

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

Clean Options – поможет вам очистить таблицу wp_options от мусора

  • Скачиваем его по ссылке ;
  • Заливаем в папку с плагинами;
  • Активируем плагин;

Перед любыми манипуляциями с базой данных делаем резервную копию. На случай неудачной чистки.

Заходим в Инструменты и выбираем пункт Clean Options

Плагин имеет русский перевод – так, что это облегчает работу с ним.

Первым делом плагин показывает, сколько опций содержит таблица wp_options .

В случае этого блога плагин нашел 368 записей.

Потом нам дают возможность настроить фильтры для поиска.

Их всего два:

  • Не показывать известные базовые опции ядра WordPress для данного «Найти» (стоит ставить эту галочку, тогда плагин отсеет системные опции)
  • Не показывать предупреждения альтернативного синтаксиса для данного «Найти» (здесь по выбору, до конца смысл этой опции я не понял)

Нажимаем: найти осиротелые записи

Ждем, пока плагин проведет анализ и выдаст нам результат.

После анализа плагин выдаст: Возможные осиротелые опции

Список имеет следующий вид:

Опция и готовый запрос для поиска в Google.

Здесь можно не бояться, и отмечать галочками опции это еще не финальная стадия. Удаление сразу не произойдет.

Выбрав опции, нажимаем: Посмотреть информацию в выбранных опциях

На выходе получим таблицу:

  1. колонка – название опции;
  2. колонка – значение опции;

Теперь вам нужно подтвердить намерение удалить данные опции.

Если согласны:

Отмечаем - Да, удалить ВСЕ эти опции из таблицы wp_options .

Жмем – отправить

Вот собственно и все. Мусорные опции удаленны из таблицы wp_options . Наш блог стал более быстр.

http://webmasterprof.ru/stati/wordpress-stati/operaciya-chistim-wp_options-v-wordpress.html

И ещё одна статья (очень похожая на первую, но чуток побольше)

На днях мне пришло письмо от хостера о том, что мой лимит жесткого диска потихоньку подошёл к концу (неожиданно).

Как обычно немного потупив, зашел в свой билдинг и действительно свободного места не осталось.
Порывшись малёха, нашел злополучного пожирателя и даже с облегчением выдохнул — Очередной мой сателлит на WordPress .
Ну а куда денешься. Кругом кричат ВордПресс — ууу яя зер гуд. Но мне данная КМС нравится только простотой создания всякого интернет-хлама (хотя и для сателлитов есть более удобные и рациональные CMS решения). В остальном-же WordPress только напрягает. Ну да шут с ней, вернёмся к проблеме..

Очистка WordPress блога

Мой разжиревший сателлит стал занимать более 50mb в одну калитку. (Для сравнения. Данный блог на DLE 8.5, на момент публикации, занимал всего 10 метров). И естественно что я стал глубоко возмущён данным обстоятельством. Ну не то, чтобы я за пятихатку зайца в поле лопатой отмудохал, но всёже… 50 мб в пустоту тратить.
Оказалось, что данный блог я совсем не оптимизировал, соскользнул он как-то. Но вот в силу обстоятельств добрался и до него, и вспомнил, что именно данный момент я упустил в своей прошлой статье посвящённой оптимизации сайтов на WordPress .
Вот и решил исправиться и описать то, что лучше делать при установке блога, или как я — когда совсем прижмёт.
Причиной данной проблемы (превышение места на жестком диске) была непомерно раздувшаяся база MySQL.

Почему WordPress занимает так много места?

ВордПресс создавался как Content Management System (Система управления содержимым) для блондинок (несерьёзная она), которые постоянно что-то путают, меняют и забывают, поэтому данная CMS при каждом изменении материала создаёт резервную копию (одну вторую и тд, пока лимит не исчерпает).
Естественно, что нам после того как мы опубликовали материал и довольны результатом, его резервные копии становятся не нужны.
И если Мы в душе не розовые блондинки, то данная функция нам ваааще незачем.
Но как сделать, чтобы WordPress не создавал резервные копии?
Для этого нам понадобиться:
1) по ФТП (лучше пользоваться FTP клиентом — FileZilla) из корневой папки сайта скачать файл wp-config.php
2) Открываем его в Notepad++ или WordPad и находим следующие строки:

/** The Database Collate type. Don’t change this if in doubt. */
define(‘DB_COLLATE’, »);

После них, просто вставляем следующее:

define(‘WP_POST_REVISIONS’, false);

3) Сохраняем и закачиваем обратно на сервер в корень домена как и было.
Данная манипуляция отключит функцию сохранения копий , но если Вы все-же хотите её оставить, но в меньшем объёме, то поменяйте значение «false» на цифру, которая будет обозначать максимальное количество сохранённых копий каждого материала (например — две):

define(‘WP_POST_REVISIONS’, 2);

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

Как удалить резервные копии материалов?

Есть хороший плагин delete revision, он позволит удалить все ненужные копии.
Но мне проще всё это сделать через панель phpMyAdmin (не люблю я эти плаги-лаги). И Вам рекомендую. Так как, если Вы серьёзно решили заняться сайтостроением или оптимизацией, без знания функций phpMyAdmin просто не обойтись, поэтому осваиваем и привыкаем потихоньку. Итак…

Чистка WordPress блога без установки плагинов — через панель phpMyAdmin.

Для подстраховки создадим резервную копию нашей имеющейся базы данных MySQL.
1) Из панели управления хостингом DAdmin, ISPmenager, DirectAdmin (или что-то наподобие) заходим в панель phpMyAdmin.

3) Нажимаем на опцию «Экспорт» (обычно в самой верхней части),
4) Выбираем метод сжатия zip или Gzip — это почти фиолетово (обычно в самом низу).
5) Нажимаем в самом низу кнопку «OK», «Выполнить» или «YES» у кого как.
6) И сохраняем себе на компьютер. Не забудьте куда.
Всё. Перестраховались. Можно мутить…
Опят подключаемся к нужной нам базе MySQL в панели phpMyAdmin и переходим к очистке от резервных копий.
Для прикола и информации о проделанной работе запомните цифру напротив строчки «wp_posts» — занимаемое место.
1) Открываем окно запроса к данной базе (обычно это кнопка «SQL» с подсказкой «окно запроса» или тп)
2) И вводим следующую команду:

Нажимаем «OK»

Данная команда удалит все резервные копии Ваших материалов.
После того как Вы закончите данные манипуляции:
— Оптимизируйте базу данных MySQL запросом:

OPTIMIZE TABLE wp_posts;

Вот и усё. Смотрим результат очистки в строчке «wp_posts».
Вот так путём нехитрых манипуляций мы очистили базу данных ВордПресс блога.
Но, моя проблема заключалась в другом.
Поскольку я не заходил в админку того блога очень давно, соответственно не менял материалов и соответственно, резервные копии не создавались…
На моём блоге было слишком много СПАМ комментариев. Ну забыл защитить.
Удалять их руками муторно, да и раз Мы заговорили про phpMyAdmin то:

Чистка комментариев WordPress блога через панель phpMyAdmin.
По аналогии с предыдущим маневром:
1) Открываем окно запроса к нужной нам базе MySQL
2) Вводим следующую команду:

и нажимаем «OK»
И получаем результат — СПАМ удалён
Можно удалить и комментарии, которые находятся в очереди на модерацию следующей командой:

А командой:

Вы удалите все имеющиеся комменты.
И чтобы в дальнейшем облегчить борьбу со СПАМом активируйте плагин Akismet
Вот так я и снизил пространство почти в два раза. Шутка. Кроме оптимизации того блога, я забыл удалить левые темы и плагины, которые и пожирали основную массу места.

Кстати о плагинах.
Многие плагины при установке, а точнее при активации создают себе поле записи в базе данных MySQL.
А после удаления плагина запись часто остаётся. Проверить это можно там-же в панели phpMyAdmin
Вот как выглядит шаблонная база данных нулёвого ВордПресс блога:

wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users

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

Восстановление ранее сохранённой копии базы данных MySQL.

1) Из панели управления хостингом DAdmin (или что-то навроде) заходим в панель phpMyAdmin.
2) Выбираем интересующую нас базу MySQL (обычно они в меню слева).
3) Нажимаем на опцию «Импорт» (обычно в самой верхней части),
4) Нажимаем «Browse»
5) Выбираем сохранённую базу данных с компа.
5) Нажимаем в самом низу кнопку «OK», «Execute», «Выполнить» или «YES» у кого как.
6) И смотрим на результат, если не восстановится — пробуем ещё раз (бывает глюкает у некачественных хостеров).

http://expertinternet.ru/2010/09/02/wordpress.html
Ну вот теперь Всё. Удачи всем.

Здравствуйте, уважаемые читатели блога www.сайт. Если тексты статей на сайте, работающем на CMS WordPress, то очень скоро объем базы данных сайта увеличится многократно.

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

То, что эта опция нужна, не вызывает сомнения. Навскидку можно представить себе несколько возможных причин потерять актуальное содержимое редактируемой записи. Это может быть сетевой сбой в момент обновления, перезапись устаревшей версией при редактировании из разных мест (у меня такое было), элементарная ошибка редактора и так далее.

Ревизии в WordPress позволяют избежать потери данных за счет того, что все предыдущие версии записей не удаляются из базе данных, а лишь получают другой статус — «revision »

В слове “все” предыдущего абзаца как раз и кроется причина неограниченного роста размера базы данных. Каждая редакция (ревизия) записи содержит ее полное содержание. А это значит, что если в процессе подготовки какой-либо статьи вы исправили и перезаписали ее, скажем, 10 раз, то в базе данных будет сохранено 10 копий. Если вы исправите всего один знак, в базу еще раз добавится текст целиком.

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

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

Управление количеством ревизий записей в WordPress

Для управления механизмом сохранения редакций записей в WordPress в файл конфигурации “wp-config.php ” после:
/** The Database Collate type. Don"t change this if in doubt. */
define("DB_COLLATE", ""); необходимо добавить всего лишь одну запись.
Для ограничения количества редакций тремя экземплярами:
define("WP_POST_REVISIONS", 3); Вместо “3” может быть любое нужное вам значение. “0” отключит сохранение ревизий. Такой же результат будет достигнут, если вместо цифры написать “false”:
define("WP_POST_REVISIONS", false);
Если по какой-либо причине нужно вновь разрешить сохранение всех редакций без удаления данной строки из “wp-config.php ”, то можно написать:
define("WP_POST_REVISIONS", true);

Тип ревизий записей в WordPress

В свою очередь редакции делятся на две категории:

  1. редакторские ревизии — предыдущие версии текстов, появившиеся после публикации или сохранения редактором (автором) обновленной записи;
  2. автосохраненные ревизии — автоматически создаются через определенные временные интервалы.

Как интересно. Пока писал этот пост заметил интересную особенность. Если запись находится в статусе «Черновик», то автосохраненные редакции у нее отсутствуют. Выходит, что на черновик автосохранение не распространяется. Стало быть, забывать нажимать на «Сохранить» при работе с черновиком в редакторе WordPress не стоит.

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

Автосохранение позволяет не потерять недавно набранные данные в том случае, если автор забыл сохранить их принудительно (получается, что на черновик это не распространяется).

Изменить интервал автосохранения можно добавив в файле конфигурации WordPress “wp-config.php ” строку:
define("AUTOSAVE_INTERVAL", 60); где 60 – интервал в секундах, соответствующий установленному по умолчанию. Его можно скорректировать в любую нужную сторону.

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

Если надо удалить все релизы, то сделать это можно без установки плагинов непосредственно в базе MySQL через phpMyAdmin.

Заходим в phpMyAdmin и выбираем нужную базу в левом столбце интерфейса. Начинаем, естественно, с .

Бекап базы данных

Переходим на вкладку “Экспорт”:

В открывшемся окне оставляем настройки без изменений. Нажимаем “ОК” в правой нижней части экрана и ждем завершения операции сохранения бекапа базы данных.

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

Переходим на вкладку “SQL”. В поле запросов к базе данных пишем:
DELETE FROM wp_posts WHERE post_type = "revision";
OPTIMIZE TABLE wp_posts;

Нажимаем “OK”, подтверждаем желание выполнить запросы к базе.

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

При желании можно писать и выполнять запросы последовательно.

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

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

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

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

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

  1. Перейдите в «Installed Plugins» в вашей консоли, после чего щелкните по кнопке «Deactivate» рядом с названием плагина. В нашем примере мы удалим плагин
  2. Теперь можно просто щелкнуть по Delete.

Как удалить плагин WordPress через FTP

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

  1. Подключитесь к своему WordPress сайту через SFTP.
  2. Перейдите в папку /wp-content/plugins/. Удалите папку с требуемым плагином с вашего сервера.

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

Проблема с удалением плагинов WordPress

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

Многочисленные плагины также оставляют дополнительные файлы и папки. Как показывает практика, это нередко происходит в случае с плагинами безопасности и кэширования, которые создают дополнительные каталоги для ведения журналов. К примеру, после того как плагин Wordfence был удален, у нас на сервере осталась папка wflogs в каталоге wp-content. Мы не пытаемся обвинить именно Wordfence – этим грешат многие плагины.

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

Почему разработчики не очищают базу данных?

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

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

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

Они не заботятся о производительности

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

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

Они допустили ошибку

Справочник по плагинам WordPress создан для разработчиков. В нем содержатся лучшие практики и рекомендации по деактивации плагинов и деинсталляции плагинов (удалению данных). В справочнике говорится:

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

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

Как удалить WordPress плагин (правильный способ)

В нашем примере мы снова обратимся к плагину Wordfence. Одной из проблем с удалением WordPress плагина надлежащим образом является то, что каждый разработчик рассматривает это по-своему. Вам, скорее всего, понадобится выполнить поиск в Google, чтобы посмотреть документацию разработчиков на их сайтах или написать им на электронную почту. Как вы можете видеть, если искать в Google “how to uninstall Wordfence”, первый же результат является официальной документацией, в которой рассказывается, как полностью удалить Wordfence.

Хорошо разработанный плагин должен включать в себя опцию для полного удаления. Вы можете видеть пример ниже с плагином Gravity Forms. Быстрый клик по кнопке Uninstall Gravity Forms, и все таблицы и данные удалены. Еще один хороший пример: плагин Polylang. В разделе Tools у него есть опция для полного удаления данных при щелчке по ссылке Delete. Но для этого данную опцию нужно сначала включить.

Если вы не деинсталлируете мультиязычные плагины корректным способом, то они будут обновлять данные переводов для разных сторонних плагинов даже после своего удаления. Wordfence рекомендует установить еще один плагин, Wordfence Assistant, который позволяет полностью удалить сам плагин, все его данные и его настройки. Как вы можете видеть ниже, после установки этого плагина появляются опции для удаления данных и таблиц Wordfence, очистки всех заблокированных IP-адресов, а также данных трафика в реальном времени.

Другие плагины WordPress могут требовать более сложного процесса деинсталляции. Пример: WooCommerce, для которого вы должны поместить следующий код в ваш файл wp-config.php для полного удаления всех данных.

define("WC_REMOVE_ALL_DATA", true);

Удаление неиспользуемых шорткодов

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

add_shortcode("pluginshortcode", "__return_false");

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

Как вручную очистить оставшиеся таблицы

Вероятно, у вас будут ситуации, когда вы уже удалили плагин, и вам просто нужно сделать очистку базы данных. Или, возможно, метод полного удаления, предложенный разработчиками, будет отсылать к удалению таблиц в базе данных вручную. Есть несколько способов, с помощью которых вы можете выполнить это. Первый способ – использовать плагин очистки таблиц; второй способ – сделать удаление таблиц напрямую в phpMyAdmin.

Очистка таблиц с помощью плагинов

Лучший плагин для этого – Advanced Database Cleaner. Плагин премиальный; он позволяет просканировать вашу установку WordPress и удалить «осиротевшие» таблицы. Как вы можете видеть ниже, он нашел таблицы EDD (wp_edd*), Gravity Forms (wp_gf*) и Bloom (et_bloom*, et_social*) от плагинов, которые уже не используются.

Очистка таблиц с помощью phpMyAdmin

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

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

Для этого просто войдите в phpMyAdmin. Во вкладке Search введите wpseo, выберите все таблицы, после чего щелкните по Go.

На нашем сайте были найдены совпадения в таблице wp_options, wp_postmeta и wp_usermeta. Вы можете затем щелкнуть по каждой таблице и удалить строки, содержащие wpseo.

Ниже представлена таблица wp_options. Сначала отфильтруйте строки по wpseo, поскольку есть и другие строки WordPress, которые могут содержать wpseo в option_value, как строки WordPress cron задач. Это очень важно. После фильтрации вы можете выбрать строки и удалить.

Ниже представлена таблица wp_postmeta. Удалите строки, содержащие wpseo.

Наконец, ниже представлена таблица wp_usermeta. Опять же, что очень важно, вам нужно сначала отфильтровать строки по wpseo. Затем выберите строки и удалите их.

Если вы используете новую возможность счетчика текстовых ссылок, вам также придется убрать две дополнительные таблицы Yoast SEO: wp_yoast_seo_links и wp_yoast_seo_meta.

И последнее, что нужно сделать – очистить задачи Cron, если есть те, которые работают с плагином. Вы можете, конечно, отредактировать строку задачи cron в таблице wp_options, однако самый простой способ гарантировать, что ничего лишнего не удалено – воспользоваться плагином WP Crontrol . В случае с Yoast SEO используется Cron задача, названная wpseo_onpage_fetch, которую можно легко удалить.

Заключение

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

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

Сергей Арсентьев

Как я провел чистку базы данных WordPress и оптимизировал ее в 7 раз

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

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

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

Итак, к делу.

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

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

Но почему она вообще засоряется?

Тут много моментов, но один из основных критериев, как я понял на своем опыте, из за того, что WordPress сохраняет:

  • ревизии (редакции) всех страниц и записей,
  • старые метатеги,
  • черновики,
  • спам,
  • корзину и т.п.

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


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

Это приводит к неэффективному использованию этих самых ресурсов, снижению производительности и повышению нагрузки на хостинг.

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

Другое дело - старый сайт или живущий активной жизнью блог.

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

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

Реально ли оптимизировать базу в WordPress в два клика

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

Да, и еще.

Я ненавижу статьи типа «20 плагинов для WordPress по чистке базы данных». Их практическая польза равна нулю.


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

Но чтобы это сделать, нужно ведь сначала поставить эти 20 плагинов, определить, что 10 из них - полное херня, 5 - куда ни шло, но неудобные в использовании, еще 3 - тупо не заработали, и в конце концов 2 - то, что нужно, из них 1 - вообще огонь.

Конечно, проще выпустить банальный дайджест, пробежаться по верхам - типа этот плагин платный, этот бесплатный, этот русский, этот умеет то, этот сё. Типа, я тут «идеи накидал, а ты уже сам додумай».

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

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

С этим плагином реально почистить базу данных от мусора за пару минут.

Почему лично мне понадобилась чистка базы данных

Очищаем базу данных WordPress плагином

Из всего разнообразия плагинов мне сразу понравился Optimize Database after Deleting Revisions . Отличный плагин, на русском языке, плюс имеет встроенную возможность отключения ревизий.

Сохраняете, кликаете «Начать оптимизацию» и когда все будет готово (процесс обычно занимает от 10 до 60 секунд), вы увидите подробный отчет.

У меня изначально база данных в блоге занимала 112Мб:


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

А Optimize Database after Deleting Revisions ее очистил еще больше - до 21 Мб:


А вот посмотрите на сайте клиента, вообще не оптимизированном до этого - какая экономия:


И еще один клиент без оптимизации: