Оптимизация премиум темы wordpress, админка перестала тормозить

Часто мои подписчики пишут о том, что им нужно оптимизировать тему на wordpress которую они купили в интернете или скачали в свободном доступе. Вот и мой знакомый приобретая очередную тему на популярном зарубежном маркетплейсе ThemeForest получил хорошую но очень перегруженную тему, в которой большая часть функционала ему была не нужна. Его сайт долгое время работал, более 2 лет и настало время когда знакомый просто замучался работать с тормозами на вид очень простой темы. Я по дружбе решил его тему почистить и заодно сложить новую статью на свой блог. Как оказалось достаточно простая задача в его теме была для опытного разработчика, но потратить время пришлось.

Что пришлось чистить в шаблоне

  1. В теме было встроено много плагинов которые не использовались но создавали таблицы в базе данных.
  2. Было замечено создание множества лишних картинок в папке uploads
  3. Тема создавала типы данных которые в админ панели отображались как отдельные меню, это было и неудобно и дополнительно нагружало работу панели администратора.
  4. Для таких типов как портфолио, клиенты и задачи которые не использовались тема создавала метабоксы и произвольные поля.
  5. При установке темы импортировались опции для всего что она умеет, но большинство настроек так и не использовались, отсюда хлам в базе данных.

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

Далее при помощи программы total comander я нашел все файлы в которых содержался текст add_theme_support или add_image_size. Потом посмотрел что за изображения создаются при помощи этих функций и закоментировал лишние. Мои действия привели к тому что CMS перестала формировать лишние картинки на сервере, это в перспективе могло уменьшить потребление места на хостинге на 30%. Согласитесь не мало для сайтов которые развиваются постоянно! В число лишних изображений вошли картинки портфолио, магазина, форума, социальной сети (это все что не использовалось на сайте но могло мешать быстрой работе CMS).

Удаление лишних частей темы

Так как удаляя картинки я нашел что в теме был форум, социальная сеть и магазин, то эти данные нужно было удалять. Для удаления магазина я просто удалил в корне темы папку woocommerce, для удаления форума, удалил папку bbpress, также для удаления социальной сети я удалил папку budipress. Код стал меньше но в базе остались лишние таблицы, а значит база у нас имела тоже кучу информации которая не использовалась, но об этом чуть позднее.

Следующим шагом я удалил ненужные типы данных, чтобы их найти я также использовал поиск программы total comander, искал участки кода где есть упоминания  register_post_type. Найдя код который определял новые типы данных я его закомментировал. далее по тому же принципу при помощи программы я нашел update_post_meta, add_meta_box, get_post_meta, add_post_meta. Найдя эти участки я смог удалить лишние метабоксы и код который определял дополнительные опции для ненужных типов данных. Имена опций которые необходимо было чистить в базе данных я записал на будущее. Записывая все что я чистил, формировался план чистки базы данных.

Чистка базы данных

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

Список таблиц магазина woocommerce которые я удалял

  • woocommerce_attribute_taxonomies
  • woocommerce_termmeta
  • woocommerce_downloadable_product_permissions
  • woocommerce_order_itemmeta
  • woocommerce_tax_rates
  • woocommerce_tax_rate_locations

Список таблиц соцсети BuddyPress которые я удалял

Я удалил все таблицы которые начинаются вот так [$table_prefix]_bp_, префикс wordpress и префикс таблиц BuddyPress.

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

BuddyPress tables diagram

Как оказалось у плагина форума bbpress таблиц в базе не было, видимо он использовал таблицы wordpress или тема в стандартной установке их не добавляла, без установки плагина.

Удаление лишних опций

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

Для удаления опций плагина соцсети BuddyPress мне было необходимо войти в phpmyadmin и открыть таблицу wp_options, где и хранятся все опции CMS WordPress, темы и сторонних плагинов. Опции BuddyPress начинаются со специального префикса bp_ или bp-, их можно найти в нашей таблице wp_options в столбце option_name.

Для удаления опций WooCommerce и BuddyPress  я использовал стандартный поиск  phpmyadmin как показано на снимках ниже.

remove option woocommerce

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

wordpress options delete

Ускорение путем очистки хлама на сайте

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

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

Если у кого есть еще какие идеи для чистки темы и ускорения работы сайта пишите в комментариях. Все ваши идеи я с радостью протестирую и отпишусь в статье! Давайте собирать вместе полезные материалы по  ускорению wordpress и чистке премиум тем.

Купить хостинг WordPress


Читайте также:

1 комментарий

  1. ipipe.ru:

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

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

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