Dansk hosting fra Aalborg
Servere i Europa
24/7/365 dansk support
support@hostious.io
Cloudflare 7 min. læsning Opdateret 3. oktober 2026

Rocket Loader ødelægger JavaScript – symptomer og undtagelser

Døde menu, slider eller formular i WordPress efter Rocket Loader? Bekræft synderen, undtag scripts med data-cfasync – eller sluk rigtigt.

Rocket Loader ødelægger JavaScript – symptomer og undtagelser

Kort svar: Rocket Loader udskyder al JavaScript til efter sidens indlæsning – og det tåler ikke alle scripts. Dør menuer, sliders eller formularer, så test med Rocket Loader slået fra: virker sitet så, har du synderen. Behold derefter enten funktionen slukket, slå den fra på bestemte sider med en Configuration Rule, eller undtag de følsomme scripts med attributten data-cfasync="false". Kører du i forvejen delay/defer i et cache-plugin, skal Rocket Loader være slukket – to omskrivninger af samme scripts giver kun fejl.

Fagligt gennemgået: 2. oktober 2026

Rocket Loader er et af de Cloudflare-flueben, der ser gratis ud: ét klik, hurtigere side. Men funktionen omskriver, hvordan og hvornår alle sidens scripts kører – og scripts, der forventer at køre tidligt eller i en bestemt rækkefølge, knækker.

Symptomerne er velkendte: menuen åbner ikke på mobil, slideren står stille, formularen sender ikke, cookiebanneret dukker ikke op, betalingsfelterne i checkout loader ikke, eller tracking måler i hak.

Før du ændrer noget: Notér dine nuværende Cloudflare-indstillinger under Speed, før du slår noget fra eller til, og ret én indstilling ad gangen. Ændringer i Cloudflare slår igennem for alle besøgende med det samme, og cachet HTML kan vise den gamle udgave et stykke tid – ryd altid cachen efter en ændring, før du konkluderer noget.

Hvad Rocket Loader gør

Rocket Loader findes under Speed i Cloudflare-dashboardet, i afsnittet om indholdsoptimering (placeringen har flyttet sig mellem dashboardversioner). Funktionen omskriver sidens script-tags, så browseren ikke venter på JavaScript under første rendering – alle scripts samles op og køres bagefter af Rocket Loaders egen loader. Det kan forbedre måletal som LCP på script-tunge sider.

Prisen er, at garantier om rækkefølge og timing forsvinder: kode, der kigger efter et element “med det samme”, eller et bibliotek, som et andet script forventer er indlæst, kan pludselig køre for sent. Rocket Loader forsøger at efterligne browserens normale hændelser, men det lykkes ikke for alle scripts – især ikke for kode, der bruger document.write, eller som andre scripts er afhængige af.

1. Genkend symptomerne i konsollen

Åbn browserens udviklerværktøjer (F12), og se fanen Konsol, mens du genindlæser siden. Disse fejl er typiske, når scripts kører i forkert rækkefølge:

Fejl i konsollenHvad der typisk er sket
jQuery is not defined eller $ is not a functionEt script kører, før jQuery er indlæst
Cannot read properties of nullKoden leder efter et element, før det er klar – eller efter det er erstattet
Advarsel om document.writeGammel kode, der skriver direkte i siden, og som ikke tåler at blive udskudt
Ingen fejl, men funktionen er dødKoden ventede på en hændelse, der allerede var sket, da den endelig kørte

Fejlene beviser ikke alene, at Rocket Loader er synderen – de samme meldinger opstår, når et cache-plugin udskyder scripts. Derfor er næste trin en kontrolleret test.

2. Bekræft, at Rocket Loader er synderen

Slå Rocket Loader fra, ryd Cloudflare-cachen, og test siden i et privat vindue. Virker alt nu, er sagen dokumenteret. Du kan også se omskrivningen direkte i sidens kilde – Rocket Loaders signatur er ikke til at tage fejl af:

Terminaleksempel: Rocket Loaders omskrevne script-tags i sidens kildekode
Genskabt terminaleksempel, 30. august 2026: scripts er omskrevet af Rocket Loader, og rocket-loader.min.js er indsat. Eksemplet er ikke data fra hostious.io.

Fra terminalen kan du tjekke, om Rocket Loader er aktiv på en bestemt side, uden at åbne browseren:

curl -s https://ditdomaene.dk/ | grep -o 'rocket-loader.min.js' | head -1

Giver kommandoen et resultat, er Rocket Loader aktiv på siden. I omskrevne script-tags er type-attributten desuden ændret, så browseren ikke selv kører dem – det er Rocket Loader, der starter dem bagefter.

Husk konteksten: fejler JavaScript, og du ikke bruger Rocket Loader, er det typisk delay/defer i cache-pluginnet – så er det FlyingPress-guiden eller LiteSpeed-guiden, du skal bruge.

3. Vælg din løsning

Din situationAnbefalet løsning
Du bruger FlyingPress, LiteSpeed Cache eller WP Rocket med script-optimeringSluk Rocket Loader permanent
Ingen script-optimering, og kun enkelte sider fejler (fx checkout)Slå Rocket Loader fra på de sider med en Configuration Rule
Ingen script-optimering, og enkelte scripts fejler på alle siderUndtag de scripts med data-cfasync="false"
Ingen målbar gevinst ved før/efter-målingSluk Rocket Loader

