Uendeshaji na utendaji

Jinsi tunavyofanya WordPress iwe ya kasi: LiteSpeed Enterprise, LSCache na Redis kwa kila tovuti

Ombi la haraka zaidi la WordPress ni lile ambalo halifanyiki kabisa — hivi ndivyo mfumo wetu unavyojibu ziara nyingi kutoka kwenye akiba fiche kabla ya PHP au MySQL kuwahi kuwashwa, na maana yake kwa Core Web Vitals.

Ombi la haraka zaidi ni lile ambalo halitekelezwi kamwe

Ombi la kawaida la WordPress hutumia rasilimali nyingi. Seva ya tovuti huhamishia kazi kwa PHP, PHP huanzisha WordPress, huendesha programu-jalizi, huuliza MySQL mara kadhaa, huunganisha HTML, na ndipo inaporudisha baiti. Kwenye tovuti yenye shughuli nyingi, mchakato huo wote hutokea kwa kila mgeni, na hapo ndipo karibu time-to-first-byte yako yote inapoishia.

Jibu letu ni kuhakikisha kwamba, kwa ziara nyingi, hakuna lolote kati ya hayo linalotokea kabisa. Katika tovuti zote tunazohifadhi — zaidi ya tovuti 100,000 za PBN pamoja na tovuti za kawaida za WordPress zinazosimamiwa — idadi kubwa zaidi ya mitazamo ya kurasa za upande wa mbele hutolewa kama ukurasa kamili uliotayarishwa awali moja kwa moja kutoka kwenye kache, bila kuamsha PHP au kugusa hifadhidata. Sehemu iliyobaki ya chapisho hili inahusu jinsi tabaka zinazofanikisha hilo zinavyoungana, na jinsi kila moja inavyostahili nafasi yake.

Jambo muhimu la kuzingatia ni kwamba hizi si kache zinazoshindana ambazo unapaswa kuchagua moja wapo. Kache ya ukurasa mzima, kache ya vipengee, na ukingo wa CDN kila moja inashughulikia aina tofauti ya ombi, na thamani yake iko katika jinsi zinavyopokezana majukumu.

LiteSpeed Enterprise + LSCache: safu ya ukurasa kamili

Kila tovuti inaendeshwa kwenye LiteSpeed Enterprise yenye LSCache ya kiwango cha seva. Majibu ya mbele yanapoweza kuhifadhiwa kwenye kache, seva ya wavuti huweka vichwa vya habari vya udhibiti wa kache na lebo za LiteSpeed, na LiteSpeed hutoa ukurasa mzima moja kwa moja kwenye ombi linalofuata — hakuna mchakato wa PHP unaoanzishwa, hakuna hoja ya MySQL inayotolewa. Hilo ndilo nguzo kuu pekee kwenye TTFB ya WordPress, kwa sababu huondoa uanzishaji mzima wa programu kutoka kwa njia kuu.

Kwa sababu LSCache ipo ndani ya seva ya wavuti badala ya kuwa ndani ya programu-jalizi ya PHP, huanza kufanya kazi mapema katika mzunguko wa ombi na huhifadhi kurasa katika muundo ambao seva inaweza kuufuta papo hapo. Kitambazaji cha akiba huweka kurasa maarufu tayari, ili mgeni wa kwanza baada ya ufutaji asiwe yule anayegharamia uzalishaji upya wa ukurasa. Matokeo yake ni TTFB ya chini na thabiti zaidi kuliko akiba ya programu-jalizi pekee iliyowekwa kwenye mrundikano wa kawaida, ambapo akiba bado iko nyuma ya PHP.

Programu-jalizi yetu ya akiba ya kiwango cha hazina huja ikiwa imesakinishwa awali na kusasishwa kiotomatiki kwenye kila tovuti, ikiunganisha WordPress na LSCache kwa usahihi punde tu inapotolewa. Kwenye seva asili isiyo ya LiteSpeed, haitoi vichwa vya ukurasa kamili na huepuka kuingilia, huku akiba ya vipengee na sheria za kutojumuisha zikiendelea kufanya kazi yake — ili tovuti iliyohamishwa isiwahi kuachwa katika hali iliyoharibika au nusu iliyosanidiwa.

Kudumisha kasi bila kutoa maudhui yaliyopitwa na wakati: ESI na ufutaji mahiri wa kiotomatiki

Uhifadhi mkali wa akiba wa ukurasa mzima una njia mbili za kawaida za kutofaulu: kumhudumia mtumiaji aliyeingia kwenye mfumo ukurasa wa mtu mwingine, na kumhudumia mtu yeyote ukurasa ambao ulipaswa kuwa umebadilika. Yote mawili hutatuliwa katika safu ya uhifadhi wa akiba badala ya kupunguza uhifadhi wa akiba.

