Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🚀 Küpsistevaba domeen WordPressis: täielik seadistusjuhend

🚀 Küpsistevaba domeen WordPressis: täielik seadistusjuhend

GTmetrix annab sinu lehele hindeks 72/100 ja soovitustes on kirjas „Serve static content from a cookieless domain". Klikid ja näed nimekirja 40 CSS-failist, millest igaüks veab kaasas Set-Cookie päist. Pildid, fondid, skriptid, kümneid päringuid ja igaüks kannab HTTP-päist, mida need failid absoluutselt ei vaja.

Probleem pole sinu koodis. See on arhitektuuriline omadus: server seab küpsised domeeni tasemel ja brauser lisab need kohusetundlikult igale päringule, isegi neile, kus autentimine ja sessioonid ei oma mingit mõtet. Tulemus: lisakilobaidid igas vastuses, staatilise sisu aeglasem laadimine ja punane hoiatus GTmetrixi ja Pingdomi raportites.

Hea uudis: selle parandamine võtab 15 minutit ilma hostimist vahetamata. Sa ei vaja teist serverit ega kallist äriplaani. Eraldi alamdomeenist või CDN-ist piisab ning staatilised failid liiguvad ilma küpsisteta, samal ajal kui sinu GTmetrixi skoor hüppab 10-15 punkti.

💡 Kiire ülevaade:

  • Mõista, miks küpsised staatilisele sisule „lekivad" ja millal see on tegelikult probleem
  • Sea cPaneli kaudu samm-sammult üles eraldi alamdomeen wp-content jaoks, sealhulgas SQL-i URL-ide asendamine
  • Ühenda KeyCDN CDN Enableri pistikprogrammi kaudu kui kaasaegne alternatiiv (5 minutit, alates $4/kuus)
  • Õpi, miks Cloudflare ei eemalda GTmetrixi hoiatust ja millal võid seda ignoreerida

Miks küpsised satuvad staatilisele sisule

Küpsised seatakse domeeni tasemel. Kuid on üks nüanss, mis sageli tähelepanuta jääb: alamdomeenid pärivad küpsiste seaded ülemdomeenilt. Kui sait asub aadressil example.com ja seab sellele domeenile küpsised, lähevad need automaatselt ka aadressidele www.example.com ja static.example.com.

Seepärast ei piisa lihtsalt alamdomeeni static.example.com loomisest. Kui põhisait jääb paljale domeenile, „lekivad" küpsised alamdomeeni. Lahendus on lihtne, kuid vastupidine intuitsioonile: vii sait üle aadressile www.example.com ja pane staatiline sisu aadressile static.example.com. Siis kehtivad küpsised www-le, samas kui static jääb puhtaks.

Teine võimalus on täiesti eraldi domeen. Tehniliselt toimib, kuid domeeni ostmine selle ülesande jaoks ei ole peaaegu kunagi õigustatud: korralik alamdomeeni käsitlemine on piisav.

Ja veel üks asi: hallatud WordPressi hostidel nagu Kinsta, WP Engine või SiteGround on probleem sageli juba serveri tasemel lahendatud. Kui plaan sisaldab „edge caching"-ut või „CDN included"-t, pole täiendavat seadistamist vaja.

1. Meetod. Eraldi alamdomeen staatilisele sisule cPaneli kaudu

Põhiline meetod, mis töötab igal cPaneliga hostimisel. Ei mingeid kolmanda osapoole teenuseid ega igakuiseid makseid. Idee: loo alamdomeen, seo see kaustaga /wp-content ja ütle WordPressile, et see teenindaks staatilist sisu selle kaudu.

Alamdomeeni loomine

Mine cPanelisse → jaotis „Domains" → „Subdomains". Loo alamdomeen static.yoursite.com. Väljale Document Root määra tee kausta wp-content: tavaliselt on see public_html/wp-content.

Kontrolli: põhisait peaks olema aadressil www.yoursite.com. Kui istud paljal domeenil ilma www-ta, vii sait kõigepealt www-le, vastasel juhul meetod ei tööta.

Konstantide lisamine faili wp-config.php

Ava saidi juurkaustas fail wp-config.php ja lisa kaks rida ENNE kommentaari /* That's all, stop editing! Happy publishing. */:

1define('WP_CONTENT_URL', 'https://static.yoursite.com');
2define('COOKIE_DOMAIN', 'www.yoursite.com');
PHP konstandid WP_CONTENT_URL ja COOKIE_DOMAIN failis wp-config.php

WP_CONTENT_URL ütleb WordPressile, et see teenindaks kogu sisu kaustast /wp-content/ uue alamdomeeni kaudu. COOKIE_DOMAIN piirab küpsiste ulatuse www alamdomeeniga, takistades nende levikut static-ule.

Olemasolevate failide URL-ide asendamine andmebaasis

Juba avaldatud postitused salvestavad linke vanadele pildi-URL-idele. Need tuleb phpMyAdmini kaudu hulgi asendada.

Sisene phpMyAdmini (cPanel → Databases), vali WordPressi andmebaas, SQL-i vahekaart. Käivita:

1UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.yoursite.com/wp-content/', 'static.yoursite.com/');
SQL päring staatiliste URL-ide asendamiseks phpMyAdminis WordPressi jaoks

Enne käivitamist varunda andmebaas. SQL-iga asendamine on pöördumatu. Kui URL on vale, lähevad saidil pildid katki ja pead taastama varukoopiast.

Plussid ja miinused

Meetod töötab ilma kolmanda osapoole teenuste ja lisakuludeta. Aga: faili wp-config.php ja andmebaasi käsitsi muutmine, SQL-i vigade oht, vajadus hallata kahe alamdomeeni konfiguratsiooni. NGINX-iga VPS-i puhul pead muutma ka serveri konfiguratsiooni, mis lisab keerukust.

Enamiku saitide jaoks on tänapäeval olemas lihtsam variant, CDN.

2. Meetod. CDN kui kaasaegne lahendus

Content Delivery Network viib staatilise sisu oma serveritesse ega kasuta vaikimisi failide jaoks küpsiseid. Saad korraga kaks asja: staatilise sisu ilma küpsisteta ja ülemaailmse edastusvõrgu, mis kiirendab laadimist külastajatele kõikjalt maailmast.

KeyCDN teenus, pay-as-you-go CDN hinnaga alates $0.04/GB liiklust ja minimaalne makse $4/kuus. Keskmise saidi kulud on $4-10 kuus. 60+ kohalolekupunkti, sisseehitatud Strip Cookies valik, mis sunniviisiliselt eemaldab Set-Cookie päised vastustest.

Ühendamine CDN Enableri kaudu

CDN Enabler, ametlik KeyCDN-i pistikprogramm WordPressile. Versioon 2.0.8, 10 000+ aktiivset paigaldust, testitud kuni WordPress 6.9-ni. See püüab lehed kinni ja kirjutab staatiliste failide URL-id ümber CDN-i domeenile.

Seadistamise sammud:

  • Loo KeyCDN-i konto. Teenus pakub prooviperioodi, saad testida ilma maksmata.

  • Paigalda CDN Enabler WordPressi repositooriumist: Plugins → Add New → otsi „CDN Enabler" → Activate.

  • Loo Pull zone KeyCDN-i armatuurlaual. Tsoon määratleb, millist sisu CDN sinu saidilt tõmbab. Määra lähte-URL, sinu saidi aadress.

Pull-tsooni loomine KeyCDN-i armatuurlaual Origin URL-i väljadega
  • Kopeeri tsooni URL, see näeb välja nagu https://yourzone.kxcdn.com, ja kleebi see CDN Enableri seadetesse: Settings → CDN Enabler → CDN Hostname.
CDN-i hostinime väli CDN Enableri pistikprogrammi seadetes WordPressi jaoks
  • Luba Strip Cookies KeyCDN-is: Zone Settings → Strip Cookies = Enabled. See valik tagab, et staatilisi faile serveeritakse ilma Set-Cookie päisteta.

  • Tühjenda saidi vahemälu ja kontrolli tulemust GTmetrixis.

CDN Enabler töötab iga CDN-iga. Kui kasutad juba Cloudflare'i, BunnyCDN-i või StackPath'i, siis lihtsalt määra oma teenusepakkuja CDN Hostname.

Oluline märkus: pärast CDN-i keelamist ja plugina eemaldamist võivad piltide URL-id jääda ümberkirjutatuks CDN-i domeenile. Enne deaktiveerimist tühjenda plugina vahemälu ja veendu, et URL-id on taastunud originaalkujule.

Meetod 3. Cloudflare, tasuta, kuid ühe mööndusega

Cloudflare, suurim CDN täiesti tasuta paketiga. Töötab DNS-i tasemel: suuna domeen Cloudflare'i nimeserveritele ja kogu liiklus läbib selle võrku.

Kuid on üks nüanss. Cloudflare kasutab iga päringu puhul turvalisuse eesmärgil teenuseküpsist _cfduid. See on kriitilise tähtsusega DDoS-i kaitse ja robotite tõrjumise jaoks ning isegi kui lubad Pro-paketis „Strip Cookies", siis seda küpsist ei eemaldata.

_cfduid tõttu näitab GTmetrix jätkuvalt hoiatust „Serve static content from a cookieless domain". 100/100 tulemuse saavutamine YSlow mõõdikus tasuta Cloudflare'iga on tehniliselt võimatu. Kuid see on valepositiivne tulemus: staatiline sisu laeb Cloudflare'i kaudu endiselt kiiresti ja üks teenuseküpsis tegelikku jõudlust ei mõjuta.

Kui sulle on oluline maksimaalne GTmetrixi skoor, siis KeyCDN koos Strip Cookies'iga. Kui prioriteet on tasuta teenus ja DDoS-i kaitse, siis Cloudflare lahendab selle täielikult.

Millal GTmetrixi hoiatust ignoreerida

Levinud olukord: CDN on seadistatud, Strip Cookies on lubatud, kuid GTmetrix näitab endiselt küpsisteta domeeni viga. Põhjus on selles, et YSlow, GTmetrixi mootor, ei kontrolli, kas Strip Cookies on CDN-i poolel lubatud. See näeb peadomeeniga sarnast URL-i ja märgib mehaaniliselt hoiatuse.

30-sekundiline kontroll: ava Chrome DevTools (F12) → Network → vali suvaline staatiline fail, CSS, JS või PNG → Headers vahekaart → Request Headers. Kui seal pole Cookie: rida, läheb staatiline sisu ilma küpsisteta, võid GTmetrixi hoiatust ignoreerida.

Veel üks valepositiivsete tulemuste allikas on serveriküpsised analüütikast ja A/B testimisest (Google Analytics, Hotjar, VWO). Need ilmuvad samuti raportis kui „lisa", kuigi mõjutavad lehe kiirust minimaalselt.

Tegelik liikluse vähenemine küpsiste eemaldamisest staatiliselt sisult on umbes 5-15% kogu päringutest. Mitte revolutsiooniline, kuid iga millisekund loeb: Google'i uuring näitas, et 1-sekundiline viivitus vähendab mobiilse külastaja konversiooni 20%.

⁉️🤔 Korduma kippuvad küsimused

Kas küpsisteta domeeni seadistamine on kohustuslik?

Ei, see pole range nõue. Aga kui võitled kiiruse eest, annab mittevajalike küpsiste eemaldamine staatiliselt sisult mõõdetavat kasu, eriti rohke meediaga saitidel: veebipoed, fotoblogid ja uudisteportaalid. Kolmeplokilise maandumislehe puhul on mõju tühine.

Mida teha, kui pärast wp-config.php muutmist lõpetas sait avanemise?

