Skip to content

Allt om WordPress, webbutveckling — och mer därtill

🚀 Kakfri domän i WordPress: komplett installationsguide

🚀 Kakfri domän i WordPress: komplett installationsguide

GTmetrix ger din sida 72/100, och rekommendationerna visar "Serve static content from a cookieless domain." Du klickar och ser en lista med 40 CSS-filer, där var och en drar med sig en Set-Cookie-header. Bilder, typsnitt, skript, dussintals förfrågningar, och varje bär på en HTTP-header som dessa filer absolut inte behöver.

Problemet är inte din kod. Det är en arkitektonisk egenskap: servern sätter cookies på domännivå, och webbläsaren bifogar dem pliktskyldigt till varje förfrågan, även de där autentisering och sessioner inte fyller någon funktion. Resultatet: extra kilobyte i varje svar, långsammare laddning av statiskt innehåll och en varningsflagga i GTmetrix- och Pingdom-rapporter.

Goda nyheter: det här tar 15 minuter att åtgärda utan att byta webbhotell. Du behöver ingen extra server, du behöver inget dyrt enterprise-abonnemang. En separat subdomän eller CDN räcker, så kommer statiska filer att skickas utan cookies samtidigt som ditt GTmetrix-betyg hoppar 10-15 poäng.

💡 Snabb översikt:

  • Förstå varför cookies "läcker" till statiskt innehåll och när det faktiskt är ett problem
  • Sätt upp en separat subdomän för wp-content via cPanel, steg för steg, inklusive SQL-URL-ersättning
  • Anslut KeyCDN via tillägget CDN Enabler som ett modernt alternativ (5 minuter, från $4/månad)
  • Lär dig varför Cloudflare inte tar bort GTmetrix-varningen, och när du kan ignorera den

Varför cookies hamnar på statiskt innehåll

Cookies sätts på domännivå. Men det finns en nyans som ofta förbises: subdomäner ärver cookie-inställningar från föräldern. Om sajten ligger på example.com och sätter cookies för den domänen, går de automatiskt till www.example.com och static.example.com.

Det är därför det inte räcker att bara skapa en subdomän static.example.com. Medan huvudsajten ligger kvar på den nakna domänen kommer cookies att "läcka" till subdomänen. Lösningen är enkel men kontraintuitiv: flytta sajten till www.example.com och lägg statiskt innehåll på static.example.com. Då gäller cookies för www, medan static förblir ren.

Det andra alternativet, en helt separat domän. Fungerar tekniskt, men att köpa en domän för den här uppgiften är nästan aldrig motiverat: korrekt subdomänhantering räcker.

Och en annan sak: på managed WordPress-värdar som Kinsta, WP Engine eller SiteGround är problemet ofta redan löst på servernivå. Om abonnemanget inkluderar "edge caching" eller "CDN ingår" behövs ingen ytterligare konfiguration.

Metod 1. Separat subdomän för statiskt innehåll via cPanel

Grundmetoden som fungerar på alla webbhotell med cPanel. Inga tredjepartstjänster, inga månadsbetalningar. Idén: skapa en subdomän, länka den till /wp-content och tala om för WordPress att servera statiskt innehåll via den.

Skapa en subdomän

Gå till cPanel → "Domains" → "Subdomains". Skapa subdomänen static.yoursite.com. I fältet Document Root anger du sökvägen till wp-content: vanligtvis är det public_html/wp-content.

Kontrollera: huvudsajten ska ligga på www.yoursite.com. Om du ligger på den nakna domänen utan www, flytta först sajten till www, annars fungerar inte metoden.

Lägg till konstanter i wp-config.php

Öppna wp-config.php i sajtens rot och lägg till två rader FÖRE kommentaren /* That's all, stop editing! Happy publishing. */:

1define('WP_CONTENT_URL', 'https://static.yoursite.com');
2define('COOKIE_DOMAIN', 'www.yoursite.com');
PHP-konstanterna WP_CONTENT_URL och COOKIE_DOMAIN i wp-config.php

WP_CONTENT_URL talar om för WordPress att allt innehåll från /wp-content/ ska serveras via den nya subdomänen. COOKIE_DOMAIN begränsar cookiens räckvidd till subdomänen www, vilket hindrar dem från att spridas till static.

Ersätt URL:er för befintliga filer i databasen

Redan publicerade inlägg lagrar länkar till gamla bild-URL:er. De måste ersättas i bulk via phpMyAdmin.

Gå in i phpMyAdmin (cPanel → Databases), välj WordPress-databasen, SQL-fliken. Kör:

1UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.yoursite.com/wp-content/', 'static.yoursite.com/');
SQL-fråga som ersätter statiska URL:er i phpMyAdmin för WordPress