ESI (Edge Side Includes) huturuhusu kuhifadhi ukurasa kwenye kache huku ikitengeneza nafasi wazi kwa sehemu zinazopaswa kubaki mubashara. Kwenye duka la WooCommerce, kurasa za katalogi, bidhaa na kategoria hutolewa kama kache ya ukurasa mzima kwa TTFB ya haraka zaidi iwezekanavyo, huku ESI ikitoa sehemu ya rukwama, jumla za rukwama ndogo na hali ya akaunti kwa kila ombi. Kurasa za rukwama, malipo, akaunti yangu na kurasa zozote za nonce au kipindi zimetengwa kwa chaguo-msingi. Wanunuzi huona kikapu chao wenyewe na sehemu ya kulipia inayofanya kazi kila wakati; kila mtu bado hupata ukurasa wa mbele wa duka kutoka kwenye kache.

Usasishaji unasimamiwa na usafishaji otomatiki mahiri. Ndoana za kusafisha hufanya kazi kiotomatiki wakati maudhui, bidhaa, bei au maagizo yanapobadilika, ili kurasa husika zilizoakibishwa zifanywe upya mara moja badala ya kutegemea kipima muda, na pia unaweza kusafisha unapohitaji kutoka kwenye dashibodi au kutoka ndani ya WordPress. Usafishaji unaotegemea lebo unamaanisha kuwa kuhariri chapisho moja husafisha chapisho hilo na kumbukumbu zake — si akiba nzima — kwa hivyo uhariri mmoja hauanzishi upya tovuti nzima tangu mwanzo.

Akiba muda ya vipengee ya Redis kwa kila tovuti: kwa kile ambacho hakiwezi kuwa ukurasa kamili

Sio kila ombi linaweza kuwa ukurasa tuli kamili. Vipindi vilivyoingia, usimamizi wa WordPress, mikokoteni ya WooCommerce, utafutaji, na vijisehemu vinavyobadilika ambavyo ESI huacha vikiwa hai vyote lazima viendeshe PHP. Kwa hivyo, lengo hubadilika kutoka 'ruka programu' hadi 'ruka hifadhidata'.

Kila tovuti hupata kache yake maalum ya vipengee vya Redis. WordPress huhifadhi matokeo ya usomaji unaorudiwa wa hifadhidata — machaguo, transients, utafutaji wa machapisho na istilahi, data ya bidhaa na vipindi vya WooCommerce — kwenye kumbukumbu, ili hoja ile ile isitekelezwe kwenye MySQL kwa kila mtumiaji anapotembelea. Athari huonekana wazi pale ambapo kache ya ukurasa mzima haiwezi kusaidia: dashibodi zenye kasi zaidi, mikokoteni yenye kasi zaidi, na mzigo mdogo sana kwenye hifadhidata wakati wa msongamano mkubwa wa watumiaji.

Kache ya vipengee ni ya kila tovuti na haishirikiwi, jambo ambalo ni muhimu kwa utendaji na utengaji. Ikiunganishwa na udhibiti wa kasi ya hifadhidata kwa kila tovuti, maswali mazito au yaliyoandikwa vibaya ya tovuti moja hayawezi kuinyima hifadhidata rasilimali kwa majirani zake. Mnaweza kusoma zaidi kuhusu jinsi usanidi mzima wa tabaka nyingi unavyoshirikiana kwenye ukurasa wetu wa vipengele vya ukache, na kuhusu mipaka kati ya wapangaji chini ya utengaji.

Ukingo na usafirishaji wa chini yake

Kache inayokaa kwenye asili bado inapaswa kuvuka mtandao. Mbele ya seva kuna ukingo wa CDN, ili vipengee tuli na kurasa zinazoweza kuhifadhiwa kwenye kache vitolewe kutoka kituo cha uwepo kilicho karibu na mgeni, na asili ibaki tulivu hata chini ya mzigo. Kwa safu yetu ya upangishaji ya footprint-free, ukingo huo huo ni kundi la multi-CDN lililoenea kwa watoa huduma kadhaa, ambalo linatimiza lengo la footprint pamoja na la utendaji; kwenye WordPress ya kawaida ni safu ya haraka na inayofanya kazi ipasavyo ambayo huweka asili zikiwa hazitumiki.

Kwa ndani, misingi haijapuuzwa. Tovuti zinaendeshwa kwenye hifadhi ya NVMe yenye HTTP/3, hivyo baiti zinazotumwa na kache hufika kupitia usafirishaji wa kisasa wa multiplexed wenye hifadhi ya haraka iwapo kuna cache miss. Hakuna safu hata moja kati ya hizi iliyo ya nyongeza: LiteSpeed, LSCache, Redis ya kila tovuti, NVMe na HTTP/3 ndio msingi wa kila mpango, si kiwango cha mauzo ya juu.

Ni nini hasa kinachoboresha Core Web Vitals

