Naar de inhoud

Kennisbank · Webdevelopment

Wat is Cloudflare en wat kun je er mee?

Maurits 17 min leestijd
cloudflare

Cloudflare is een Amerikaans netwerkbedrijf dat tussen je bezoekers en je webserver gaat staan. Al het verkeer naar je site loopt eerst langs hun netwerk, waar het wordt gefilterd en versneld, en pas daarna gaat door wat overblijft.

Het bedrijf bestaat sinds 2009 en heeft locaties in honderden steden, waaronder Amsterdam. De belangrijkste onderdelen zijn gratis, en dat is de reden dat een flink deel van het web erachter staat.

Hoe het verkeer loopt

Zonder Cloudflare gaat het simpel. De browser van je bezoeker vraagt aan het Domain Name System welk adres bij jouw domein hoort, krijgt het adres van je server terug en maakt daar verbinding mee.

Met Cloudflare ertussen krijgt die browser een adres van Cloudflare in plaats van dat van jouw server. De bezoeker verbindt met de dichtstbijzijnde Cloudflare-locatie, en Cloudflare haalt de pagina bij jouw server op. Twee verbindingen in plaats van een.

Dat dichtstbijzijnde werkt via anycast: hetzelfde IP-adres wordt vanaf veel plekken tegelijk aangekondigd, en het internet stuurt je verzoek naar de locatie die netwerktechnisch het kortst bij ligt. Voor iemand in Utrecht is dat Amsterdam, voor iemand in Sydney is dat Sydney. Je eigen server heet in die opzet het origin, een woord dat je in het beheerscherm en in foutmeldingen steeds tegenkomt.

Wat een CDN oplevert en wanneer niet

Een CDN, een content delivery network, bewaart kopieën van je bestanden dicht bij je bezoekers. Afbeeldingen, stylesheets, scripts en lettertypen komen dan van die kopie in plaats van van jouw server. Cloudflare doet dat standaard op basis van de bestandsextensie: een jpg, een css-bestand of een woff2-lettertype wordt bewaard, de html van je pagina niet.

Voor een Nederlandse site met Nederlandse bezoekers op Nederlandse hosting is de winst daarmee bescheiden. Amsterdam ligt voor iedereen in dit land op een paar milliseconden. De winst groeit naarmate je bezoekers verder weg zitten of je afbeeldingen zwaarder zijn.

Wat een CDN niet doet is een trage site snel maken. De eerste bytes van een pagina die nog niet klaarligt komen gewoon van jouw server, met de vertraging die je al had. Zit je probleem in zware plugins of ongecomprimeerde afbeeldingen, dan verandert Cloudflare daar niets aan. Overstappen op webp-afbeeldingen levert vaak meer op.

Er is wel iets dat je gratis meekrijgt: Cloudflare praat met bezoekers over de nieuwste versies van HTTP en levert je site ook over IPv6 uit, ook als je eigen server dat niet kan.

DNS beheren bij Cloudflare

Op het gratis pakket kun je Cloudflare alleen gebruiken als je de nameservers van je domein naar hen omzet. Die wijziging doe je bij de partij waar je domein staat geregistreerd. Voor een .nl-domein loopt dat via je registrar naar SIDN, het register van alle .nl-namen.

Cloudflare scant bij het toevoegen je bestaande DNS-records en neemt die over. Die scan is niet compleet. Vraag daarom een export van je zone op bij je huidige provider en leg die ernaast. Loop in elk geval na:

  • MX-records. Waar je post naartoe gaat. Missen ze, dan komt er geen mail meer binnen.
  • SPF, DKIM en DMARC. Tekstrecords die bepalen of jouw mail wordt vertrouwd. Zonder die records belandt je post bij Gmail en Outlook in de map ongewenst.
  • Verificatierecords. De tekstregels waarmee je Google, Microsoft of een betaaldienst hebt bewezen dat het domein van jou is. Die zijn onzichtbaar tot je ze mist.

Staat DNSSEC aan bij je oude provider, zet dat dan uit voordat je verhuist. Anders klopt de handtekening niet meer bij de nieuwe gegevens en is je domein voor een deel van je bezoekers onbereikbaar, met een foutmelding die nergens naar wijst.

Veel mensen gebruiken Cloudflare alleen hiervoor. Dat is een prima keuze: de DNS-dienst is snel, gratis en je past een record in seconden aan.

