Jak zoptymalizować bazę danych WordPress? Poradnik krok po kroku

Baza danych to serce każdej instalacji WordPress to ona przechowuje wpisy, strony, komentarze, ustawienia wtyczek, dane użytkowników i dziesiątki innych informacji. Z czasem, bez odpowiedniej troski, baza danych rośnie i zwalnia — nawet jeśli faktyczna zawartość strony pozostaje taka sama. Nagromadzone wersje robocze, dane transakcyjne WooCommerce, logi wtyczek i automatyczne kopie ustawień potrafią zwiększyć rozmiar bazy kilkukrotnie.

Ten poradnik pokazuje, co i dlaczego się kumuluje w bazie danych WordPress, jak bezpiecznie przeprowadzić optymalizację i jak zapobiegać zbędnemu rozrostowi w przyszłości.

Dlaczego baza danych WordPress się rozrasta?

Autosave i wersje wpisów

WordPress automatycznie zapisuje wersję roboczą wpisu co 60 sekund oraz przechowuje pełną historię każdej zapisanej wersji. Po roku pisania regularnie na blogu w tabeli wp_posts mogą znajdować się setki lub tysiące wpisów, z których zdecydowana większość to nieaktywne wersje i autosave — zajmujące przestrzeń i spowalniające zapytania do bazy.

Tabela wp_options i autoload

Tabela wp_options przechowuje ustawienia WordPressa i wtyczek i jest jedną z najczęściej odpytywanych tabel przy każdym żądaniu strony. Problem pojawia się, gdy wtyczki (szczególnie te nieaktywne lub odinstalowane) zostawiają swoje dane w tej tabeli z flagą autoload=yes. Przy każdym ładowaniu strony WordPress wczytuje wszystkie rekordy z tą flagą niezależnie od tego, czy są aktualnie potrzebne.

Dane transakcyjne WooCommerce

Sklepy WooCommerce generują ogromne ilości danych: zamówienia, sesje klientów, statystyki produktów, logi płatności. Domyślnie WordPress przechowuje je bezterminowo po kilku latach aktywnego sklepu baza danych może ważyć kilkadziesiąt gigabajtów.

Komentarze spamowe i oczekujące na moderację

Komentarze zatrzymane w filtrze antyspamowym i oczekujące w kolejce moderacji zajmują miejsce w tabeli wp_comments. Jeśli moderacja komentarzy nie jest wykonywana regularnie, ta tabela może zawierać dziesiątki tysięcy niepotrzebnych rekordów.

Przed optymalizacją — obowiązkowa kopia zapasowa

Optymalizacja bazy danych wiąże się z usuwaniem danych, operacją, której nie da się cofnąć bez backupu. Zanim zaczniesz cokolwiek czyścić, wykonaj pełną kopię zapasową bazy danych. Większość paneli hostingowych oferuje eksport bazy jednym kliknięciem; możesz też skorzystać z phpMyAdmin (Eksport → Format SQL) lub wtyczki do tworzenia kopii zapasowych.

Jeśli Twój hosting oferuje automatyczne codzienne backupy z możliwością przywrócenia wybranego dnia, to idealna siatka bezpieczeństwa. Sprawdź, czy ta opcja jest aktywna, zanim przejdziesz do kolejnych kroków.

Jak zoptymalizować bazę danych WordPress?

Metoda 1 — wtyczka WP-Optimize (najprościej)

WP-Optimize to jedna z najpopularniejszych wtyczek do optymalizacji bazy danych WordPress. Oferuje graficzny przegląd tego, co zajmuje miejsce w bazie, i pozwala jednym kliknięciem:

  • Usunąć wersje wpisów (z możliwością zachowania N ostatnich wersji).
  • Wyczyścić wpisy typu autosave, trashed i zduplikowane meta.
  • Usunąć spam i niezatwierdzone komentarze.
  • Oczyścić tabelę wp_options z danych autoload należących do odinstalowanych wtyczek.
  • Zoptymalizować tabele (odpowiednik komendy SQL OPTIMIZE TABLE).

Wtyczka pozwala też zaplanować cykliczną optymalizację np. cotygodniowe czyszczenie bazy wykonywane automatycznie o wybranej godzinie.

Metoda 2 — przez phpMyAdmin

Jeśli wolisz bezpośrednią pracę z bazą danych lub chcesz mieć pełną kontrolę nad tym, co jest usuwane, skorzystaj z phpMyAdmin dostępnego w panelu hostingowym. Typowe operacje:

