Spor WordPress admin panel: uzroci i rešenja korak po korak
Kada svako čuvanje stranice ili otvaranje liste porudžbina traje večno, rad na sajtu postaje mučenje. Objašnjavamo najčešće uzroke sporog WordPress admin panela i kako ih pronaći i otkloniti bez nagađanja.
Sadržaj članka
Sajt se posetiocima učitava brzo, ali čim se prijavite u WordPress, svaki klik traje nekoliko sekundi. Čuvanje teksta se vrti, lista proizvoda se učitava sporo, a ponekad dobijete i grešku. Spor WordPress admin panel je čest problem, a uzrok gotovo nikad nije „WordPress je spor“, već konkretan dodatak, preopterećena baza ili slab server. U ovom tekstu objašnjavamo zašto se to dešava, kako da pronađete uzrok i šta pomaže.
Zašto keš ne ubrzava admin panel
Dodaci za keširanje čuvaju gotove HTML stranice i služe ih posetiocima bez ponovnog izvršavanja PHP koda. Admin panel se, međutim, nikada ne kešira na taj način: svaka stranica u njemu se generiše iznova, sa upitima ka bazi i kodom svih aktivnih dodataka. Zato sajt na frontu može biti brz, a admin spor. To znači i da je admin panel dobar pokazatelj stvarne brzine servera i koda. Opšte savete za brzinu sajta pročitajte u tekstu kako ubrzati WordPress sajt.
Najčešći uzroci
| Uzrok | Tipičan znak | Kako proveriti |
|---|---|---|
| Težak ili loše napisan dodatak | Sporo samo na određenim stranicama admina | Query Monitor, isključivanje dodataka na staging kopiji |
| Heartbeat API | Opterećen server dok je admin otvoren u više kartica | Zahtevi ka admin-ajax.php u alatkama pregledača |
| Prevelike autoload opcije | Sve stranice admina podjednako spore | Zdravlje sajta, upit nad tabelom wp_options |
| WP-Cron i zaostali zadaci | Povremena sporost bez jasnog obrasca | Dodatak za pregled cron zadataka |
| Slab hosting ili stara PHP verzija | Sve sporo, i front bez keša | Vreme odziva servera, verzija PHP-a u Zdravlju sajta |
Pronalaženje spornog dodatka
Najkorisniji alat za dijagnostiku je besplatan dodatak Query Monitor. Kada je aktivan, na svakoj stranici admina prikazuje vreme generisanja, broj i trajanje upita ka bazi, spore upite i to koja komponenta (dodatak ili tema) ih je pokrenula. Tako umesto nagađanja dobijete ime dodatka koji troši vreme. Posle analize ga isključite, jer i on dodaje malo opterećenja.
Ako Query Monitor ne da jasan odgovor, primenite metod isključivanja: na staging kopiji isključite sve dodatke, pa ih uključujte jedan po jedan i merite. Ne radite to na živom sajtu, posebno ne na web shopu. Kako napraviti testnu kopiju objašnjavamo u tekstu staging sajt: testiranje izmena.
Česti krivci su dodaci koji na kontrolnoj tabli prikazuju sopstvene statistike, dodaci za sigurnost koji skeniraju fajlove, page builderi na ekranima za uređivanje i dodaci koji pri svakom učitavanju proveravaju licencu na spoljnom serveru. Ako spoljni server sporo odgovara, i vaš admin čeka.
Heartbeat API
WordPress Heartbeat šalje periodične zahteve ka fajlu admin-ajax.php dok je admin otvoren. Koristi se za automatsko čuvanje teksta, zaključavanje objave koju uređuje drugi korisnik i obaveštenja dodataka. Svaki takav zahtev pokreće WordPress na serveru. Ako je admin otvoren u nekoliko kartica ili kod više korisnika istovremeno, to može primetno da optereti slabiji hosting.
Heartbeat ne treba potpuno gasiti, jer tada gubite automatsko čuvanje i zaključavanje objava. Bolje je produžiti interval, na primer na 60 sekundi, kratkim kodom u dodatku za isečke koda ili child temi:
add_filter( 'heartbeat_settings', function ( $settings ) {
$settings['interval'] = 60;
return $settings;
} );
Isto se može podesiti i preko nekih dodataka za optimizaciju, ali tada pazite da dva dodatka ne menjaju isto podešavanje.
Autoload opcije i baza podataka
Tabela wp_options čuva podešavanja WordPressa i dodataka. Opcije označene za automatsko učitavanje (autoload) učitavaju se pri svakom zahtevu, i na frontu i u adminu. Dodaci često ostavljaju velike zapise koji se automatski učitavaju čak i kada ih odavno ne koristite. Od verzije 6.6 WordPress ima nove vrednosti ove kolone i upozorenje u alatu Zdravlje sajta kada je ukupna veličina autoload opcija prevelika.
Ukupnu veličinu možete videti ovim upitom u phpMyAdminu (prefiks tabele može biti drugačiji od wp_):
SELECT SUM(LENGTH(option_value)) AS ukupno
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto-on', 'auto');
Ako je rezultat velik, pogledajte koje opcije su najveće i kom dodatku pripadaju. Ostatke uklonjenih dodataka možete obrisati ili im isključiti automatsko učitavanje, ali samo uz bekap baze i kada ste sigurni čemu opcija služi. Pogrešno obrisana opcija može da obori sajt. Pomaže i čišćenje isteklih privremenih zapisa (transients), starih revizija i spam komentara.
WP-Cron, hosting i ostala podešavanja
WP-Cron
WordPress zakazane zadatke pokreće pri posetama sajtu. Kada se nagomilaju zadaci ili neki zadatak traje dugo, to se oseti kao povremena sporost. Rešenje je isključiti pokretanje pri posetama i podesiti pravi cron na serveru koji poziva wp-cron.php svakih nekoliko minuta:
define( 'DISABLE_WP_CRON', true );
Ovaj red ide u wp-config.php, ali tek pošto ste na hostingu podesili cron zadatak, inače zakazane objave i e-pošta prestaju da rade.
Server i PHP
- PHP verzija: novije verzije su primetno brže od starih. Proverite verziju u alatu Zdravlje sajta.
- Memorija: za admin se može podesiti veća granica konstantom
WP_MAX_MEMORY_LIMIT, u okviru onoga što hosting dozvoljava. - Objektni keš: Redis ili Memcached čuvaju rezultate upita u memoriji i mogu mnogo da pomognu adminu, posebno kod web shopova. Zavise od podrške hostinga.
- Resursi hostinga: na jeftinom deljenom hostingu ograničenja procesora i broja procesa često su pravi uzrok. Više u tekstu koji hosting izabrati.
Za WooCommerce prodavnice važe dodatna pravila jer imaju mnogo više podataka u bazi, o čemu pišemo u tekstu ubrzanje WooCommerce prodavnice.
Spor admin panel se gotovo uvek može popraviti kada se pronađe stvarni uzrok, a ne nasumičnim instaliranjem dodataka za optimizaciju. Ako vam rad u WordPressu oduzima vreme i nerve, pošaljite nam upit za proveru brzine sajta, pa ćemo pronaći šta ga usporava.
Česta pitanja
Zašto je sajt brz, a WordPress admin spor?
Posetioci dobijaju keširane stranice, dok se admin panel uvek generiše iznova, sa svim upitima ka bazi i kodom dodataka. Zato admin otkriva probleme koje keš na frontu skriva.
Da li treba isključiti Heartbeat API?
Ne potpuno, jer služi za automatsko čuvanje i zaključavanje objava. Bolje je produžiti interval, na primer na 60 sekundi, i ne držati admin otvoren u mnogo kartica.
Kako da saznam koji dodatak usporava admin?
Najbrže pomoću dodatka Query Monitor, koji prikazuje spore upite i komponentu koja ih pokreće. Druga mogućnost je isključivanje dodataka jedan po jedan na staging kopiji sajta.
Da li je bezbedno brisati opcije iz tabele wp_options?
Samo uz prethodni bekap baze i kada pouzdano znate da opcija pripada uklonjenom dodatku. Pogrešno obrisana opcija može da prouzrokuje greške ili obori sajt.
#WordPress#brzina sajta#admin panel#baza podataka#hosting