De oranje wolk en wat proxy betekent

Achter elk DNS-record staat een wolkje dat je aan en uit kunt zetten. Oranje betekent dat het verkeer via Cloudflare loopt. Grijs betekent dat Cloudflare alleen het adres doorgeeft en verder buiten beeld blijft, dus zonder cache, firewall, bescherming of certificaat.

De belangrijkste beperking bij oranje: er komt alleen webverkeer doorheen. Poort 80, poort 443 en een handvol alternatieve webpoorten. De rest wordt stilletjes weggegooid. Draait er op dezelfde naam een mailserver, een FTP-verbinding of een beheerpaneel op een eigen poort, dan werkt dat niet meer.

Voor je post is de regel simpel: de naam waar je MX-record naar wijst moet grijs blijven. Zet je die op oranje, dan stopt je mail en merk je dat pas als iemand belt dat hij geen antwoord krijgt.

Daar zit meteen een lek. Wijst mail.jouwdomein.nl grijs naar dezelfde machine als je website, dan kan iedereen het adres van je server opzoeken. De bescherming die je met de oranje wolk denkt te hebben loopt daarmee leeg.

SSL-modi en de foutmelding over te veel omleidingen

Cloudflare geeft je sinds 2014 gratis een certificaat voor het slotje in de adresbalk, voor je domein en een niveau subdomeinen. Onder de SSL-instellingen kies je vervolgens hoe Cloudflare met jouw server praat, en die keuze is belangrijker dan hij lijkt.

  • Uit. Geen versleuteling. Gebruik dit nooit.
  • Flexibel. Versleuteld tussen bezoeker en Cloudflare, onversleuteld tussen Cloudflare en jouw server. Ziet er veilig uit en is het niet.
  • Volledig. Versleuteld op beide stukken, maar Cloudflare controleert het certificaat van je server niet.
  • Volledig streng. Versleuteld op beide stukken en het certificaat van je server moet kloppen. Dit is de stand die je wilt.

Uit de stand flexibel komt de bekendste storing van allemaal. Je server stuurt http door naar https, wat hoort. Cloudflare vraagt de pagina over http op, jouw server antwoordt met ga naar https, Cloudflare geeft dat door, de browser komt terug over https, en Cloudflare vraagt het weer over http op. Na een stuk of tien rondjes geeft de browser het op met de melding dat de pagina te vaak is omgeleid.

De oplossing is niet de doorverwijzing op je server uitzetten. De oplossing is een geldig SSL-certificaat op je eigen server en de stand volledig streng. Heb je er geen, dan geeft Cloudflare gratis een origin-certificaat uit dat jaren geldig is en dat alleen door hen wordt vertrouwd. Dat is genoeg, want niemand anders praat nog rechtstreeks met je server.

Zet daarna Always Use HTTPS aan, zodat Cloudflare de doorverwijzing afhandelt voordat het verzoek jouw server bereikt. Met HSTS ben ik voorzichtiger: dat vertelt browsers dat ze je site het komende jaar alleen over https mogen benaderen.

Caching en het legen daarvan

Wat Cloudflare heeft bewaard lees je af aan een kopregel in het antwoord. Open het tabblad Netwerk in de ontwikkelaarsgereedschappen van je browser, klik op een bestand en zoek naar CF-Cache-Status. HIT betekent uit de cache, MISS net opgehaald, DYNAMIC helemaal niet bewaard, en BYPASS geblokkeerd door een regel of een cookie.

Wil je meer dan de standaard, dan maak je een cacheregel. Cloudflare heeft de oude Page Rules opgesplitst in aparte soorten regels voor omleiden, cachen en instellingen. Oudere handleidingen kloppen daardoor niet meer met wat je op je scherm ziet.

Bij het legen heb je twee smaken: alles wissen, of een lijst met specifieke adressen. Alles wissen is grof, want je server krijgt daarna een golf verzoeken omdat niets meer klaarligt.

Het scenario dat iedereen een keer meemaakt: je past iets aan, ververst de pagina en ziet niets veranderen. Dan ga je zoeken naar een fout die er niet is. Er zitten in zo'n geval drie lagen tussen: de cache van je browser, die van je cachingplugin en die van Cloudflare. Leeg ze van achter naar voren en controleer in een privévenster. Ben je langer aan het bouwen, zet dan de ontwikkelmodus aan, die het cachen drie uur uitzet en daarna vanzelf weer aangaat.

