Spam w komentarzach może spowolnić WordPressa, ponieważ tysiące niepotrzebnych rekordów obciążają tabelę wp_comments i wydłużają wykonywanie zapytań SQL. Najpierw wykonaj kopię zapasową, potem usuń spam metodą dopasowaną do jego skali, zoptymalizuj tabelę i włącz ochronę wielowarstwową.
Dlaczego spam w komentarzach spowalnia WordPress?
Każdy komentarz jest zapisywany w bazie danych, przede wszystkim w tabeli wp_comments. Gdy boty dodają setki lub tysiące wpisów, tabela rośnie, a operacje wykonywane przez MySQL muszą przetwarzać większą ilość danych. Dotyczy to nie tylko widoku komentarzy w panelu, lecz także zapytań używanych przy wyświetlaniu wpisów i sprawdzaniu statusu komentarzy.
Efektem może być dłuższy czas odpowiedzi serwera, wyższy TTFB i większe zużycie procesora. Spam zwiększa też rozmiar kopii zapasowych oraz obciąża panel administracyjny. To nie jest wyłącznie problem estetyczny. Opublikowane komentarze z podejrzanymi linkami mogą obniżać wiarygodność strony, a masowa moderacja zabiera czas administratora.
Warto rozróżnić spam automatyczny od ręcznego. Boty zwykle generują dużą liczbę podobnych wpisów w krótkim czasie, natomiast spam ręczny może wyglądać jak zwykły komentarz i wymagać dokładniejszej moderacji. Filtr antyspamowy dobrze radzi sobie z powtarzalnymi wzorcami, ale nie zastąpi ustawień moderacji.
Jak szybko i bezpiecznie usunąć spam?
Przed masowym usuwaniem wykonaj pełną kopię zapasową plików i bazy danych. Błędne zapytanie SQL albo przypadkowe zaznaczenie komentarzy może trwale usunąć również wartościowe wpisy. Przy dużej bazie najlepiej wykonać operację poza godzinami największego ruchu.
Metodę dobierz do liczby rekordów i dostępu do serwera:
| Metoda | Skala spamu | Wymagania i uwagi |
|---|---|---|
| Panel WordPress | Mała | Uprawnienia administratora. Usuwanie odbywa się partiami i może wymagać kilku powtórzeń. |
| WP-CLI | Średnia lub duża | Dostęp SSH i podstawowa znajomość terminala. Dobre rozwiązanie przy wielu komentarzach. |
| SQL w phpMyAdmin | Duża lub masowa | Kopia zapasowa, ostrożność przy zapytaniach i optymalizacja tabeli po usunięciu. |
Usuwanie spamu przez panel WordPress
Przy niewielkiej liczbie komentarzy najbezpieczniejszy będzie panel administracyjny:
- Otwórz sekcję Komentarze i przejdź do filtra Spam.
- Zaznacz komentarze przeznaczone do usunięcia.
- W menu działań zbiorczych wybierz Usuń na stałe i zatwierdź operację.
- Sprawdź także komentarze oczekujące na moderację, ponieważ część spamu może nie mieć jeszcze właściwego statusu.
WordPress przetwarza większe operacje stronicami. Przy dużej liczbie rekordów panel może działać wolno albo wymagać powtarzania czynności.
WP-CLI i masowe usuwanie
Jeżeli masz dostęp SSH i WP-CLI, możesz pobrać identyfikatory komentarzy oznaczonych jako spam i usunąć je jednym poleceniem:
wp comment delete $(wp comment list --status=spam --format=ids) --force
Przed uruchomieniem sprawdź, czy polecenie działa w katalogu właściwej instalacji WordPressa. Opcja --force omija kosz i usuwa wskazane komentarze trwale, dlatego backup jest tutaj szczególnie ważny.
SQL w phpMyAdmin przy dużej liczbie rekordów
W phpMyAdmin możesz wykonać zapytanie ograniczone do komentarzy oznaczonych jako spam:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Prefiks wp_ może być inny, dlatego przed wykonaniem zapytania sprawdź rzeczywistą nazwę tabeli w swojej bazie. Jeśli chcesz usunąć stare komentarze oczekujące na moderację, najpierw zweryfikuj, czy nie znajdują się wśród nich prawdziwe zgłoszenia:
DELETE FROM wp_comments WHERE comment_approved = '0' AND comment_date < DATE_SUB(NOW(), INTERVAL 30 DAY);
Po masowym DELETE wykonaj OPTIMIZE TABLE dla tabeli komentarzy, na przykład wybierając w phpMyAdmin opcję „Optymalizuj”. Samo usunięcie rekordów nie musi od razu zwolnić całej zarezerwowanej przestrzeni. Optymalizacja porządkuje tabelę po operacji i ogranicza skutki fragmentacji.
Jak zabezpieczyć WordPress przed kolejnym spamem?
Najlepiej połączyć kilka warstw. Pojedynczy filtr może przepuścić spam ręczny, a sama CAPTCHA nie zatrzyma każdego automatycznego żądania.
W ochronie komentarzy mogą pomóc następujące narzędzia i ustawienia:
- Akismet analizuje nowe komentarze i przenosi podejrzane wpisy do folderu spamu. Sposób korzystania z usługi i dostępność planu zależą od rodzaju strony.
- Antispam Bee może filtrować część automatycznych zgłoszeń i wykorzystywać mechanizm honeypot.
- Cloudflare Turnstile lub reCAPTCHA v3 dodają weryfikację botów bez klasycznego przepisywania trudnych znaków.
- Honeypot ukrywa pole formularza, którego człowiek nie powinien wypełnić. Jego uzupełnienie może wskazywać na działanie bota.
- WAF, na przykład w połączeniu z Cloudflare, może blokować podejrzane żądania jeszcze przed przekazaniem ich do WordPressa.
Kolejność wdrożenia może wyglądać tak:
- Aktywuj filtr antyspamowy i sprawdź, czy prawidłowe komentarze nie trafiają do folderu spamu.
- Włącz Turnstile lub reCAPTCHA v3 na formularzu komentarzy, jeśli boty nadal wysyłają dużo zgłoszeń.
- W ustawieniach Dyskusja wymagaj ręcznego zatwierdzenia pierwszego komentarza autora.
- Dodaj ograniczenia na poziomie WAF lub serwera, gdy atak generuje wiele żądań POST i obciąża PHP.
W przypadku strony, na której komentarze nie są potrzebne, możesz wyłączyć je dla nowych wpisów albo dla wybranych stron. Brak formularza usuwa możliwość wysyłania spamu w danym miejscu. Pamiętaj też, że filtr powinien uwzględniać spam ręczny, którego automatyczne narzędzia mogą nie rozpoznać.
Sprawdź tę krótką listę po konfiguracji zabezpieczeń:
- Filtr antyspamowy jest aktywny i poprawnie zapisuje komentarze oznaczone jako spam.
- Weryfikacja Turnstile lub reCAPTCHA działa na formularzu, bez blokowania prawdziwych użytkowników.
- Pierwszy komentarz nowego autora wymaga zatwierdzenia.
- Niepotrzebne formularze komentarzy są wyłączone.
- WAF lub reguły ograniczające podejrzane żądania są monitorowane po wdrożeniu.
Jak utrzymać bazę danych w dobrym stanie?
Regularnie sprawdzaj folder Spam i usuwaj jego zawartość, zanim liczba rekordów zacznie rosnąć. Wtyczki do konserwacji bazy, takie jak Advanced Database Cleaner, mogą pomóc wykryć spam, komentarze w koszu i niepowiązane metadane. Przed automatycznym czyszczeniem przejrzyj zakres operacji, ponieważ usuwanie innych typów danych wymaga większej ostrożności niż kasowanie potwierdzonego spamu.
Notatka administratora: po większym czyszczeniu sprawdź rozmiar tabeli wp_comments, czas odpowiedzi panelu i obciążenie serwera. Jeśli baza zawiera miliony wpisów, zapytania powodują błędy albo tabela jest uszkodzona, nie wykonuj kolejnych operacji na ślepo. W takiej sytuacji potrzebna może być pomoc administratora serwera lub specjalisty od MySQL.
Najkrótsza ścieżka naprawy to: backup, usunięcie spamu metodą dopasowaną do skali, OPTIMIZE TABLE, a następnie filtr antyspamowy, weryfikacja botów i moderacja pierwszego komentarza. Takie połączenie ogranicza obciążenie bazy teraz i zmniejsza ryzyko powtórzenia problemu.