Säkerhetskopiera databasen innan du kör. SQL-ersättning är oåterkallelig. Om URL:en blir fel kommer bilderna på sajten att sluta fungera, och du måste återställa från en säkerhetskopia.

För- och nackdelar

Metoden fungerar utan tredjepartstjänster och extra kostnader. Men: manuell redigering av wp-config.php och databas, risk för SQL-misstag, behov av att underhålla konfigurationen för två subdomäner. På VPS med NGINX måste du också redigera serverkonfigurationen, vilket ökar komplexiteten.

För de flesta sajter idag finns ett enklare alternativ, CDN.

Metod 2. CDN som en modern lösning

Content Delivery Network tar statiskt innehåll till sina servrar och använder som standard inga cookies för filer. Du får två saker på en gång: statiskt innehåll utan cookies plus ett globalt leveransnätverk som snabbar upp laddningen för besökare från hela världen.

KeyCDN-tjänsten, pay-as-you-go CDN med prissättning från $0,04/GB trafik och lägsta betalning $4/månad. För en genomsnittlig sajt ligger kostnaderna på $4-10 per månad. 60+ närvaropunkter, inbyggt Strip Cookies-alternativ som tvångsmässigt tar bort Set-Cookie-headers från svar.

Anslutning via CDN Enabler

CDN Enabler, officiellt KeyCDN-tillägg för WordPress. Version 2.0.8, 10 000+ aktiva installationer, testat upp till WordPress 6.9. Det fångar upp sidor och skriver om URL:er för statiska filer till CDN-domänen.

Konfigurationssteg:

  • Skapa ett KeyCDN-konto. Tjänsten ger en testperiod, du kan testa utan betalning.

  • Installera CDN Enabler från WordPress-arkivet: Tillägg → Lägg till nytt → sök "CDN Enabler" → Aktivera.

  • Skapa en Pull zone i KeyCDN-instrumentpanelen. Zonen definierar vilket innehåll CDN:et ska hämta från din sajt. Ange ursprungs-URL:en, din sajtadress.

Skapa en Pull-zon i KeyCDN:s kontrollpanel med fält för ursprungs-URL
  • Kopiera zon-URL:en, den ser ut som https://yourzone.kxcdn.com, och klistra in den i CDN Enablers inställningar: Inställningar → CDN Enabler → CDN Hostname.
Fältet CDN Hostname i inställningarna för tillägget CDN Enabler i WordPress
  • Aktivera Strip Cookies i KeyCDN: Zone Settings → Strip Cookies = Enabled. Det här alternativet garanterar att statiska filer serveras utan Set-Cookie-headers.

  • Rensa webbplatsens cache och kontrollera resultatet i GTmetrix.

CDN Enabler fungerar med vilket CDN som helst. Om du redan använder Cloudflare, BunnyCDN eller StackPath anger du bara din leverantörs CDN Hostname.

Viktigt: efter att du inaktiverat CDN och tagit bort pluginet kan bild-URL:er fortfarande vara omskrivna till CDN-domänen. Innan du avaktiverar, rensa pluginets cache och kontrollera att URL:erna har återgått till originalen.

Metod 3. Cloudflare, gratis men med en hake

Cloudflare, det största CDN:et med ett helt kostnadsfritt abonnemang. Fungerar på DNS-nivå: byt domänens namnservrar till Cloudflares, så går all trafik genom deras nätverk.

Men det finns en nyans. Cloudflare använder en service-cookie _cfduid för varje förfrågan i säkerhetssyfte. Den är avgörande för DDoS-skydd och bot-hantering, och även om du aktiverar "Strip Cookies" på Pro-nivån tas denna cookie inte bort.

På grund av _cfduid kommer GTmetrix fortsätta visa varningen "Serve static content from a cookieless domain." Att nå 100/100 i YSlow-mätvärdet med gratis Cloudflare är tekniskt omöjligt. Men det är en falsk flaggning: statiskt innehåll via Cloudflare laddas fortfarande snabbt, och en enda service-cookie påverkar inte den faktiska prestandan.

Om maximalt GTmetrix-resultat är viktigt för dig, välj KeyCDN med Strip Cookies. Om prioriteten är kostnadsfri tjänst och DDoS-skydd, hanterar Cloudflare det fullt ut.

När du kan ignorera GTmetrix-varningen

Vanlig situation: CDN är konfigurerat, Strip Cookies är aktiverat, men GTmetrix visar ändå ett cookieless domain-fel. Orsaken är att YSlow, motorn i GTmetrix, inte kontrollerar om Strip Cookies är aktiverat på CDN-sidan. Den ser en URL som liknar huvuddomänen och flaggar mekaniskt en varning.

