Блог по продвижению сайтов Блог по SEO

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

Просмотров: 6600

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

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

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

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

Тем более, что под WordPress существует просто невероятное количество всяких плагинов и расширений (читайте 5 причин использовать WordPress для визиток и блогов).

Итак, к делу.

Причины засорения базы данных

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

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

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

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

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

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

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

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

Поэтому периодически базу данных рекомендуется чистить.

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

Другое дело - старый сайт или живущий активной жизнью блог, там база может занимать 100-200 Мб (как у меня было) и оптимизация и очистка базы может ее оптимизировать в несколько раз.

7 причин почистить базу данных в WordPress

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

  1. Если хостер сообщает о повышенной нагрузке.
  2. Появляются ошибки из-за нехватки памяти.
  3. Админка или сам сайт начинают тупить и долго делать обычные операции.
  4. Если сайту уже несколько лет.
  5. Если вы заметили, что размер базы данных неоправданно разросся, у меня одно время база весила 250Мб (!), потом дефрагментировалась до 112 Мб, а сейчас после чистки - 21 Мб :smile:
  6. Если на сайте под WordPress или блоге много статей, например, 100, 200, 300 и больше.
  7. Если вы часто редактируете статьи перед публикацией или после размещения на сайте (например, я могу одну статью на блоге редактировать 50 раз и более!).
Читайте также:  Создать логотип самостоятельно бесплатно за 5 минут для сайта или компании

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

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

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

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

Да, и еще.

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

Одно решение

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

Так и хочется сказать: «Автор, ты мне покажи только один плагин (один, Карл!), который лично ты у себя используешь, и который справился с имеющейся у тебя проблемой мгновенно, да еще желательно бесплатно».

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

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

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

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

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

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

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

Читайте также:  Сделай из сайта конфетку или обзор плагина Expert Review

На моем сервере - все супер, а на shared-хостинге у провайдера - выскакивала ошибка:

Fatal error allowed memory size of 268435456 bytes exhausted (tried to allocate bytes)

Она говорила о том, что памяти в 256Мб, выделенной хостером для моего сайта было недостаточно.

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

Но отключать плагины - это не выход, так как их функционал всегда важен.
Кому нужен голый WordPress?

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

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

У меня было 209 (!) ревизий главной страницы.

Ревизии wordpress

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

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

Как только я почистил ревизии из базы данных, на этом сайте все стало отлично. После того, как я почистил уже всю базу (она уменьшилась в 7 раз - с 10 Мб до 1.5 Мб, было вычищено 99 000 мусорных записей в таблицах - в основном метатеги в ревизиях).

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

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

Очищаем базу данных WordPress вручную

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

Запускать их нужно из системы управления базой данных PhpMyAdmin, который есть на 99,9% всех хостингов, прямо вот тут:

Чистим Mysql wordpress

Выполнить нужно вот эти команды:

DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%');
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%');
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%';

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

Читайте также:  Что делать после создания сайта?

Ну и конечно, вы должны убедиться, что префикс таблиц в базе данных соответствует вашим. То есть по умолчанию префикс wp_, но он может и отличаться, например, если вы как и я, пользуетесь для безопасности плагином All In One WP Secure.

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

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

Установка плагина стандартная через репозиторий WordPress.

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

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

Впрочем, после того, как я поставил себе профессиональный Clearfy для чистки всего сайта WordPress (в нем есть функция работы с ревизиями), я фактически на 100% избавился от мусора на всех своих сайтах.

Интерфейс Optimize Database after Deleting Revisions простой, все на одной странице.
Настройки можете вот такие как я сделать или выбрать свои:

 

настройки Optimize Database after Deleting Revisions

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

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

мусор-в-базе-данных Вордпресс

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

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

база данных очищена

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

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

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

database-optimization

Так что я остановился в итоге на Optimize Database after Deleting Revisions, чего и вам советую.

Выводы и итоги

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

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

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

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

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

Полезные цитаты: Сегодня я богат именно благодаря тому, что я сделал в свободное время (Р.Кийосаки)

Блог — Сергея Арсентьева 📈
image
Сергей Арсентьев
Всего материалов на сайте: 239
Активных комментариев: 3 500
Работает онлайн: 10.6 лет
Читателей за это время: 2 465 952
Я в соцсетях —
Фото
Бесплатный видеокурс для начинающих. Что такое фриланс, можно ли на нем зарабатывать и сколько?
Бесплатно Подробнее
Фото
Бесплатная мини книга для тех, кто хочет заказать сайт, но растерялся во множестве CMS и вариантов выбора.
Бесплатно Подробнее
Фото
Пошаговый видеокурс "Как работать в Опенкарт" с уроками по добавлению товаров и статей.
Комментариев 5
  • Сурен

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

    Комментировать
    • Сергей Арсентьев

      Ну там крестик есть возле карт сайтмапа, если его нажать - то добавленный сайтмап удалится https://prnt.sc/s51py1
      Если сайтмап добавлялся через robots - то оттуда убрать.

      Комментировать
  • Валерий

    Огромное спасибо, буду пробовать

    Комментировать
  • Мирослав

    Советую для контроля ревизий использовать плагин: Revision Control
    В моем случае стоит значение: не хранить.

    А за плагин Bicycles by falbar спасибо!

    Комментировать
  • Андрей

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

    Комментировать
Смотреть еще комментарии
Добавить свой комментарий