Bruger du et cache-plugin med script-optimering, håndterer det allerede opgaven med flere justeringsmuligheder, og to lag, der omskriver de samme scripts, er en klassisk kilde til uforklarlige fejl. Har du ingen script-optimering i forvejen, kan Rocket Loader give værdi – men så med undtagelser for de scripts, der knækker, og med en reel før/efter-måling.

4. Slå Rocket Loader fra på bestemte sider

Cloudflare lader dig slå Rocket Loader fra for udvalgte adresser med en Configuration Rule under Rules. Opret en regel, der matcher fx stien til checkout, kurv, Min konto og sider med formularer, og sæt Rocket Loader til fra for dem. Så beholder du funktionen på resten af sitet og fjerner risikoen dér, hvor fejl koster mest.

Det er en god løsning for webshops, fordi betalingsscripts fra gatewayen sjældent kan undtages enkeltvis – de indlæses ofte dynamisk af gatewayens eget script.

5. Undtag enkelte scripts med data-cfasync

Rocket Loader springer scripts over, der bærer attributten data-cfasync="false" – ifølge Cloudflares dokumentation skal den stå før src-attributten i script-tagget. Er scriptet afhængigt af andre scripts, fx jQuery, skal de også have attributten. Attributten virker ikke på scripts, der først tilføjes af anden JavaScript efter indlæsning.

I praksis sættes den via temaets eller pluginnets indstillinger, hvis de tilbyder det, eller med et lille filter, der tilføjer attributten på udvalgte script-handles. Læg koden i et mu-plugin eller et child-tema, så den ikke forsvinder ved en temaopdatering:

<?php
// wp-content/mu-plugins/rocket-loader-undtagelser.php
add_filter( 'script_loader_tag', function ( $tag, $handle ) {
    $undtag = array( 'jquery-core', 'jquery-migrate', 'mit-menu-script' );
    if ( in_array( $handle, $undtag, true ) ) {
        $tag = str_replace( '<script ', '<script data-cfasync="false" ', $tag );
    }
    return $tag;
}, 10, 2 );

Erstat mit-menu-script med de handles, der fejler. Handle-navnet finder du i sidens kilde som scriptets id (fx id="mit-menu-script-js" – uden “-js”) eller med pluginnet Query Monitor. Typiske kandidater til undtagelse: menu- og slider-scripts, betalings- og formular-scripts samt cookie-samtykke – de skal køre pålideligt frem for sent.

Inline scripts, som et plugin skriver direkte i siden, kan ikke rammes af filteret ovenfor. Fejler de, er en Configuration Rule for den pågældende side eller at slukke Rocket Loader ofte den mest robuste løsning.

6. Verificér rettelsen

Rettelsen er dokumenteret, når de ramte funktioner virker i et privat vindue på både mobil og desktop efter cache-rydning, når browserkonsollen er fri for nye fejl – og når en hastighedsmåling før og efter viser, hvad ændringen reelt kostede eller gav. Behold kun Rocket Loader, hvis målingen retfærdiggør den: på et site med velkonfigureret cache-plugin er gevinsten typisk allerede høstet dér.

  • Test menu, slider, formularer, cookiebanner og checkout – ikke kun den funktion, der blev meldt.
  • Kontrollér i dit analyseværktøj, at besøg og konverteringer registreres som før.
  • Mål både LCP og INP: Rocket Loader kan forbedre det første og forværre det andet. Se guiden om dårlig INP i WordPress.

Læs også

Ofte stillede spørgsmål om Rocket Loader

Gør Rocket Loader altid siden hurtigere?

Nej. På sites, hvor cache-pluginnet allerede optimerer scripts, flytter den typisk intet – og kan endda skade INP, fordi al JavaScript klumper sig sammen efter indlæsning. Mål altid før og efter.

Hvorfor virker siden for mig, men ikke for kunderne?

Rocket Loader-omskrivningen ligger i den cachede HTML. Din browser kan have en gammel (fungerende) udgave, mens kunder får den omskrevne – eller omvendt. Test altid i inkognito efter fuld cache-rydning.

Kan jeg bruge Rocket Loader sammen med delay i FlyingPress?

Lad være. To systemer, der hver især udskyder og omskriver scripts, giver dobbelt omskrivning og fejl, der er næsten umulige at fejlsøge. Vælg ét lag – i praksis cache-pluginnet, som kan finjusteres.

Kan jeg slå Rocket Loader fra kun på checkout?

Ja. Opret en Configuration Rule i Cloudflare, der matcher checkout-, kurv- og kontosiderne, og sæt Rocket Loader til fra for dem. Så kører resten af sitet uændret, mens betalingsflowet får scripts i normal rækkefølge.

Skrevet af Marc, stifter af Hostious

Jeg hedder Marc og har stiftet Hostious. Vi hoster WordPress-hjemmesider og WooCommerce-webshops for danske virksomheder – drevet fra Aalborg-området med servere i Europa – og jeg skriver guiderne her ud fra det, vi ser i driften hver dag.

Udgivet 30. august 2026Opdateret 3. oktober 2026Fagligt gennemgået 2. oktober 2026