Hoe maak je een QR-code die echt scant, elke keer
Een QR-code mislukt om een van drie redenen: de invoer is te lang en perst het patroon te dicht op elkaar, de afgedrukte of getoonde versie heeft te weinig contrast of geen witte rustzone eromheen, of het foutcorrectieniveau past niet bij hoe de code gebruikt gaat worden. Alle drie zijn op te lossen voordat je ooit op afdrukken klikt.
Waarom kortere invoer een eenvoudigere code oplevert
Een QR-code slaat geen plaatje van je link op. Hij slaat de daadwerkelijke tekens van wat je invoert op, verdeeld over een raster van zwarte en witte vlakjes (modules). Hoe meer tekens je invoert, hoe meer modules de code nodig heeft om ze te bevatten, en hoe fijner dat raster moet worden om op dezelfde fysieke afmeting te passen.
Een lange trackings-URL zoals https://analytics.voorbeeld.nl/campagne/zomer-2026/actie?utm_source=instagram&utm_medium=social&utm_campaign=lancering&ref=abc123xyz789 levert een merkbaar dichter, ingewikkelder patroon op dan een korte doorverwijzing zoals https://pluri.tools/go/zomer. Beide kunnen naar dezelfde bestemming wijzen, maar de korte versie heeft veel minder modules nodig om te coderen.
Dichtere modules betekenen kleinere individuele vlakjes bij een gegeven afdrukgrootte, en kleinere vlakjes zijn gevoeliger voor onscherpte, printerresolutie, weinig licht en de hoek waaronder een telefooncamera wordt gehouden. Een camera die een URL van 200 tekens moeilijk kan lezen bij het bekijken van een menukaart op tafel, kan een korte code met dezelfde bestemming op afstand en zonder stilhouden probleemloos scannen. Beheer je de bestemming zelf, route dan via een korte URL op je eigen domein in plaats van de volledige trackingstring te plakken. Dat scant sneller en de code oogt strakker op de pagina.
De afweging bij foutcorrectie
Elke QR-code bevat redundante data bovenop de eigenlijke inhoud, zodat een scanner de code nog kan lezen ook als een deel ervan vuil, gescheurd of afgedekt is. Die redundantie kent vier standaardniveaus, en het niveau dat je kiest verandert hoe de code eruitziet en zich gedraagt.
| Niveau | Schadetolerantie | Beste toepassing |
|---|---|---|
| L (Laag) | ~7% | Schoon digitaal gebruik: schermen, presentaties, e-mails, overal waar de code geen risico loopt op vuil of fysieke schade |
| M (Middel) | ~15% | Algemeen gebruik. Het standaardniveau van de meeste generators |
| Q (Kwartiel) | ~25% | Geprinte codes die aangeraakt worden, buiten geplaatst worden of blootstaan aan slijtage |
| H (Hoog) | ~30% | Elke code met een logo of icoon in het midden, omdat dat logo een deel van de data blokkeert en de code dat verlies moet kunnen verdragen |
Het mechanisme is simpel: meer foutcorrectie betekent meer redundante data naast je eigenlijke inhoud, en die redundante data neemt net zo goed modules in beslag als je echte tekst. Bij dezelfde invoer is een code met foutcorrectieniveau Hoog visueel dichter dan een code met Laag. Het is niet dezelfde code die veiliger is gemaakt. Het is een drukker patroon dat in dezelfde ruimte is geperst.
Hier gaan mensen vaak de fout in. Een lange URL die “voor de zekerheid” op Hoog wordt gecodeerd, levert een dicht, onrustig patroon op dat voor een camera juist lastiger te ontcijferen is, niet makkelijker. Gaat de code rechtstreeks op een telefoonscherm of webpagina staan waar niets hem ooit zal bekrassen, dan is Laag of Middel de juiste keuze, en dat houdt het patroon eenvoudig, zelfs bij een langere string. Bewaar Hoog voor het enige geval waarvoor het echt bedoeld is: een logo midden in de code. Bewaar Kwartiel voor een sticker op een pakket dat tijdens transport beschadigd kan raken. Kies het niveau op basis van hoe de code daadwerkelijk gebruikt gaat worden, niet op basis van het hoogste getal in de lijst.
Maak je eigen QR-code
Plak een URL, pas de grootte en kleuren aan, en download het resultaat. De generator hieronder draait volledig in je browser:
Veelgemaakte fouten
Een lange trackings-URL plakken in plaats van een korte link. Analyseplatforms genereren URL’s met tientallen queryparameters. Elk van die tekens voegt dichtheid toe aan de code. Route via een korte doorverwijzing die je zelf beheert en houd de trackingparameters aan de serverkant van die doorverwijzing.
Weinig contrast of geen rustzone. Scanners vertrouwen op een duidelijke witte marge, de rustzone, rond de buitenrand van de code om te weten waar het patroon begint en stopt. De code direct tegen een drukke achtergrond plaatsen, of de marge inkorten om binnen een strak ontwerp te passen, verstoort die herkenning. Houd minimaal vier modules effen achtergrond aan alle vier de zijden aan, en gebruik een duidelijk licht/donker contrast in plaats van twee middentinten die een camera moeilijk uit elkaar kan houden.
De echte scantest met een telefoon overslaan vóór massale afdruk. Een code die er op een beeldscherm prima uitziet, kan alsnog falen zodra hij verkleind wordt op verpakking, met lage DPI wordt afgedrukt, of achter een glanzende laminaatlaag komt te zitten die weerkaatsing veroorzaakt. Print een proefexemplaar op de werkelijke grootte en het werkelijke materiaal, en test het vervolgens met twee of drie verschillende telefoons en scanner-apps voordat je een volledige oplage laat drukken.
Een URL-verkorter gebruiken die je niet zelf beheert. Een algemene externe verkortingsdienst kan offline gaan, hergebruikt worden of jaren later reclame injecteren nadat je al duizenden codes hebt laten drukken die ernaar verwijzen. Een doorverwijzing op je eigen domein blijft onbeperkt onder jouw controle, en je kunt de bestemming aanpassen zonder ook maar iets opnieuw te hoeven drukken.
Ervan uitgaan dat elke scanner-app wifi- of vCard-QR-codes net zo goed ondersteunt als een gewone URL. Codes met alleen een URL worden door vrijwel elke telefooncamera en scanner-app ondersteund. Wifi-netwerkcodes en vCard-contactcodes gebruiken een ander gegevensformaat, en de ondersteuning daarvoor verschilt sterker per apparaat en app-versie. Als het publiek ertoe doet, test dan het specifieke QR-type op de apparaten die mensen daadwerkelijk zullen gebruiken, niet alleen op een generieke camera-app.
Veelgestelde vragen
Verlopen QR-codes ooit? De code zelf verloopt nooit. Een statische code, waarbij de bestemmingstekst rechtstreeks in het patroon is verwerkt, werkt zolang de fysieke code leesbaar blijft. Een dynamische of traceerbare code verwijst naar een doorverwijzings-URL die jij beheert, en die doorverwijzing kan stoppen met werken als je de dienst erachter opzegt of een domein laat verlopen. Moet de code onbeperkt blijven werken, host de doorverwijzing dan ergens waar je zelf controle over hebt.
Wat is de minimale afdrukgrootte voor betrouwbaar scannen? Een vuistregel is dat de code minstens een tiende van de verwachte scanafstand moet zijn. Een code die van ongeveer 30 centimeter afstand gescand wordt, moet dus minimaal zo’n 3 centimeter per zijde zijn, en groter als de invoer lang genoeg is om een dicht patroon te vereisen. Visitekaartjes, flyers die van dichtbij gescand worden en billboards die vanuit een auto gescand worden, hebben voor dezelfde onderliggende data heel andere fysieke afmetingen nodig.
Kan ik veilig een logo aan het midden van mijn QR-code toevoegen? Ja, als je het foutcorrectieniveau op Hoog zet voordat je het toevoegt. Hoog verdraagt ongeveer 30% verlies of beschadiging van de code, wat een bescheiden logo in het midden dekt. Houd het logo klein ten opzichte van de hele code, doorgaans onder de 20 tot 25% van het totale oppervlak, en test het resultaat daarna altijd op een echt apparaat, want de logoplaatsing verschilt per generator.
Wat is het verschil tussen een statische en een dynamische QR-code? Een statische code codeert de definitieve bestemming rechtstreeks en verandert nooit. Een dynamische code codeert een korte doorverwijzings-URL die jij op een server beheert, waardoor je kunt aanpassen waar die doorverwijzing naartoe leidt nadat de code al gedrukt is. Dynamische codes laten je ook scantellingen bijhouden, wat statische codes niet uit zichzelf kunnen. De keerzijde is dat een dynamische code afhankelijk is van je doorverwijzingsdienst die online moet blijven.
Waarom ziet mijn QR-code er telkens anders uit als ik de kleur verander? Contrast, niet kleurkeuze, is waar een scanner op leest. Twee kleuren die voor een mens duidelijk verschillend ogen, kunnen voor een camerasensor als bijna identiek in helderheid geregistreerd worden, waardoor de scan mislukt. Houd het bij combinaties met sterk helderheidscontrast, idealiter een donkere voorgrond op een lichte achtergrond, en controleer het resultaat met een echte scantest in plaats van op basis van hoe het er op een scherm uitziet.