30-sekunderskontroll: öppna Chrome DevTools (F12) → Nätverk → välj valfri statisk fil, CSS, JS eller PNG → Headers-fliken → Request Headers. Om det inte finns någon Cookie:-rad där går statiskt innehåll utan cookies, och du kan ignorera GTmetrix-varningen.

En annan källa till falska positiva resultat är servercookies från analys och A/B-testning (Google Analytics, Hotjar, VWO). De visas också i rapporten som "extra", även om de påverkar sidhastigheten minimalt.

Verklig trafikminskning genom att ta bort cookies från statiskt innehåll ligger runt 5-15% av totala förfrågningar. Inte revolutionerande, men varje millisekund räknas: Google-forskning visade att en sekunds fördröjning minskar mobila besökares konvertering med 20%.

⁉️🤔 Vanliga frågor

Är det obligatoriskt att sätta upp en cookieless domän?

Nej, det är inget hårt krav. Men om du kämpar för snabbhet ger det mätbara vinster att eliminera onödiga cookies från statiskt innehåll, särskilt på webbplatser med tung media: nätbutiker, fotobloggar och nyhetsportaler. För en landningssida med tre block blir effekten försumbar.

Vad gör jag om sajten slutar öppnas efter att jag redigerat wp-config.php?

Du har nästan säkert gjort ett misstag i konstant-URL:erna eller placerat dem EFTER raden /* That's all, stop editing! */. Anslut till sajten via FTP, öppna wp-config.php och kontrollera: konstanterna ska vara FÖRE denna kommentar. Om sajten fortfarande inte laddar, kommentera bort de tillagda raderna (// i början av varje), så återgår sajten till sitt ursprungliga skick, varefter du kan försöka igen med korrekta URL:er.

Kan CDN Enabler användas med andra caching-plugins?

Ja, inga problem. CDN Enabler är kompatibel med Cache Enabler, WP Rocket, W3 Total Cache och LiteSpeed Cache. En nyans: om du har WP Rocket konfigureras CDN i WP Rocket själv, en separat CDN Enabler-plugin behövs inte. Med andra caching-plugins fungerar den parallellt, inga konflikter har rapporterats.

Vilket CDN ska man välja för en liten sajt?

Beror på budget och prioriteringar. KeyCDN-prissättning (från $0,04/GB, minimum $4/månad), en bra start: betala per användning, du betalar bara för trafik. Cloudflare, gratis men med en service-cookie och falsk GTmetrix-varning. BunnyCDN (från $0,01/GB på volymplan, från $1/månad minimum), billigare men med färre närvaropunkter. För en sajt med trafik upp till 10 000 per månad blir CDN-kostnaden $2-7.

Behövs en cookieless domän om webbhotellet är modernt?

Hanterade WordPress-värdar, Kinsta, WP Engine, SiteGround, inkluderar ofta inbyggd CDN eller servercaching som redan löser cookie-problemet. Kontrollera din plan: om beskrivningen innehåller "edge caching" eller "CDN included" behövs ingen ytterligare konfiguration. På billig delad hosting utan CDN kommer en cookieless domän att ge en märkbar skjuts.

Vad gör jag om bilder försvann efter SQL-frågan?

Antingen gjorde du ett misstag i URL:en (kontrollera domänmatchning i frågan och underdomäninställningarna), eller så pekar underdomänen static.yoursite.com till fel katalog. Återställ databasen från backup och kontrollera: underdomänens Document Root ska vara public_html/wp-content, och domänen i SQL-frågan ska matcha det som skapades i cPanel (med www. eller utan, beror på huvudsajtens konfiguration).

Vilken metod du ska välja för din uppgift

Om sajten ligger på billig hosting utan CDN och utan budget för betaltjänster, sätt upp en separat underdomän via cPanel. Det är 15 minuters arbete: underdomän, två rader i wp-config.php och en SQL-fråga. Statiskt innehåll kommer att gå utan cookies, GTmetrix stiger. Nackdel, manuellt underhåll och ingen global acceleration.

Om du är redo att betala $4-10 per månad, använd KeyCDN + CDN Enabler-kombon. Samma uppgift löses automatiskt, plus att du får ett leveransnätverk från 60+ punkter, komprimering och acceleration för besökare från hela världen. För ett projekt som tjänar eller planerar att tjäna pengar betalar sig CDN direkt.

Och viktigast av allt, häng inte upp dig på GTmetrix-poäng. Verklig hastighet för användare betyder mer än siffror i en rapport. Om statiskt innehåll går utan cookies (kontrollerat via DevTools) och sajten laddar snabbare än 2 sekunder är uppgiften löst.

För att fräscha upp helhetsbilden kring att snabba upp WordPress hjälper den officiella guiden från WordPress.com-teamet, från caching till CDN, med live-mätningar och konfiguration: