Preskoči na sadržaj
WordPress

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.

Ivan Petković 4 min čitanja
Sadržaj članka
  1. Zašto keš ne ubrzava admin panel
  2. Najčešći uzroci
  3. Pronalaženje spornog dodatka
  4. Heartbeat API
  5. Autoload opcije i baza podataka
  6. WP-Cron, hosting i ostala podešavanja

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

UzrokTipičan znakKako proveriti
Težak ili loše napisan dodatakSporo samo na određenim stranicama adminaQuery Monitor, isključivanje dodataka na staging kopiji
Heartbeat APIOpterećen server dok je admin otvoren u više karticaZahtevi ka admin-ajax.php u alatkama pregledača
Prevelike autoload opcijeSve stranice admina podjednako sporeZdravlje sajta, upit nad tabelom wp_options
WP-Cron i zaostali zadaciPovremena sporost bez jasnog obrascaDodatak za pregled cron zadataka
Slab hosting ili stara PHP verzijaSve sporo, i front bez kešaVreme 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

Podelite: Facebook LinkedIn WhatsApp