WordPress achter Cloudflare

WordPress en Cloudflare gaan prima samen zolang je een ding goed doet: pagina's van ingelogde gebruikers mogen nooit in de gedeelde cache belanden. Gaat dat mis, dan zie je het aan de symptomen. Een uitgelogde bezoeker krijgt de zwarte beheerbalk te zien. Iemand in een webshop krijgt het winkelmandje van een ander.

Cloudflare houdt daar rekening mee zodra er een cookie is die op inloggen wijst. De namen om te kennen zijn wordpress_logged_in_, wp-postpass_, comment_author_ en, bij WooCommerce, woocommerce_items_in_cart en woocommerce_cart_hash. Bouw je zelf regels, sluit dan ook /wp-admin/ en /wp-login.php uit.

Twee snelheidsopties vragen aandacht. Rocket Loader verschuift het uitvoeren van JavaScript naar achteren en breekt daarmee geregeld sliders, formulieren en cookiebanners. Werkt er iets niet meer sinds je Cloudflare aanzette, dan is dit de eerste knop om uit te proberen. Auto Minify is in augustus 2024 verdwenen, met als argument dat plugins en bouwgereedschap dat werk al doen.

Bij beheerwerk loop je tegen twee grenzen aan. Cloudflare kapt een verzoek af dat langer dan honderd seconden duurt en toont dan foutcode 524, waar een grote import of een trage geplande taak tegenaan loopt; draai zulk werk via SSH. Daarnaast geldt op het gratis pakket een bovengrens van honderd megabyte per verzoek, waardoor een groot videobestand niet via de mediabibliotheek naar binnen komt.

Cloudflare heeft een eigen WordPress-plugin die adressen van bezoekers herstelt en de cache leegt zodra je publiceert. Wat Cloudflare niet doet is je site onderhouden. Hoe je dat aanpakt staat bij het beveiligen van een WordPress-website.

Het echte IP-adres van je bezoekers terughalen

Omdat Cloudflare de verbinding met jouw server maakt, staat in je logboeken bij elke bezoeker een adres van Cloudflare. Het adres van de bezoeker zelf staat in een extra kopregel, CF-Connecting-IP.

Stel je dat niet in, dan gaat een rijtje dingen stuk zonder foutmelding. Je beveiligingsplugin telt alle bezoekers als een persoon en sluit bij de eerste aanval iedereen tegelijk buiten. Spamfilters die op adres werken doen niets meer. Statistieken uit serverlogboeken tonen een handvol bezoekers in plaats van duizenden.

Herstellen kan op drie plekken: op een Apache-server met de module remoteip, op nginx met real_ip_header en de lijst met Cloudflare-adresreeksen, of binnen WordPress met de plugin van Cloudflare. Doe het op een van die manieren en niet met een eigen regeltje in je thema. Zo'n kopregel mag je alleen vertrouwen als het verzoek echt uit een adresreeks van Cloudflare komt, want anders kan iedereen zelf invullen welk IP-adres hij wil laten zien.

Bescherming tegen aanvallen

Er zijn twee soorten overlast die mensen door elkaar halen. Een volumeaanval duwt je verbinding vol met verkeer, ongeacht wat erin staat. Een aanval op je applicatie vraagt juist heel gericht dure pagina's op: je zoekfunctie, je inlogscherm, of een filterpagina die de database laat zwoegen.

Tegen het eerste helpt het formaat van het netwerk. Doordat hetzelfde adres vanaf honderden locaties wordt aangekondigd, wordt zo'n aanval verdeeld en is hij nergens groot genoeg om iets te verstoppen. Cloudflare biedt die bescherming op alle pakketten, ook het gratis, zonder limiet op de hoeveelheid verkeer die ze afvangen.

Tegen het tweede zet je een firewall voor webverkeer in. Die herkent patronen die bij bekende aanvallen horen, zoals pogingen om via een formulierveld een databasecommando mee te sturen. Verwacht er niet te veel van: het is patroonherkenning voor je deur. Het repareert je verouderde plugin niet, het verwijdert geen kwaadaardige code die er al staat, en het merkt niets van misbruik via een geldig ingelogd account.

