База данни на WordPress сайта: Как да я почистим и защо това е важно за скоростта?

# Онлайн магазини
# Сайт поддръжка
# Уебсайтове
оптимизация wordpress база данни

1. Какво представлява базата данни и защо се замърсява?

Базата данни е като дигитална библиотека с таблици, подобни на Excel таблиците. WordPress организира данните в различни таблици. Ето някои от тях, които идват с инсталацията по подразбиране:

Пълен списък на таблиците от по-новите версии на WordPress:

  1. wp_options – Глобални настройки на сайта.
  2. wp_posts – основата на сайта – постове, страници, ревизии, меню елементи. За WordPress почти всичко е “post”. В тази таблица могат да се записват различни типове данни, чрез указване какъв “post_type” е записът в WordPress.
  3. wp_postmeta – Допълнителна информация (метаданни) за публикациите.
  4. wp_users – Списък с регистрираните потребители.
  5. wp_usermeta – Допълнителна информация за потребителите.
  6. wp_comments – Всички коментари под статиите.
  7. wp_commentmeta – Допълнителни данни за коментарите.
  8. wp_terms – Имената на категориите и таговете.
  9. wp_term_taxonomy – Описание на вида таксономия (категория или таг).
  10. wp_term_relationships – Връзката между постовете и категориите/таговете.
  11. wp_termmeta – Допълнителни данни за категориите и таговете.
  12. wp_links – Управление на външни връзки (рядко използвана функция).

Плъгините могат да създават собствени таблици и при всяка инсталация на плъгин вероятно добавяте нова таблица към вече съществуващите. Ето някои таблици, създавани от други плъгини:

wp_rank_math_internal_meta – таблица от плъгина Rank Math за вътрешните връзки в сайта
wp_email_log – от плъгина Email Log

В процеса на работа таблиците се задръстват с излишни данни, които забавят цялостната работа на сайта. Заявките стават по-бавни, защото за да намерят записа, който трябва, те преровят и излишните данни. Автоматичните бекъпи трябва да архивират излишни данни. Ако базата е качена на кеш, трябва да се резервира повече памет – също излишно. Вероятността за грешки се увеличава – при много тежка база данни операции като „Търсене и замяна“ или миграция на нов сървър често прекъсват (timeout).

Обобщено – излишните данни в базата забавят сайта, изискват повече ресурси (примерно хостингът да е на по-висок план) и създават потенциални технически проблеми.

Базовият размер при инсталация на WordPress е около 0,5 MB до 1 MB. При малки сайтове с не много постове може да е около 20 MB. При онлайн магазини с WooCommerce с доста продукти и поръчки – 50 MB – 100 MB. Ако вашата база надвишава подобни стойности и сайтът ви е на доста години, вероятно е време за почистване.

Как се задръства базата на WordPress?

ревизия пост WordPress
Предишните версии на постовете могат значително да увеличат базата данни
  • ревизии на постовете – WordPress пази ревизии (предишни копия) на статиите и черновите. С публикуването на доста постове и други типове данни се натрупват излишни ревизии.
  • транзиенти – това са кеширани данни от WordPress – например курсове за валути. Курсът е еднакъв за деня и вместо да прави заявка до външен сървър при всяко зареждане на страница, WP записва тази стойност първия Нпът в базата като временен кеш за деня. С времето се натрупват излишни такива кешови данни.
  • стари таблици от изтрити модули – един от най-големите проблеми за размера на базата. Пример: сайт с история от 8 години, първите 4 години е използвал Elementor плъгина, след това се прави къстъм дизайн – таблиците от неактивния или изтрит плъгин вероятно още стоят и заемат място.
  • логове – много плъгини за сигурност или поддръжка създават логови записи в техните таблици – пример Wordfence плъгина или плъгини за лог на имейл доставяне.
  • спам коментари – спам коментарите се записват в wp_comments и wp_commentmeta.

Как базата данни влияе на скоростта на зареждане на страница?

За да зареди една страница, WP прави заявки до базата – „вземи меню линковете“, „вземи поста“, „вземи свързаните постове“ и т.н.

оптимизация и мониторинг заявки wordpress

* С плъгин като Query Monitor – The developer tools panel for WordPress можете да проследявате бавни заявки от WordPress.

Когато сървърът трябва да намери информация, той „претърсва“ таблиците.

  • По-бавни заявки (Queries): Колкото по-голяма е таблицата, толкова по-дълго отнема на MySQL/MariaDB да я прочете.
  • Натоварване на процесора (CPU): Тежките и непочистени бази данни карат процесора на сървъра да работи извънредно, което увеличава твоето TTFB (време до първия байт).

Практически стъпки за ръчно почистване на WordPress базата данни (Checklist)

