Оновлений контент, вперше опублікований у червні 2018 року
У центрі будь-якого сайту WordPress знаходиться база даних MySQL, яка зберігає пости, сторінки, коментарі користувачів, налаштування плагінів та тем. З часом, при додаванні нового контенту або рості трафіку, база накопичує зайві дані. Це сповільнює запити та завантаження сторінок, що негативно впливає на SEO та досвід користувачів. Оптимізація бази видаляє «сміття» та прискорює сайт. Почнімо з простих плагінів і перейдемо до ручного налаштування SQL. Правило №1: зробіть повну резервну копію. Використовуйте WP Database Backup або WP-DB-Backup перед будь-якими змінами.
Кожен перегляд сторінки запускає запити до бази даних. Якщо таблиці заповнені старими версіями постів, спамом або тимчасовими даними, навіть прості запити виконуються повільно. Затримки особливо помітні під час пікового трафіку, і Google PageSpeed Insights часто позначає це як проблему для Core Web Vitals.
Оптимізація також зменшує навантаження на сервер. На спільному хостингу це знижує ризик перевищення ресурсів, на VPS дозволяє ефективніше використовувати CPU та пам’ять. Підтримання бази в чистоті — ключ до стабільного та швидкого сайту.
Можна автоматизувати за допомогою плагінів або чистити вручну. Для початку краще плагіни — безпечніше при наявності резервної копії.
Плагін WP-Optimize робить очищення простим. Встановіть та активуйте його через адмінку WordPress, відкрийте налаштування. Ви побачите опції для видалення спаму та непідтверджених коментарів, старих чернеток і ревізій постів, а також видалення зайвих пробілів у таблицях. Оберіть потрібне і запустіть оптимізацію. Після виконання можна деактивувати плагін.
Плагін WP-Sweep від Lester Chan також ефективний. Після встановлення (Інструменти → Sweep) він показує статистику «сміття» в таблицях. Можна запускати повну очистку або поступово для контролю. Працює схоже на WP-Optimize і додає звіти.
Якщо є доступ до хостинг-панелі (cPanel), використайте phpMyAdmin. Увійдіть, оберіть базу даних сайту (wp-config.php
), відмітьте таблиці або «Check All», оберіть «Optimize table» у меню «With selected». Це виконує OPTIMIZE TABLE і зменшує фрагментацію, покращуючи швидкість.
Перед будь-якими змінами обов’язково зробіть резервну копію бази.
Якщо комфортно працювати з SQL, можна очистити базу вручну. Завжди тестуйте на копії перед виконанням на живому сайті.
Видалення старих ревізій постів:
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';
Видалення спаму:
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);
Видалення transient:
DELETE FROM wp_options WHERE option_name LIKE ('%_transient_%');
Повільні запити (декілька секунд) — часта проблема. Увімкніть slow_query_log
у my.cnf
:
slow_query_log = /var/log/mysql/mysql-wp-slow.log long_query_time = 5
Перезапустіть MySQL. Запити довше 5 секунд будуть записані для аналізу та оптимізації.
Після оптимізації перевірте швидкість через Google PageSpeed Insights або GTmetrix. Якщо сайт все ще повільний, розгляньте CDN або зміну ОС сервера (Ubuntu, CentOS Stream).
Увага! Завжди робіть свіжу резервну копію перед оптимізацією. Можна використовувати WP Database Backup, WP-DB-Backup або панель хостингу.