Twee knoppen gebruik je met beleid. Onder Attack Mode zet voor elke bezoeker een tussenpagina, wat helpt tijdens een aanval en je gewone bezoekers hindert zodra het over is. Bot Fight Mode is gratis en daagt geautomatiseerd verkeer uit, waaronder soms de terugkoppeling van je betaaldienst of je storingsmelder.

Je server afschermen, anders klopt de bescherming niet

Alle bescherming staat of valt bij de aanname dat een aanvaller niet rechtstreeks bij je server kan. In de praktijk kan hij dat vaak wel. Je adres lekt via oude DNS-gegevens in openbare archieven, via een mailrecord dat naar dezelfde machine wijst, via een testomgeving op een subdomein dat niemand op oranje heeft gezet, en via de kopregels van mail die je server zelf verstuurt.

Dichten doe je op de server. Laat poort 80 en 443 alleen verkeer toe uit de adresreeksen van Cloudflare en weiger de rest. Het meest sluitend is een tunnel, waarbij je server zelf een uitgaande verbinding opzet en geen open poorten meer heeft. Vraag hier gerust om hulp bij je hostingpartij, want dit is een halfuur werk voor iemand die het vaker doet.

De foutcodes die je van Cloudflare krijgt

Zie je een foutpagina met het logo van Cloudflare en onderaan een ray ID, dan zit het probleem tussen Cloudflare en jouw server. Zie je een kale WordPress-fout of een witte pagina, dan zit het op je server. Dat onderscheid scheelt een uur zoeken.

  • 521. Je server weigerde de verbinding. De webserver ligt eruit of de firewall laat Cloudflare niet binnen.
  • 522. De verbinding liep dood. Bijna altijd een firewall op je server of een machine die overbelast is.
  • 523. Je server is niet te vinden. Meestal staat er een verkeerd adres in het DNS-record.
  • 524. Je server antwoordde wel, maar deed er langer dan honderd seconden over.
  • 525 en 526. De versleutelde verbinding met je server kwam niet tot stand of het certificaat deugt niet. Dit zie je vlak na een overstap naar volledig streng.
  • 1020. Een firewallregel van jezelf blokkeerde de bezoeker. In het overzicht met beveiligingsgebeurtenissen zie je welke.

Bewaar de ray ID als je je hostingpartij inschakelt. Daarmee is het verzoek terug te vinden.

Bots, AI-crawlers en het vervangen van CAPTCHA

Cloudflare deelt verkeer in drie categorieën in: mensen, geverifieerde bots en de rest. Zoekmachines zoals Googlebot en Bingbot vallen in de tweede en worden doorgelaten. Wees terughoudend met eigen blokkades, want blokkeer je per ongeluk de verkeerde, dan verdwijn je uit de zoekresultaten en merk je dat pas weken later. Hoe die bezoekers werken staat bij zoekmachine-spiders.

Voor formulieren heeft Cloudflare een gratis alternatief voor de puzzeltjes: Turnstile. Die controleert op de achtergrond of een bezoeker een mens lijkt en laat de meesten zonder klik door. Dat scheelt je de discussie over gegevens die naar de aanbieder van een klassieke CAPTCHA gaan.

Sinds juli 2025 gaat Cloudflare verder bij crawlers die websites lezen om taalmodellen te voeden. Nieuwe domeinen krijgen die standaard geblokkeerd en per site kun je zelf kiezen. Dat is een echte keuze met twee kanten: blokkeren houdt je teksten uit die modellen, en het houdt je ook uit de antwoorden die mensen daar krijgen. Het verschil met een regel in robots.txt is dat robots.txt een verzoek is dat een nette partij opvolgt.

Cloudflare en de AVG

Het adres van elke bezoeker gaat langs een Amerikaans bedrijf. Zo'n adres is een persoonsgegeven, wat het Europese Hof van Justitie voor wisselende adressen bevestigde in het Breyer-arrest van 19 oktober 2016. Daarmee verwerk je met Cloudflare persoonsgegevens, ook als je verder niets bijhoudt.

Wat je in orde maakt is beperkt en concreet. Je hebt een verwerkersovereenkomst nodig; Cloudflare publiceert er een die je in het beheerscherm accepteert. En je noemt Cloudflare in je privacyverklaring als partij die verkeersgegevens verwerkt.

