Как очистить вордпресс. Очистить базу данных MySQL от мусора WordPress. Удаление неиспользуемых шорткодов

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

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

Давайте же рассмотрим способы «очистки» вашей базы данных WordPress.

Перед началом сделайте бекап!

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

Вычищаем свою БД WordPress с помощью WP-Sweep

Первым делом вам необходимо будет установить и активировать плагин WP-Sweep plugin . После активации просто переходим в раздел Инструменты » Sweep для очистки своей БД.

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

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

Очистка может занять некоторое время в зависимости от того, насколько велика ваша БД. WP-Sweep отобразит прогресс путем обновления статистики на странице.

Преимущества WP-Sweep перед WP-Optimize?

Возможно вы удивились, почему мы пишем о WP-Sweep, когда есть другой очень популярный плагин WP-Optimize, выполняющий по сути те же самые функции.

Также основной отличительной характеристикой является то, что WP-Sweep использует корректные функции удаления WordPress настолько, насколько это возможно вместо прямого выполнения MySQL запросов.

Что очищает WP-Sweep?

WP-Sweep использует корректные функции удаления WordPress для очистки БД. На момент написания этой статьи, он справляется со следующим:

  • Редакции записей
  • Автоматически сохраненные черновики
  • Удаленные комментарии
  • Неподтвержденные комментарии
  • Комментарии, являющиеся спамом
  • Неиспользуемые метаданные записей
  • Неиспользуемые метаданные комментариев
  • Неиспользуемые метаданные пользователей
  • Неиспользуемые отношения терминов
  • Неиспользуемые термины
  • Дублирующиеся метаданные записей
  • Дублирующиеся метаданные комментариев
  • Дублирующиеся метаданные пользователей
  • Промежуточные вариации
  • Оптимизация таблиц базы данных
  • Кеш oEmbed в метаданных записей

Вот и все, мы надеемся, что эта статья помогла вам вычистить мусор из вашего сайта на WordPress с помощью WP-Sweep.

По всем вопросам и отзывам просьба писать в комментарии ниже.

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

Здравствуйте, друзья! Как известно не все что хранится в папках нашего сайта на хостинге действительно необходимо. За время существования сайта в его “закромах” скапливаются горы мусора, то есть множество ненужных для нормальной работы веб-ресурса файлов. Это может быть все что угодно - временные или неиспользуемые файлы, копии документов или забытые архивы.

То, что надо периодически оптимизировать базы данных или удалять ревизии постов и спам всем хорошо известно. Для тех, кто не хочет делать это вручную, даже придуманы удобные . Например, WP-Cleanup. Но все равно такая уборка не позволяет заглянуть во все углы и папки, хранящиеся на хостинге, и увидеть весь мусор. Лично я, в процессе экскурсии на хостинг по FTP, обнаружил на одном из сайтов два десятка, давно не используемых, zip архивов. Конечно, я их удалил, но подумал, вдруг у кого-то такая же история, поэтому решил написать эту небольшую статью.

Где прятались забытые архивы

Без лишних слов сразу покажу, что и где я нашел. Надо сказать, что этот мой блог на движке WordPress я редко посещаю, и за прошлый год опубликовал на нем всего лишь три статьи. Думаю, не стоит говорить, что его файлы на хостинге я проверяю еще реже. Тем не менее, в папке Uploads , рядом с папками, загруженных и отсортированных по месяцам, картинок, я обнаружил 19 zip архивов шаблонов и плагинов. Их я устанавливал когда-то в процессе всевозможных экспериментов по развитию этого блога. Причем большинство из этих плагинов и тем давно не используются и удалены. Полный путь к ним выглядел так: /public_html/wp-content/uploads .

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

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

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

Освобождаем место в папке Uploads - удаляем лишние картинки

Кстати, как вы знаете, в той же папке Uploads на совершенно законных основаниях хранятся файлы изображений. Так вот, там тоже много мусора. Дело в том, что Вордпресс автоматически добавляет к вставляемым в посты картинкам 2-3 копии разных размеров. Поэтому неиспользуемые файлы можно удалить и, тем самым, значительно освободить дисковое пространство хостинга. Речь идет уже не о 9 МБ, а о сотнях и даже больше. Поверьте, лишние изображения занимают очень много места, особенно, если картинок большое количество. Вот, как это выглядит у меня на примере одного изображения.

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

Можно для удаления лишних картинок использовать специальный плагин DNUI Delete not used image .

Откуда взялись ненужные файлы?

Честно говоря, меня не особо волнует этот вопрос, но некоторые мысли есть. Скорее всего, эти архивы попадают в папку Uploads при установке тем и плагинов Вордпресс напрямую из админпанели. Раньше я пользовался именно этим способом. Архив загружается на хостинг, его файлы распаковывается в нужную папку, а он сам так и остается в папке загрузки.

Хотя сейчас попробовал для интереса установить пару плагинов через админку WordPress - ничего нового не появилось. К слову, мусорных файлов было не так много, так как за все время я устанавливал намного больше плагинов. Может не все из них оставляют после себя копии архивов? В любом случае, сейчас я загружаю файлы на хостинг через FTP соединение и ничего подобного не замечаю.

Какие у кого мысли на этот счет? Интересно, нашел еще кто-то в этой папке что-то не нужное? Поделитесь результатами своей проверки в комментариях.

В каталоге плагинов 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 необходим жесткий диск, на котором расположены файлы самого движка, файлы тем, плагинов, медиафайлы. WordPress также использует базу данных для хранения таблиц, чтобы позже составлять и извлекать динамические запросы.

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

Удаляем ненужный код

Самый большой мусор, наверняка, попадает в папки wp-uploads/ , и plugins/ , что неудивительно, ведь именно туда пользователю разрешено массово записывать. 🙂

Я часто захожу в панель управления других сайтов и блогов (по просьбе их владельцев), и зачастую вижу одну картину, — 20-30 установленных плагинов, из которых ~10 вообще не активированы, то есть лежат и просто расходуют квоту.

Чистка медиафайлов в библиотеке WordPress

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

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

Сделать это можно вручную, по адресу Медиафайлы -> Библиотека , затем выбрать фильтр Неприкрепленные . Вы удивитесь, но наверняка у вас есть такие файлы, которые вы когда-то загружали, но фактически уже давно не используете.

Анализ расходуемого пространства

Есть такой плагин под названием Disk Usage Sunburst , который поможет вам увидеть занимаемый размер всего сайта, а также, чем именно он заполнен.

Плагин составляет круговую диаграмму из файлов и каталогов, формируя и сортируя их по размеру.

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

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

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

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

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

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

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

Удалите неиспользуемые плагины . Удалите все плагины, которые вы не используете. Остатки от удаленных плагинов — один из источников мусора.

Как делать SQL запросы к базе данных

Для администрирования БД обычно используется приложение phpMyAdmin, которое находится в хостинг панели. Найдите «База данных», «Database», «MySQL» или что-нибудь подобное. Откройте нужную базу данных.

Если вы забыли или не знаете название, логин или пароль к своей базе данных, то их можно узнать в файле wp-config.php , который находится в корневой папке сайта. Записи о базе данных находятся в самом начале файла.

Если у вас русский язык:

Если у вас английский язык:

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

Запросы создаются на вкладке SQL. Документация .

Делайте запросы здесь. Когда запрос готов, нажмите Вперед .

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

ЗАПРОСЫ

Удаление данных от удаленных плагинов и данные постов

После удаления ненужных плагинов в таблице wp_postmeta могут остаться записи от них. В этой же таблице находятся мета данные постов.

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

DELETE FROM wp_postmeta WHERE meta_key = ‘ваш-мета-ключ ‘;

Замените ваш-мета-ключ на нужное значение.

Для мультисайта:

DELETE FROM wp_#_postmeta WHERE meta_key = ‘ваш-мета-ключ ‘;

Измените # на ID сайта и ваш-мета-ключ на нужное значение.

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

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

spam ‘;

Для мультисайта:

spam ‘;

Измените # на ID сайта.

Удаление комментариев, ожидающих проверки

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

DELETE FROM wp_comments WHERE comment_approved = ‘0 ‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_approved = ‘0 ‘;

Измените # на ID сайта.

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

Если у вас есть тег, который не связаны ни с одной статьей, удалите его этим запросом:

DELETE FROM wp_terms wt

Для мультисайта:

DELETE FROM wp_#_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = ‘post_tag’ AND wtt.count = 0;

Измените # на ID сайта.

Удаление Trackback и Pingback

Если вы выключили эти функции и хотите удалить их записи из базы данных, используйте эти запросы:

Trackback

trackback ‘;

Для мультисайта:

trackback ‘;

Измените # на ID сайта.

Pingback

DELETE FROM wp_comments WHERE comment_type = ‘pingback ‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_type = ‘pingback ‘;

Измените # на ID сайта.

Выключить эти функции в WordPress можно в Настройках Обсуждения .

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

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

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta с ON (a.ID = c.post_id)
LEFT JOIN wp_term_taxonomy d ON (b.term_taxonomy_id = d.term_taxonomy_id)

Для мультисайта:

DELETE a,b,c FROM wp_#_posts a
LEFT JOIN wp_#_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_#_postmeta с 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’

Замените # на ID сайта.

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

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

UPDATE wp_post SET post_content = replace(post_content, ‘[ваш-шорткод] ‘, »);

Для мультисайта:

UPDATE wp_#_post SET post_content = replace(post_content, ‘[ваш-шорткод] ‘, »);

Измените # на ID сайта.

Удаление постов старше Х дней

Если вы хотите удалить посты старше Х дней, используйте этот запрос:

DELETE FROM ‘wp_posts’
WHERE ‘post_type’ = ‘post’
AND DATEDIFF(NOW(),’post_date’) > X-дней

Замените X-дней на нужное число дней.

Для мультисайта:

DELETE FROM ‘wp_#_posts’
WHERE ‘post_type’ = ‘post’
AND DATEDIFF(NOW(),’post_date’) > X-дней

Измените # и X-дней .

Удаление других комментариев

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

SELECT FROM wp_commentsmeta WHERE comment_id
NOT IN (
SELECT comment_id
FROM wp_comments
);

Если вы хотите очистить таблицу wp_commentsmeta на другом сайте в сети, используйте этот запрос:

SELECT FROM wp_#_commentsmeta WHERE comment_id
NOT IN (
SELECT comment_id
FROM wp_#_comments
);

Замените # на ID сайта.

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

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

В phpMyAdmin выберите нужную базу данных, спуститесь вниз, нажмите Отметить все и выберите в выпадающем меню. Нажимать «Вперед» не нужно, оптимизация начнется автоматически.

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

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

База данных свежей установки Вордпресс 4.9.8 для сравнения

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

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

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

WP Sweep

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

WP Optimize

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

У плагина более 800.000 установок, регулярно обновляется, написан группой известных разработчиков.

В одной из последних версий в плагине появилось кеширование на уровне плагина и сжатие изображений.

Advanced Database Cleaner

Advanced Database Cleaner (бесплатный) аналогичен предыдущему, но есть мощный инструмент редактирования базы данных вручную, редактирования cron-расписания и редактирования таблицы options базы данных. Плюс в том, что есть все, что нужно, некоторый минус в том, что для оптимизации используются прямые запросы к базе данных.

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

Advanced Database Cleaner Pro

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

Хороший плагин.

Описание некоторых терминов, которые используются БД.

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

Orphan comment meta . То же самое, что post meta, — комментарии, которые не относятся ни к одному посту. Нужно удалять.

Orphan relationships . Таблица wp_term_relationships наполняется связями между постами, которые связывали удаленные посты. Если время от времени вы удаляете контент на сайте, то связи между удаленными страницами наполняют эту таблицу. Со временем эти записи наполняют таблицу и занимают место в базе данных. Удаляйте.

Dashboard transient feed . Это врéменные данные, которые хранятся в базе данных и имеют срок существования, после чего удаляются.

Заключение

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

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

Автоматическую оптимизацию можно настроить по расписанию. В зависимости от посещаемости и контента выберите 1 — 7 дней.