Hosting i performanse
Kako činimo WordPress brzim: LiteSpeed Enterprise, LSCache i Redis po sajtu
Najbrži WordPress zahtev je onaj koji se nikada ne izvršava – evo kako naš stek odgovara na većinu poseta iz keša pre nego što se PHP ili MySQL uopšte pokrenu, i šta to znači za Core Web Vitals.
Najbrži zahtev je onaj koji se nikada ne izvrši
Standardni WordPress zahtev je skup. Veb server predaje posatak PHP-u, PHP pokreće WordPress, izvršava dodatke, upituje MySQL nekoliko desetina puta, sklapa HTML i tek tada šalje bajtove nazad. Na opterećenom sajtu cela ta procedura se dešava za svakog posetioca, i tu odlazi skoro celo vaše vreme do prvog bajta.
Naš odgovor je da osiguramo da se za većinu poseta to uopšte ne dešava. Na sajtovima koje hostujemo — preko 100.000 PBN sajtova plus standardni managed WordPress — velika većina pregleda stranica na front-endu isporučuje se kao unapred renderovana cela stranica direktno iz keša, bez pokretanja PHP-a ili pristupanja bazi podataka. Ostatak ovog posta govori o tome kako se slojevi koji to omogućavaju uklapaju i gde svaki od njih opravdava svoje mesto.
Važan okvir u ovom slučaju je da ovo nisu keševi koji se međusobno takmiče i između kojih birate. Keš cele stranice, objektični keš i CDN ivica hvataju različite klase zahteva, a vrednost je u tome kako se oni prenose jedni drugima.
LiteSpeed Enterprise + LSCache: sloj cele stranice
Svaki sajt radi na LiteSpeed Enterprise sa LSCache-om na nivou servera. Kada je odgovor interfejsa kešabilan, veb-server ga označava LiteSpeed zaglavljima za kontrolu keša i tagovima, a LiteSpeed isporučuje kompletnu stranicu direktno pri sledećem zahtevu — bez pokretanja PHP procesa i bez slanja MySQL upita. To je najveći faktor uticaja na WordPress TTFB, zato što uklanja celokupno pokretanje aplikacije iz kritične putanje.
Budući da LSCache živi unutar veb servera umesto u PHP dodatku, on počinje sa radom ranije u životnom ciklusu zahteva i čuva stranice u obliku koji server može trenutno da izbaci. Pauk keša održava popularne stranice toplim, tako da prvi posetilac nakon čišćenja nije taj koji plaća ponovno generisanje stranice. Rezultat je primetno niži i dosledniji TTFB nego kod keša koji je samo dodatak postavljen na generički stek, gde keš i dalje stoji iza PHP-a.
Naš keš plug-in nivoa ripozitorijuma dolazi unapred instaliran i automatski se ažurira na svakom sajtu, povezujući WordPress sa LSCache-om ispravno odmah po instalaciji. Na izvoru koji nije LiteSpeed, on jednostavno ne šalje zaglavlja cele stranice i sklanja se s puta, dok keš objekata i pravila izuzeća nastavljaju da rade svoj posao – tako da migrirani sajt nikada ne ostaje u polupodešenom stanju koje ne radi.
Ostanite brzi bez serviranja zastarelih sadržaja: ESI i pametno automatsko čišćenje
Agresivno keširanje cele stranice ima dva klasična načina otkazivanja: prikazivanje tuđe stranice prijavljenom korisniku i prikazivanje stranice koja je trebalo da bude izmenjena bilo kome. Oba se rešavaju na sloju keširanja umesto smanjenjem keširanja.
ESI (Edge Side Includes) nam omogućava keširanje stranice uz ostavljanje otvora za delove koji moraju ostati aktivni. Na WooCommerce prodavnici, stranice kataloga, proizvoda i kategorija se serviraju kao keš cele stranice za najbrži mogući TTFB, dok ESI iscrtava fragment korpe, ukupne iznose mini-korpe i stanje naloga po zahtevu. Korpa, naplata, moj-nalog i sve stranice sa nonce-om ili sesijom su podrazumevano isključene. Kupci uvek vide svoju korpu i funkcionalnu naplatu; svi ostali i dalje dobijaju izlog iz keša.
Svežina se održava pametnim automatskim čišćenjem. Kuke za čišćenje se aktiviraju automatski kada se sadržaj, proizvodi, cene ili porudžbine promene, tako da se relevantne keširane stranice osvežavaju odmah umesto na tajmer, a takođe možete da obavite čišćenje na zahtev sa kontrolne table ili unutar WordPress. Čišćenje zasnovano na oznakama znači da izmena jedne objave briše tu objavu i njene arhive — a ne ceo keš — tako da jedna izmena ne pokreće hladan start celog sajta.
Redis keš objekata po sajtu: za ono što ne može biti cela stranica
Nije svaki zahtev statična cela stranica. Prijavljene sesije, WordPress admin, WooCommerce korpe, pretraga i dinamički fragmenti koje ESI ostavlja aktivnim – sve to mora da pokreće PHP. Za njih se cilj pomera sa „preskoči aplikaciju“ na „preskoči bazu podataka“.
Svaki sajt dobija svoj namenski Redis objekat keš. WordPress kešira rezultate ponovljenih čitanja baze podataka — opcije, tranzijente, pretrage objava i termina, WooCommerce podatke o proizvodima i sesijama — u memoriji, tako da se isti upit ne izvršava nad MySQL-om pri svakom zahtevu. Efekat je najočigledniji upravo tamo gde keš cele stranice ne može da pomogne: brže kontrolne table, brže korpe i znatno manji utovar baze podataka pod saobraćajem.
Keš objekata je po sajtu, a ne deljen, što je važno i za performanse i za izolaciju. U kombinaciji sa ograničavanjem baze podataka po sajtu, teški ili loše napisani upiti jednog sajta ne mogu da izgladne bazu podataka za susedne sajtove. Više o tome kako se celo višeslojno podešavanje uklapa možete pročitati na našoj stranici sa funkcijama keširanja, kao i o granicama između zakupaca pod izolacijom.
Edge i transport ispod njega
Keš koji se nalazi na origin serveru i dalje mora da pređe mrežu. Ispred servera se nalazi CDN edge, tako da se statički resursi i strane koje se mogu keširati isporučuju sa tačke prisustva blizu posetioca, a origin ostaje miran čak i pod opterećenjem. Za našu footprint-free liniju hostinga, isti edge predstavlja multi-CDN bazen raspoređen na nekoliko provajdera, što služi cilju u vezi sa footprint-om, kao i performansama; na standardnom WordPress-u to je jednostavno brz sloj koji se dobro ponaša i drži origin servere neopterećenim.
Ispod toga, osnovne komponente nisu zanemarene. Sajtovi rade na NVMe skladištu uz HTTP/3, tako da bajtovi koje keš pošalje stižu preko modernog, multipleksiranog transporta sa brzim skladištem u pozadini svakog promašaja keša. Nijedan od ovih slojeva nije dodatak: LiteSpeed, LSCache, Redis po sajtu, NVMe i HTTP/3 predstavljaju osnovu na svakom paketu, a ne viši nivo koji se doplaćuje.
Šta zaista pokreće Core Web Vitals
Vredi biti precizan, jer se hosting često preprodaje na osnovu metrike Core Web Vitals. TTFB je deo jednačine koji je u nadležnosti servera, a keš sistem iznad je ono što ga smanjuje – keširana cela stranica isporučena preko HTTP/3 sa ivice mreže je otprilike onoliko niska koliko TTFB može da bude. Pošto je TTFB vodeća ivica metrike Largest Contentful Paint, brzi origin daje svakoj nizvodnoj metrici prednost u startu koju inače ne može imati.
Ali LCP, CLS i INP uglavnom određuje pretraživač, odnosno sama stranici: neoptimizovana uvodna slika, CSS i JavaScript koji blokiraju vykriscavanje, izgled koji se pomera kako se učitavaju fontovi i oglasi, kao i težak rad glavne niti od strane dodataka. Nikakvo keširanje na serveru ne može da popravi uvodnu sliku od 2 MB ili temu koja isporučuje megabajte JavaScript-a. Iskreno hosting rešenje čini doprinos servera praktično besplatnim i doslednim, a na samom sajtu je da frontend održi optimizovanim.
Ta podela rada je koristan mentalni model. Mi garantujemo da zahtev stiže do preglednika brzo i ostaje brz pod opterećenjem; vi održavate sadržaj malim i stabilnim. Tamo gde se ta dva susreću — zagrevanje keša, isporuka na ivici mreže i očuvanje odziva baze podataka kako dinamičke stranice ne bi zastale — tačno je ono gde je naš stek podešen, i to je ono što upravljani WordPress na ovoj platformi čini bržim od istog sajta na generičkom hostingu.
Često postavljana pitanja
Da li mi je i dalje potreban dodatak za keširanje kao što je WP Rocket?
Ne. Keširanje cele stranice obavlja veb-server pomoću rešenja LiteSpeed LSCache, a naš sopstveni dodatak za keširanje — unapred instaliran i sa automatskim ažuriranjem — ispravno povezuje WordPress sa njim, uz objekni keš Redis za svaki sajt u pozadini. Postavljanje drugog dodatka za keširanje cele stranice preko njega obično stvara konflikt sa kešom na nivou servera umesto da pomaže, tako da nije potrebno i ne preporučuje se.
Da li će keširanje pokvariti moju WooCommerce korpu ili stranice za prijavljene korisnike?
Ne. Korpa, naplata, moj-nalog i sve stranice sa jednokratnim tokenima ili sesijama su podrazumevano izuzeti iz keša, dok ESI čuva fragment korpe i ukupne iznose aktivnim na stranicama koje se inače keširaju. Kupci uvek vide sopstvenu korpu i funkcionalnu naplatu dok se prodavnica i dalje učitava iz keša.
Kako keš ostaje svež kada objavljujem ili uređujem?
Pametno automatsko čišćenje se pokreće na relevantnim WordPress kukicama (hooks), tako da objavljivanje, uređivanje sadržaja, ili izmena proizvoda, cene ili porudžbine čisti samo pogođene stranice i njihove arhive – ne ceo keš – a pauk (crawler) ih ponovo zagreva. Takođe možete pokrenuti čišćenje na zahtev sa kontrolne table ili iz samog programa WordPress.
Da li samo hosting može da mi obezbedi savršene Core Web Vitals?
On vam pruža najbolji mogući TTFB, koji predstavlja udeo servera i početnu prednost za Largest Contentful Paint. Ali LCP, CLS i INP u najvećoj meri određuje sama stranica — veličine slika, resursi koji blokiraju vykriscivanje, stabilnost rasporeda i JavaScript glavne niti. Naš stok čini doprinos serverom brzim i doslednim; održavanje front-end paketa malim je ono što zatvara preostali jaz.
Povezano
Isprobajte besplatno 14 dana
Pokrenite svoje prve sajtove besplatno na 14 dana — bez kartice. Selite postojeću mrežu? Vaša prva migracija je na naš račun.
Započni besplatno