Spis treści
Co to jest Query Monitor i kiedy warto go używać
Query Monitor to darmowa wtyczka diagnostyczna dla WordPressa, która w czasie rzeczywistym pokazuje, co dzieje się “pod maską” Twojej strony. Po aktywacji zobaczysz w pasku administratora skróty o czasie generowania, liczbie zapytań SQL i błędach. Kliknięcie otwiera panel z detalami o zapytaniach do bazy, ostrzeżeniach PHP, żądaniach HTTP, skryptach i stylach, hookach oraz szablonach. To narzędzie przydaje się, gdy:
- strona ładuje się za wolno i nie wiesz dlaczego,
- pojawiają się błędy, białe ekrany lub losowe 500-tki,
- chcesz zoptymalizować zapytania lub zestaw wtyczek,
- diagnozujesz konflikty motywów i builderów,
- pracujesz nad migracją lub aktualizacją większej witryny.
Instalacja i pierwszy start
Zainstaluj Query Monitor jak każdą inną wtyczkę i włącz go z poziomu panelu. Po aktywacji:
- Odśwież dowolną stronę w trybie zalogowanego administratora – w czarnym pasku pojawi się skrót z metrykami.
- Kliknij skrót, aby otworzyć panel diagnostyczny doklejony do ekranu.
- Przejdź po kolei przez zakładki: Database Queries, PHP Errors, Hooks & Actions, HTTP API Calls, Scripts & Styles, Languages, Conditionals, Environment, Theme/Template.
- Na końcu sprawdź kartę Overview – to kondensacja kluczowych sygnałów, która pozwala szybko zdecydować, gdzie kopać głębiej.
Wtyczka działa tylko dla zalogowanych osób z uprawnieniami administracyjnymi, dzięki czemu nie spowalnia ruchu publicznego. Na produkcji możesz ją mieć aktywną stale, pod warunkiem że ograniczysz dostęp do panelu wyłącznie administracji.
Najważniejsze panele w praktyce
- Database Queries – pełna lista zapytań SQL z czasem wykonania, źródłem wywołania i call stackiem. Łatwo znajdziesz duplikaty (np. N+1), wolne SELECT-y i zapytania wykonywane poza cache. Możesz filtrować po komponencie (motyw, wtyczka, core) i szybko wskazać winowajcę.
- PHP Errors – błędy, ostrzeżenia, notice i funkcje przestarzałe z dokładną ścieżką pliku i linią. Idealne do czyszczenia logów, po aktualizacjach PHP oraz przed przejściem na najnowszy WordPress.
- Hooks & Actions – pokazuje, jakie hooki odpalają się w trakcie żądania i co się do nich podpina. Przydatne, gdy szukasz kolizji lub chcesz zrozumieć kolejność zdarzeń.
- HTTP API Calls – wszystkie wyjścia na zewnątrz: połączenia do API płatności, map, mailingów, dostawców SMS. Widzisz adresy, kody odpowiedzi, czasy i treść błędów.
- Scripts & Styles – lista zarejestrowanych i załadowanych plików JS/CSS z zależnościami. Dzięki temu namierzysz dwie wersje tej sameej biblioteki, niepotrzebne assety na danej podstronie albo konflikty z minifikacją.
- Conditionals – wskazuje, które warunki WordPress uznał za prawdziwe (np. is_singular, is_front_page). Ułatwia debugowanie logiki szablonów.
- Theme/Template – pokazuje, który plik szablonu i które partiale zostały użyte do wygenerowania widoku.
- Environment – wersje PHP, MySQL, opcache, serwer, limity pamięci i czasów – komplet do szybkiego przeglądu środowiska.
- Languages – rozbicie ładowanych tłumaczeń i plików .mo, co pomaga, gdy polska wersja UI dziwnie “miesza” języki.
Jak czytać sygnały wydajności
- Czas generowania i TTFB – jeżeli TTFB przekracza 600-800 ms na prostych stronach, zacznij od panelu Database Queries i HTTP API.
- Liczba zapytań SQL – 100-200 zapytań na złożonej stronie nie jest tragiczne, ale 600-1000 często wskazuje na duplikaty albo pętle ładowania. Szukaj powtarzających się SELECT-ów po tym samym kluczu.
- Najwolniejsze zapytania – wszystko powyżej 100 ms warto przejrzeć, zwłaszcza gdy dotyczy tabel
wp_postmeta
lubwp_options
. Nierzadko pomaga indeks w bazie lub refaktoryzacja pętli. - Kolizje skryptów – jeśli dwie wtyczki rejestrują tę samą bibliotekę pod różnymi wersjami, narzędzie to pokaże. Zdecyduj, co wyłączyć albo przenieść na konkretne podstrony.
- Zewnętrzne API – pojedyncze połączenie trwające kilka sekund zabije percepcję szybkości. Rozważ cache wyników i timeouty.
Szybkie scenariusze diagnostyczne
- Strona nagle zwolniła po instalacji wtyczki – w Database Queries ustaw filtr na “Component” i wybierz nową wtyczkę. Zobacz, czy generuje duże lub liczne zapytania; sprawdź też Scripts & Styles pod kątem nowych, ciężkich assetów.
- Białe ekrany sporadycznie u części użytkowników – wejdź w PHP Errors i sprawdź Notice/Warning przy wyłączonym display_errors. Często winne są niezainicjalizowane zmienne lub kolizje typów po aktualizacji PHP.
- WooCommerce – listing kategorii jest powolny – w zapytaniach wypatruj dołączeń do
postmeta
po atrybutach. Rozważ ograniczenie liczby filtrów, cache fragmentów lub inaczej zbudowaną pętlę. - Builder stron ładuje 3 MB JS na blogu – Scripts & Styles pokaże bundle buildera. Włącz warunkowe ładowanie lub zrób osobny szablon dla wpisów, bez komponentów buildera.
- Integracja płatności zwraca błędy – HTTP API Calls pokaże kody odpowiedzi, nagłówki i treści, co pozwoli porównać konfigurację kluczy i endpointów.
Praca zespołowa i bezpieczeństwo
Query Monitor domyślnie pokazuje panel tylko uprawnionym użytkownikom w panelu WordPress. To bezpieczniejsze niż publiczne debug bary. Kilka zasad uporządkuje pracę:
- nadaj dostęp tylko członkom zespołu, którzy faktycznie diagnozują problemy,
- nie zrzucaj ekranów z wrażliwymi tokenami lub payloadami API,
- na środowiskach staging włącz wtyczkę dla wszystkich testerów, na produkcji – tylko dla adminów,
- jeśli korzystasz z reverse proxy/CDN, pamiętaj, że wyniki czasu mogą różnić się od tego, co widzi użytkownik; patrz na trendy, nie na pojedynczy pomiar.
Jak używać Query Monitor razem z cache i CDN
- testuj z wyczyszczonym cache dla konkretnej podstrony,
- wykonuj pomiary w trybie zalogowanym i niezalogowanym (dla drugiego użyj narzędzi przeglądarki),
- jeśli masz pełny cache serwerowy, uruchom kilka żądań pod rząd – pierwsze pokaże “cold start”, kolejne “warm cache”,
- przy minifikacji i łączeniu plików porównaj, czy zysk na liczbie requestów nie generuje nowych konfliktów.
Dobre praktyki konfiguracji i higiena projektu
- Aktualizuj PHP do wspieranej wersji i czyść ostrzeżenia – mniej notice to czystsze logi oraz szybsza diagnostyka realnych problemów.
- Porządkuj autoload w
wp_options
– wartości o dużym rozmiarze i autoload=yes spowalniają każdy request. Query Monitor pomoże wykryć “grube” opcje. - Ogranicz zapytania w pętli – zamieniaj powtarzane meta_query na prefetch i mapowanie po ID; duplikaty łatwo widać w sekcji Database.
- Ładuj skrypty warunkowo – buildery, slidery i galerie tylko tam, gdzie są użyte. Sekcja Scripts & Styles szybko pokaże “gości na gapę”.
- Testuj po aktualizacjach – po każdej większej zmianie sprawdź 3-5 kluczowych widoków: strona główna, wpis, listing, koszyk/kasa. Zapisz wyniki jako punkt odniesienia.
Najczęstsze błędy przy pracy z Query Monitor
- Szukanie igły w stogu siana – zamiast przeglądać wszystko, zacznij od Overview i najwolniejszych elementów; dopiero potem wchodź w szczegóły.
- Ignorowanie call stacku – wiedza, co wywołało zapytanie, jest kluczowa. Jeśli nie patrzysz na stack, widzisz tylko objaw, a nie przyczynę.
- Testy w warunkach innych niż produkcja – staging bez CDN i z wyłączoną minifikacją może dawać fałszywy obraz. Staraj się odtwarzać warunki produkcyjne.
- Brak porównania “przed-po” – rób krótkie notatki z metryk. Optymalizacja bez benchmarków to działanie po omacku.
Kiedy Query Monitor nie wystarczy
Wtyczka świetnie diagnozuje warstwę PHP i WordPress, ale gdy problem leży w bazie lub serwerze, przydadzą się dodatkowe narzędzia: slow query log w MySQL, profiling na poziomie opcache, testy obciążeniowe czy monitorowanie APM po stronie hostingu. Jeśli aplikacja intensywnie korzysta z AJAX/REST, rozważ również logowanie po stronie klienta i śledzenie czasu odpowiedzi endpointów w przeglądarce.
Na co dzień Query Monitor pozwala oszczędzić godziny zgadywania. Pokazuje fakty – Ty decydujesz, które elementy zoptymalizować, co wyłączyć i jak ułożyć priorytety prac. W połączeniu z prostą dyscypliną wydajności i porządkiem w wtyczkach zrobisz z WordPressa stabilną, przewidywalną platformę.