Peaaegu kindlasti tegid vea konstantsetes URL-ides või paigutasid need PÄRAST rida /* That's all, stop editing! */. Ühendu saidiga FTP kaudu, ava wp-config.php ja kontrolli: konstandid peaksid olema ENNE seda kommentaari. Kui sait ikka ei lae, kommenteeri lisatud read välja (// iga rea alguses), sait naaseb algsesse olekusse, misjärel proovi uuesti õigete URL-idega.

Kas CDN Enablerit saab kasutada koos teiste puhverdamise pluginatega?

Jah, pole probleemi. CDN Enabler ühildub Cache Enableri, WP Rocketi, W3 Total Cache'i ja LiteSpeed Cache'iga. Üks nüanss: kui sul on WP Rocket, seadistatakse CDN WP Rocketis endas, eraldi CDN Enabler pluginat pole vaja. Teiste puhverdamispluginatega töötab see paralleelselt, konflikte pole registreeritud.

Millist CDN-i valida väikese saidi jaoks?

Sõltub eelarvest ja prioriteetidest. KeyCDN hinnakiri (alates $0.04/GB, miinimum $4/kuus), hea algus: maksad kasutuse järgi, maksad ainult liikluse eest. Cloudflare, tasuta, kuid teenuseküpsise ja vale GTmetrixi hoiatusega. BunnyCDN (alates $0.01/GB mahupõhistel pakettidel, alates $1/kuus miinimum), odavam, kuid vähemate kohalolekupunktidega. Kuni 10 000 külastusega saidi puhul kuus jäävad CDN kulud vahemikku $2-7.

Kas küpsisteta domeeni on vaja, kui majutus on kaasaegne?

Hallatud WordPressi majutused, Kinsta, WP Engine, SiteGround, sisaldavad sageli sisseehitatud CDN-i või serveripuhvrit, mis juba lahendab küpsiste probleemi. Kontrolli oma paketti: kui kirjelduses on „edge caching" või „CDN included", pole täiendavat seadistamist vaja. Odaval jagatud majutusel ilma CDN-ita annab küpsisteta domeeni seadistamine märgatava tõuke.

Mida teha, kui pildid kadusid pärast SQL päringut?

Kas tegid URL-is vea (kontrolli domeeni vastavust päringus ja alamdomeeni seadetes) või static.yoursite.com alamdomeen osutab valele kataloogile. Taasta andmebaas varukoopiast ja kontrolli: alamdomeeni Document Root peaks olema public_html/wp-content ning domeen SQL päringus peaks ühtima sellega, mis loodi cPanelis (koos www.-ga või ilma, sõltub põhisaidi seadistusest).

Millist meetodit oma ülesande jaoks valida

Kui sait on odaval majutusel ilma CDN-ita ja eelarve puudub tasuliste teenuste jaoks, seadista eraldi alamdomeen cPaneli kaudu. See on 15 minutit tööd: alamdomeen, kaks rida failis wp-config.php ja üks SQL päring. Staatiline sisu läheb ilma küpsisteta, GTmetrix tõuseb. Miinuseks käsitsi hooldus ja globaalse kiirenduse puudumine.

Kui oled valmis maksma $4-10 kuus, kasuta KeyCDN + CDN Enabler kombinatsiooni. Sama ülesanne lahendatakse automaatselt, lisaks saad üle 60 punktiga edastusvõrgu, tihendamise ja kiirenduse külastajatele kõikjalt maailmast. Projekti puhul, mis teenib või plaanib teenida, tasub CDN end kohe ära.

Ja mis kõige tähtsam, ära kinnistu GTmetrixi skooridesse. Kasutajate jaoks on tegelik kiirus olulisem kui numbrid raportis. Kui staatiline sisu läheb ilma küpsisteta (kontrollitud DevToolsi kaudu) ja sait laeb kiiremini kui 2 sekundit, on ülesanne lahendatud.

Täieliku pildi värskendamiseks WordPressi kiirendamisest aitab WordPress.com-i meeskonna ametlik juhend, alates puhverdamisest kuni CDN-ini, koos reaalajas mõõtmiste ja seadistamisega: