Czemu instalacja wtyczki cache nie pomogła
Page cache zapisuje gotowy HTML i serwuje go kolejnemu anonimowemu odwiedzającemu bez uruchamiania WordPressa w ogóle. To realny zysk dla publicznego ruchu - ale zcache'owana strona to wynik, nie robota. To, co ją spowalniało, dalej działa za każdym razem, gdy cache nie może jej podać.
Test prędkości robi się zielony dla wylogowanych. Twoje własne kliki, kiedy jesteś zalogowany, w wp-admin albo w koszyku, są dokładnie tak samo wolne jak przedtem, bo dla ciebie nic nie jest cachowane. Wtyczka robi swoje. Tylko że jej zadanie jest węższe niż problem.
Cache może więc działać idealnie, a strona dalej będzie wolna wszędzie tam, gdzie to dla ciebie ważne. Pytanie przestaje brzmieć „czy cache działa", a zaczyna brzmieć „co dalej działa pod spodem."
Czego page cache nie może dotknąć
Wtyczki cache są w tej sprawie uczciwe w dokumentacji - tylko zaczynają od benchmarków. Oto miejsca, w których page cache nigdy nie działa, i praca, która w nich toczy się dalej:
| Co jest wolne | Czemu cache to mija | Który moduł to widzi |
|---|---|---|
| ekrany wp-admin | Admin nigdy nie jest cachowany - każdy klik uruchamia WordPressa i wykonuje admin-hooki każdej wtyczki | Slow Query Analyzer, Find Slow Callbacks |
| Frontend po zalogowaniu | Strony spersonalizowane omijają cache dla każdego zalogowanego - członkowie, klienci, redaktorzy | Znajdź wolne callbacki |
| Koszyk, checkout, moje konto | Wykluczone z założenia - cachowanie ich wpuściłoby dane jednego klienta na stronę innego | Find Slow Callbacks, Slow Query Analyzer |
| Wolne zapytania do bazy | Cache zapisuje wynik; zapytanie i tak leci przy każdym missie i każdej niecachowanej stronie | Slow Query Analyzer |
| Opcje autoload | Zestaw autoload z wp_options ładuje się, zanim WordPress cokolwiek wyrenderuje - cachowany czy nie | Autoloader Optimizer |
| Wolne callbacki wtyczek | Hook admin_init trwający 800ms odpala się przy każdym niecachowanym requeście, który produkuje aplikacja PHP | Znajdź wolne callbacki |
| Zewnętrzne wywołania HTTP | Sprawdzanie aktualizacji, pingi licencyjne i telemetria odpalają się wewnątrz requestu, za cache | External Call Optimizer |
Najpierw: czy cache w ogóle działa?
Zanim obwinisz kod pod spodem, potwierdź, że cache w ogóle cachuje. Site Doctor strzela requestem loopback do twojej strony i czyta prawdziwy nagłówek cache, który serwer odsyła - HIT, MISS albo BYPASS - zamiast ufać stronie ustawień wtyczki. Strona główna odpowiadająca BYPASS zostaje zgłoszona jako info, nie błąd, bo strona główna to ta najczęściej wykluczana celowo.
Czyta też ustawienia twoich innych aktywnych optymalizatorów i listuje tylko to, co jest włączone w obu miejscach - klasyczna sytuacja „dwie wtyczki minifikują to samo" - żebyś mógł wybrać jednego właściciela na zadanie zamiast płacić za tę samą robotę dwa razy.
Co zostaje wolne po zcache'owaniu HTML-a
- Wolne zapytania do bazy. Slow Query Analyzer loguje zapytania przekraczające próg, puszcza MySQL EXPLAIN na requeście, który je złapał, i podpowiada gotowe poprawki indeksów
- Rozdęcie autoloadu. Autoloader Optimizer szereguje twoje największe opcje autoload i wyłącza autoload na winowajcach - na stronach z prawdziwym object cache zysk maleje, i sam to mówi
- Wolne callbacki wtyczek. Znajdź wolne callbacki profiluje jeden URL na request i szereguje według czasu każdy callback powyżej 10 milisekund, z hookiem i plikiem źródłowym, który go zarejestrował
- Zewnętrzne wywołania HTTP. External Call Optimizer przykręca udowodnionym gadatliwym hostom zewnętrznym sensowny timeout i krótko cacheuje powtarzane odpytania GET/HEAD - wywołania płatności i checkoutu nigdy nie są ruszane
Dla jasności: WP Multitool nie ma page cache
Załatwia część dla anonimowych odwiedzających. WP Multitool zajmuje się niecachowaną częścią pod spodem - zapytaniami, autoloadem, callbackami i wychodzącymi wywołaniami, które decydują, jak szybki jest niecachowany render. Sprawdzenie nakładania w Site Doctor istnieje właśnie dlatego, że to dwie różne roboty; nawet listuje wtyczki tylko do page cache jako niekonfliktowe.
Od czego zacząć
- Odpal Site Doctor. Jeden skan: sonda page cache, sprawdzenie Redis, konfiguracja, balast bazy, autoload i nakładające się optymalizatory. Read-only - nic się nie zmienia, dopóki nie powiesz.
- Sprawdź zapytania. Otwórz Slow Query Analyzer i puść EXPLAIN na najgorszych winowajcach, które złapał.
- Zaudytuj autoload. Jeśli skan pokazuje rozdmuchany zestaw autoload w wp_options, pozwól Autoloader Optimizer go uszeregować.
- Sprofiluj resztę. Skieruj Find Slow Callbacks na wciąż wolny URL i przeczytaj nazwę funkcji, która cię kosztuje.
- Przykręć phone-home. Jeśli callbacki pokazują zewnętrzne HTTP, pozwól External Call Optimizer ustawić timeout gadatliwym hostom.
FAQ: cache nie pomógł
Zainstalowałem wtyczkę cache - czemu moja strona WordPress dalej jest wolna?
Page cache przyspiesza powtórne odsłony tylko anonimowych odwiedzających. wp-admin, sesje zalogowanych, koszyk i checkout oraz każdy cache miss dalej lecą pełnym PHP - a to, co spowalnia ten render (zapytania, autoload, callbacki, wywołania zewnętrzne), dalej działa pod cache.
Czy WP Multitool zastępuje moją wtyczkę cache?
Nie - w ogóle nie ma page cache. Zostaw cache dla anonimowego ruchu; WP Multitool diagnozuje i naprawia niecachowaną robotę pod spodem. Site Doctor nawet sprawdza optymalizacje, które dwie wtyczki robią jednocześnie.
Czemu moja strona jest wolna tylko jak jestem zalogowany?
Bo page cache celowo cię pomija. Każdy zalogowany dostaje świeży render PHP, więc czujesz prawdziwą prędkość strony - zapytania, opcje autoload i callbacki wtyczek, na które anonimowi nigdy nie czekają.
Czemu checkout WooCommerce jest wolny mimo cache?
Koszyk, checkout i moje konto są z założenia wykluczone z page cache - cachowanie ich serwowałoby dane jednego klienta innemu. Ich szybkość to szybkość niecachowanego rendera: zapytania i callbacki wtyczek na tych requestach.
Skąd mam wiedzieć, czy moja wtyczka cache naprawdę działa?
Site Doctor strzela requestem loopback do twojej strony i czyta nagłówek cache, który serwer naprawdę wysyła - HIT, MISS albo BYPASS - zamiast ufać dashboardowi wtyczki. BYPASS na stronie, którą chciałeś cachować, mówi ci, że reguła jest zła, a nie że cache jest zepsuty.
Czy dwie wtyczki optymalizacyjne mogą ze sobą kolidować?
Tak - dwie wtyczki minifikujące te same pliki albo optymalizujące te same obrazki to częsty sposób na pogorszenie sprawy. Site Doctor czyta ustawienia twoich innych aktywnych optymalizatorów i raportuje tylko to, co włączone w obu miejscach, żebyś mógł wybrać jednego właściciela na zadanie.
Znajdź to, czego cache nie naprawi
Site Doctor to punkt startowy jednego skanu; moduły Pro idą stamtąd w zapytania, autoload, callbacki i wychodzące wywołania. Pro zaczyna się od $79/rok za jedną stronę - każdy płatny plan zawiera wszystkie 19 modułów.
Weź Pro - od $79/rok Site Doctor Wszystkie plany na stronie cennika →