Inafaa kuwa sahihi, kwa sababu huduma za upangishaji mara nyingi huuzwa kupita kiasi kuhusu Core Web Vitals. TTFB ni sehemu ya mlinganyo inayomilikiwa na seva, na rundo la akiba lililo hapo juu ndilo linaloipunguza — ukurasa kamili uliohifadhiwa kwenye kache unaotolewa kupitia HTTP/3 kutoka kwenye ukingo ndio TTFB ya chini zaidi iwezekanavyo. Kwa sababu TTFB ndio sehemu inayoongoza ya Largest Contentful Paint, chanzo cha asili cha haraka huipa kila metriki inayofuata manufaa ya kuanzia ambayo haingeweza kuipata vinginevyo.

Lakini LCP, CLS na INP kwa kiasi kikubwa huamuliwa kwenye kivinjari, na ukurasa wenyewe: picha kuu (hero image) ambayo haijaboreshwa, CSS na JavaScript zinazozuia utoaji wa kurasa, mpangilio unaobadilika wakati fonti na matangazo yanapopakiwa, na kazi nzito kwenye uzi mkuu (main thread) kutoka kwa programu-jalizi. Hakuna kiasi chochote cha uhifadhi wa akiba (caching) wa seva kinachoweza kurekebisha picha kuu ya MB 2 au mandhari inayotoa megabaiti za JavaScript. Huduma ya kuaminika ya upangishaji hufanya mchango wa seva kuwa mwepesi na thabiti, kisha ni juu ya tovuti yenyewe kuhakikisha kiolesura cha mbele (front end) kinabaki chepesi.

Mgawanyo huo wa kazi ni kielelezo cha fikra chenye manufaa. Tunahakikisha kuwa ombi linafika kwenye kivinjari kwa kasi na kubaki na kasi wakati wa msongamano wa wavuti; nanyi mnadumisha uzito wa data ukiwa mdogo na thabiti. Pale pande zote mbili zinapokutana — uwezeshaji wa akiba, usambazaji ukingoni, na kudumisha usikivu wa hifadhidata ili kurasa zinazobadilika zisikwame — ndipo hasa mfumo wetu uliporekebishwa, na ndicho kinachofanya WordPress inayosimamiwa kwenye jukwaa hili kuwa ya kasi zaidi kuliko tovuti hiyo hiyo iliyo kwenye seva ya kawaida ya kupangisha.

Maswali yanayoulizwa mara kwa mara

Je, bado ninahitaji programu-jalizi ya kuhifadhi kache kama vile WP Rocket?

Hapana. Akiba ya kurasa nzima inashughulikiwa kwenye seva ya wavuti na LSCache ya LiteSpeed, na programu-jalizi yetu wenyewe ya akiba — iliyosakinishwa awali na kusasishwa kiotomatiki — inaunganisha WordPress kwayo ipasavyo, ikiwa na akiba ya kitu cha Redis kwa kila tovuti nyuma yake. Kuongeza programu-jalizi ya pili ya akiba ya kurasa nzima juu yake kwa kawaida hupingana na akiba ya kiwango cha seva badala ya kusaidia, kwa hivyo haihitajiki na haipendekezwi.

Je, kuweka akiba kutaathiri gari langu la WooCommerce au kurasa zilizoingia?

Hapana. Kurasa za cart, checkout, my-account na kurasa zozote za nonce au session zimetengwa kwenye akiba ya muda (cache) kwa chaguomsingi, na ESI huweka kipande cha rukwama na jumla zikiwa za moja kwa moja kwenye kurasa ambazo vinginevyo zimewekwa kwenye akiba. Wanunuzi huona kikapu chao wenyewe na malipo yanayofanya kazi kila wakati huku sehemu ya mbele ya duka ikiendelea kupakiwa kutoka kwenye akiba.

Je, akiba hubakije safi ninapochapisha au kuhariri?

Usafishaji mahiri wa kiotomatiki hufanya kazi kwenye ndoano husika za WordPress, kwa hivyo kuchapisha, kuhariri maudhui, au kubadilisha bidhaa, bei au agizo husafisha tu kurasa zilizoathiriwa na kumbukumbu zake — si akiba yote — na kitambazaji huzipasha joto tena. Unaweza pia kusafisha unapohitaji kutoka kwenye dashibodi au kutoka ndani ya WordPress.

Je, upangishaji pekee unaweza kunipa Core Web Vitals kamilifu?

Inakupa TTFB bora zaidi iwezekanavyo, ambayo ni mchango wa seva na mwanzo mzuri wa Largest Contentful Paint. Lakini LCP, CLS na INP kwa kiasi kikubwa huamuliwa na ukurasa wenyewe — ukubwa wa picha, rasilimali zinazozuia utoaji, uthabiti wa mpangilio na JavaScript ya thread kuu. Mkusanyiko wetu hufanya mchango wa seva kuwa wa haraka na thabiti; kuweka upakiaji wa mbele ukiwa mwepesi ndicho kinachofunga pengo lililosalia.

Ijaribu bila malipo kwa siku 14

Zindua tovuti zako za kwanza bila malipo kwa siku 14 — hakuna kadi inayohitajika. Je, unahamisha mtandao uliopo? Uhamishaji ni wa bure, bila kikomo.

Anza bila malipo