Usuwanie wersji wpisów:

DELETE FROM wp_posts WHERE post_type = 'revision';

Usuwanie autosave:

DELETE FROM wp_posts WHERE post_status = 'auto-draft';

Optymalizacja wszystkich tabel: zaznacz wszystkie tabele w widoku bazy danych, a z menu „Dla zaznaczonych" wybierz „Optymalizuj tabele".

Przed wykonaniem każdego zapytania SQL upewnij się, że prefiks tabel w Twojej instalacji to rzeczywiście wp_ niektóre instalacje używają niestandardowego prefiksu (np. wp7x_) dla zwiększenia bezpieczeństwa.

Metoda 3 — przez WP-CLI (dla zaawansowanych)

WP-CLI to narzędzie wiersza poleceń do zarządzania WordPress. Jeśli masz dostęp SSH do serwera (dostępny na hostingu WordPress), możesz wykonać optymalizację jedną komendą:

wp db optimize

Możesz też usunąć wszystkie wersje wpisów:

wp post delete $(wp post list --post_type='revision' --format=ids) --force

Ograniczenie liczby wersji wpisów w bazach danych

Zamiast cyklicznie czyścić wersje, możesz ograniczyć ich liczbę u źródła. Dodaj do pliku wp-config.php:

define( 'WP_POST_REVISIONS', 5 );

Ta dyrektywa ogranicza przechowywanie historii do 5 ostatnich wersji każdego wpisu. Ustawienie wartości false całkowicie wyłącza wersjonowanie — nie jest to jednak zalecane, bo wersje służą jako wbudowane cofanie zmian przy pisaniu.

Limit pamięci PHP ma wpływ na to, jak duże operacje może obsłużyć WordPress podczas optymalizacji bazy. Jeśli napotykasz problemy z timeout'em przy dużych bazach, sprawdź limit pamięci PHP w WordPress.

Optymalizacja tabeli wp_options i autoload

To krok, który często przynosi największy wzrost wydajności przy codziennym działaniu strony. Sprawdź, ile danych jest ładowanych przy każdym żądaniu:

SELECT SUM(LENGTH(option_value)) as autoload_size
FROM wp_options
WHERE autoload='yes';

Jeśli wynik przekracza 1 MB, masz problem. Przy pomocy WP-Optimize lub bezpośrednio w phpMyAdmin możesz przeglądać rekordy autoload i zmieniać flagę autoload z yes na no dla danych należących do nieaktywnych wtyczek. Nigdy nie usuwaj rekordów z prefiksem _site_ i siteurl bez pewności, co robisz.

Jak zapobiegać rozrostowi bazy danych?

  • Ogranicz liczbę wersji wpisów przez WP_POST_REVISIONS.
  • Regularnie czyść spam i komentarze oczekujące na moderację.
  • Odinstalowując wtyczki, korzystaj z opcji „Usuń dane wtyczki" (jeśli dostępna) zamiast tylko deaktywować.
  • Dla sklepów WooCommerce skonfiguruj automatyczne usuwanie starych sesji i logów (WooCommerce → Ustawienia → Zaawansowane → WooCommerce.com).
  • Zaplanuj cotygodniową optymalizację przez WP-Optimize.

Sprawna baza danych to jedno, ale równie ważna jest infrastruktura serwera. Dla rosnących witryn z dużym ruchem warto rozważyć hosting WordPress zoptymalizowany pod kątem MySQL z szybkim dyskiem SSD i dedykowanym serwerem baz danych. Jeśli potrzebujesz jeszcze więcej zasobów, VPS daje pełną kontrolę nad konfiguracją MySQL i możliwość dostosowania limitów połączeń do rzeczywistych potrzeb.

Podsumowanie

Optymalizacja bazy danych WordPress to jedna z tych czynności konserwacyjnych, którą warto wykonać raz, a potem zautomatyzować. Zacznij od backupu, następnie uruchom WP-Optimize i obejrzyj, co zajmuje miejsce, wyniki mogą zaskoczyć. Ograniczenie wersji wpisów i regularne czyszczenie tabeli wp_options to zmiany, które przynoszą mierzalny efekt w czasie ładowania strony.

Jeśli wolisz, żeby ktoś zadbał o optymalizację i utrzymanie bazy za Ciebie, opieka WordPress obejmuje regularne audyty techniczne, w tym przegląd stanu bazy danych i wdrożenie odpowiednich automatyzacji.