Dan de doorgifte naar de Verenigde Staten. Het Privacy Shield sneuvelde op 16 juli 2020 in het Schrems II-arrest. Sinds het adequaatheidsbesluit van 10 juli 2023 bestaat het EU-US Data Privacy Framework, waarmee een Amerikaans bedrijf dat zich certificeert gegevens mag ontvangen zonder aanvullende maatregelen. Die certificering is openbaar te controleren, dus kijk het na in plaats van het aan te nemen.

Technisch wordt Nederlands verkeer meestal in Amsterdam afgehandeld. Dat is prettig voor de snelheid en het beslist de juridische vraag niet, want die gaat over wie er toegang toe heeft. Voor wie dat scherper wil hebben verkoopt Cloudflare een uitbreiding waarmee de inspectie van verkeer en de sleutels binnen de Europese Unie blijven. Cloudflare plaatst daarnaast zelf een cookie met de naam __cf_bm om bots te herkennen, en rekent die tot de noodzakelijke soort. Het oude cookie __cfduid, dat bezoekers over sites heen herkenbaar maakte, is in 2021 verwijderd.

Mijn inschatting voor een gewone Nederlandse bedrijfssite: dit is te verantwoorden. Werk je met gegevens over gezondheid, met gegevens van kinderen, of voor een overheidsorganisatie met eigen inkoopvoorwaarden, weeg het dan zwaarder. De statistiekfunctie van Cloudflare is trouwens cookieloos en daarmee eenvoudiger uit te leggen dan Google Analytics.

Wanneer ik het aanraad en wanneer niet

Ik raad het aan als je te maken krijgt met aanvallen, als een deel van je bezoekers uit het buitenland komt, als je hosting geen bescherming biedt, of als je gewoon prettig DNS-beheer wilt zonder ervoor te betalen. Het gratis pakket is voor die gevallen ruim genoeg.

Ik ben terughoudender als je site klein en lokaal is en je hosting al goed zit. Je voegt dan een laag toe waarin ook dingen kunnen breken: twee plekken met een cache, twee plekken waar een omleiding kan staan en twee firewalls die elkaar kunnen tegenspreken.

Elke laag kan bovendien zelf uitvallen. In juli 2019 legde een fout in een enkele firewallregel bij Cloudflare een half uur lang een groot deel van hun klanten plat, en in november 2025 gebeurde iets vergelijkbaars door een intern bestand dat te groot werd. Wie achter zo'n netwerk staat, deelt in de storingen ervan.

Veelgestelde vragen over Cloudflare

Is Cloudflare gratis?

Ja, er is een gratis pakket zonder tijdslimiet met het netwerk, DNS-beheer, een certificaat, bescherming tegen volumeaanvallen en een basisfirewall. De betaalde pakketten voegen daar meer regels, beeldoptimalisatie en snellere ondersteuning aan toe.

Maakt Cloudflare mijn WordPress-site sneller?

Meestal een beetje, en minder dan de verhalen beloven. Afbeeldingen en scripts komen dichter bij de bezoeker vandaan, maar de pagina zelf komt nog steeds van jouw server.

Zit je bezoek grotendeels in Nederland en staat je site op Nederlandse hosting, dan is het verschil klein. Meer winst haal je uit kleinere afbeeldingen, minder plugins en betere hosting.

Wat betekent de oranje wolk bij een DNS-record?

Oranje betekent dat het verkeer voor die naam via Cloudflare loopt, met cache, firewall en certificaat. Grijs betekent dat Cloudflare alleen het adres doorgeeft. Bij oranje komt alleen webverkeer door, dus voor mail en FTP op dezelfde naam zet je het wolkje op grijs.

Waarom werkt mijn e-mail niet meer sinds ik Cloudflare aanzette?

Vrijwel altijd omdat de naam waar je MX-record naar wijst op oranje staat. De proxy laat geen mailverkeer door, dus de post komt nergens aan.

Zet die naam op grijs en controleer meteen of je SPF-, DKIM- en DMARC-records goed zijn overgenomen. Die drie missen vaker dan het MX-record zelf.

Waarom krijg ik de melding dat de pagina te vaak is omgeleid?

Dat komt bijna altijd door de SSL-stand flexibel. Cloudflare praat over http met je server, je server stuurt terug naar https, en dat gaat rond tot de browser stopt.

Zet de stand op volledig streng en zorg voor een geldig certificaat op je server. Helpt dat niet, kijk dan of er ook nog een doorverwijzing in je .htaccess of in je WordPress-instellingen staat die hetzelfde probeert.

Heb ik nog een certificaat op mijn eigen server nodig?

Ja. Het certificaat van Cloudflare beveiligt alleen het stuk tussen de bezoeker en Cloudflare, dus zonder certificaat op je server is het stuk daarachter onversleuteld. Gebruik een gratis certificaat van je hosting of een origin-certificaat van Cloudflare.

Hoe leeg ik de cache van Cloudflare?

In het beheerscherm onder Caching kies je voor alles wissen of voor het opgeven van specifieke adressen. Specifiek is netter, want alles wissen geeft je server daarna een piek. Ben je aan het bouwen, zet dan de ontwikkelmodus aan, die het cachen drie uur overslaat.

Waarom zie ik mijn wijziging niet terug op de site?

Er zitten meestal drie caches tussen jou en de pagina: je browser, je cachingplugin en Cloudflare. Leeg ze in die volgorde en controleer daarna in een privévenster. Blijft de oude versie staan, kijk dan aan de kopregel CF-Cache-Status waar het antwoord vandaan komt.

Waarom ziet mijn beveiligingsplugin overal hetzelfde IP-adres?

Omdat de verbinding met je server van Cloudflare komt en niet van de bezoeker. Het adres van de bezoeker staat in een extra kopregel die je server moet uitlezen.

Los dat op met de plugin van Cloudflare of met een instelling op je webserver. Doe je het niet, dan sluit je firewall bij de eerste blokkade al je bezoekers tegelijk buiten.

Wat betekent Cloudflare-fout 522?

Dat Cloudflare geen verbinding kreeg met jouw server binnen de tijd die daarvoor staat. De twee gebruikelijke oorzaken zijn een firewall op je server die de adressen van Cloudflare blokkeert, en een server die op dat moment overbelast is.

Vervangt Cloudflare een beveiligingsplugin en back-ups?

Nee. De firewall houdt bekende aanvalspatronen tegen voordat ze je server bereiken. Verouderde plugins, zwakke wachtwoorden en ontbrekende updates blijven onverminderd gevaarlijk, en back-ups maakt Cloudflare al helemaal niet.

Mag ik Cloudflare gebruiken onder de AVG?

Ja, mits je het netjes regelt. Je sluit de verwerkersovereenkomst die Cloudflare aanbiedt, je noemt ze in je privacyverklaring en je controleert of ze onder het EU-US Data Privacy Framework gecertificeerd staan. Verwerk je bijzondere persoonsgegevens, weeg dan zwaarder mee dat het verkeer via een Amerikaans bedrijf loopt.

Kan ik Cloudflare weer uitzetten?

Ja. Je zet de nameservers bij je registrar terug naar je hostingpartij, of je zet alle wolkjes op grijs als je alleen de proxy kwijt wilt. Zorg wel dat je DNS-records eerst compleet op de nieuwe plek staan en zet DNSSEC uit voordat je verhuist, anders is je domein een tijd onbereikbaar zonder duidelijke foutmelding.

Werkt Cloudflare samen met een cachingplugin?

Ja, en ze doen deels hetzelfde. De plugin bouwt pagina's op je eigen server alvast op, Cloudflare bewaart bestanden dichter bij de bezoeker. Zet ze niet allebei aan het samenvoegen en verkleinen van dezelfde bestanden, want daar komen lastig te vinden fouten van.

Dit artikel hoort bij Webdevelopment. Daar vind je meer uitleg over hetzelfde onderwerp.

Een vraag over dit onderwerp?

Vertel waar je tegenaan loopt.

Maurits denkt met je mee en geeft je een praktisch antwoord.

reactie dezelfde werkdag
Maurits van Platform Pro

Vertel kort waar je aan denkt

Nu gesloten, ik reageer de volgende werkdag

Maurits leest je bericht en neemt persoonlijk contact met je op.

Dit veld is bedoeld voor validatiedoeleinden en moet niet worden gewijzigd.
Dit veld is verborgen bij het bekijken van het formulier