1. Backup – винаги правете резервно копие, преди да правите промени по базата. Препоръчвам освен стандартния бекъп от хостинга (ако сте на хостинг с бекъп) да свалите ръчно копие, преди да правите промени.

2. Излишни таблици – прегледайте таблиците и по имената можете да се ориентирате кой плъгин ги ползва. Ако видите таблица от стар плъгин, който няма да се ползва, може да я маркирате и изтриете.
Съвет: копирайте списъка с таблиците и го поставете в AI като ChatGPT или Gemini и той ще ви покаже на кои плъгини са.

3. Премахване на orphaned („сираци“) записи

Ръчно с заявки:

DELETE pm FROM wp_postmeta pm 
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id 
WHERE wp.ID IS NULL;

DELETE tm FROM wp_termmeta tm 
LEFT JOIN wp_terms t ON t.term_id = tm.term_id 
WHERE t.term_id IS NULL;

DELETE um FROM wp_usermeta um 
LEFT JOIN wp_users u ON u.ID = um.user_id 
WHERE u.ID IS NULL;

(Проверете дали вашият префикс на таблиците е като този по подразбиране „wp_“. В противен случай заменете в заявките с вашия префикс.)

4. Ревизии

Може да изчистите всички ревизии с заявка:

DELETE FROM wp_posts WHERE post_type = "revision";

(Внимание – всички стари версии на постовете ще бъдат изтрити.)

5. Транзиенти

Заявка за изтриване на стари транзиенти:

DELETE FROM wp_options 
WHERE option_name LIKE '_transient_%' 
OR option_name LIKE '_site_transient_%';

(Тази заявка е безопасна, тъй като трие кеш данни и те ще се генерират наново при поискване.)

6. Неизползвани тагове

DELETE t, tt 
FROM wp_terms t 
INNER JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id 
WHERE tt.count = 0 AND tt.taxonomy = 'post_tag';

Плъгини за оптимизация на базата

WP-Optimize

WP-Optimize plugin
Почистете базата с плъгина WP-Optimize

Освен детайлна информация за таблиците, в безплатната версия може да:

  • Изчистите ревизиите
  • Изчистите черновите
  • Изчистите спам коментарите
  • Неодобрени коментари
  • Изтекли транзиенти
  • И други излишни метаданни

Платеният абонамент е 58 евро на година и освен оптимизация на базата дава и

кеш на страници, снимки, lazy load и други.

Advanced Database Cleaner – Optimize & Clean Database to Speed Up Site Performance

Изчистване на спам коментари, чернови, неизползвани метаданни. В платената версия от 39 долара на година имате допълнително разширено почистване, мониторинг на базата и по-гъвкави възможности.

Често задавани въпроси за базата данни на WordPress

1. Колко голяма трябва да бъде базата данни на WordPress?

При чиста инсталация размерът е около 0,5 MB – 1 MB.
Малък сайт може да бъде около 20 MB, а онлайн магазин с WooCommerce – 50 MB до 100 MB. Ако размерът е значително по-голям спрямо съдържанието, вероятно има нужда от почистване.

2. Колко често трябва да се почиства базата данни?

За блог или корпоративен сайт – на 3–6 месеца.
За WooCommerce магазин – веднъж месечно или на 2 месеца, в зависимост от обема поръчки.

3. Опасно ли е ръчното изтриване на данни от базата?

Да, ако не знаете какво триете.
Винаги правете backup преди промени. Изтриването на грешни таблици или записи може да доведе до счупване на сайта.

4. Изтриването на ревизии ще повлияе ли на сайта?

Не, сайтът ще работи нормално.
Ще загубите единствено старите версии на публикациите.

5. Как да разбера кои таблици са излишни?

Обикновено името на таблицата съдържа името на плъгина.
Ако плъгинът е изтрит и няма да се използва повече, таблиците му могат да бъдат премахнати след проверка.

6. Транзиентите опасни ли са?

Не. Те са временни кеш данни.
Могат безопасно да се изтрият, защото WordPress ще ги генерира отново при нужда.

7. Базата данни влияе ли на скоростта на сайта?

Да.
Колкото по-голяма и непочистена е базата, толкова по-бавни стават заявките към нея, което увеличава TTFB и времето за зареждане.

8. По-добре ли е да използвам плъгин или ръчно почистване?

За повечето собственици на сайтове – плъгин е по-безопасният вариант.
Ръчно почистване е подходящо за разработчици или напреднали потребители.

Искате вашият сайт да е на отлично техническо ниво, да зарежда бързо и да не губи продажби?Разгледайте нашата услуга за поддръжка на WordPress сайт.

Имате въпрос? Пишете ни!