How to design QR codes that always scan
By Qrop Team ·
A branded QR code with your colours and logo looks far more professional than a plain black-and-white square. But the same customisations that make a code attractive can quietly make it unscannable.
Follow these rules and you get the best of both: a code that's on-brand and reads first time, every time.
Keep strong contrast
Scanners distinguish a code from its background by contrast between the dark modules and the light background. If the two are too close in brightness (light grey on white, or yellow on white) the camera can't find the pattern and the code fails.
Aim for a clear difference in lightness, not just a difference in hue. Dark foreground on a light background is the safest combination. Qrop enforces a minimum contrast ratio and warns you before you generate an unscannable combination, so you can't accidentally ship a code that won't read.
Don't oversize the logo
A logo covers part of the code, and error correction can only recover so much. Keep the logo to roughly a quarter of the code's area or less, centred, and always pair it with the highest error-correction level (H).
Qrop caps logo size and switches to level H automatically when you add one, so the code stays within a safe margin.
Respect the quiet zone
The quiet zone is the empty margin around a QR code. It tells the scanner where the code begins and ends. Crop it too tightly, or butt the code against text and graphics, and scanning becomes unreliable.
Leave a clear border of at least four modules' width on all sides, roughly the size of one of the corner squares.
Module and finder style trade-offs
QR generators often offer choices beyond the default square modules: dots, rounded corners, or teardrop shapes for modules, and circular or rounded finder patterns (the three corner squares). These options look appealing, but they come with a scannability cost worth understanding.
Square modules are the standard the QR specification was designed around. Cameras read them at the highest reliability because each module has a sharp, unambiguous edge. Dots and rounded modules reduce that edge sharpness, especially at small print sizes or when printed on a texture or at lower resolution. The contrast between modules is also slightly lower at the centre of a circle than at the edge of a square, which matters to budget cameras and scanning at glancing angles.
In practice, dots and rounded modules scan reliably at normal print sizes with a current smartphone. The risk increases if the code is small (under 2 cm), printed on a non-white background, or viewed at a steep angle. If reliable scanning in difficult conditions is the priority (a warehouse, an outdoor poster, a venue with dim lighting) stick to square modules.
The outer corner radius of the code's frame (the rounded bounding box some generators offer) affects nothing but aesthetics: the three finder-pattern squares at the corners of the code are separate elements and their shape determines scannability, not the outer frame.
Print and test at the right size
- As a rule of thumb, a code should be at least one-tenth the distance it will be scanned from, a code scanned from 1 metre away should be about 10 cm square.
- Use SVG for print so the code stays razor-sharp at any size; use PNG for screens.
- Always scan the final, printed code with more than one phone before producing it in volume.
Test methodology before ordering in bulk
Scanning a code on a screen before going to print tells you almost nothing useful, screen rendering is clean, backlit, and viewed close-up. What matters is how the code performs in its real environment. A structured test takes ten minutes and can save an expensive reprint.
- Print at the intended size on the intended material (gloss stock, matte, vinyl, fabric), not just on plain office paper.
- Test with at least two phone models: an older mid-range Android (the strictest real-world test) and a current iPhone. Modern flagship cameras are forgiving; the weakest device in your audience's hands is what matters.
- Test in the intended lighting. A code that scans fine under bright office light may struggle in the ambient lighting of a restaurant at evening, or in direct afternoon sun on an outdoor poster.
- Test at scanning distance. Walk back to where a real user would be standing or sitting and scan from there, not up close.
- If the code fails any of these tests: increase the print size, raise the error-correction level, or switch to square modules. Identify which change fixed it before committing to a full print run.
Frequently asked questions
What's the smallest a QR code can be?
It depends on scanning distance and how much data the code holds. For close-up scanning of a short URL, around 2 cm square is a reasonable minimum in print. More data or greater distance means you need a larger code.
Should I use dark-on-light or light-on-dark?
Dark modules on a light background is the standard and the safest choice. Most phone cameras and QR scanning libraries expect dark-on-light. Light-on-dark (inverted) codes work on current flagship phones but can fail on older or budget devices whose scanning libraries don't handle the inversion. If you need to print on a dark background, the reliable approach is to add a white quiet-zone rectangle behind the code rather than inverting the module colours.
Does more data in a QR code make it harder to scan?
Yes, indirectly. More data (a long URL versus a short one, or a full vCard versus a plain link) forces the code to use a higher version, packing more modules into the same space. That makes each module physically smaller at a given print size, which needs a sharper camera and a larger overall code to stay reliable. If you're encoding long content, either shorten it (a link shortener for URLs) or print the code larger to compensate.
Can I change a QR code's design after it's printed?
No (a standard QR code is static, meaning its destination and appearance are baked into the pattern at generation time. To change where it points or how it looks, you need to reprint it with a new code. If you expect to need updates later) a changing menu, an evolving campaign link, use a dynamic QR code that redirects through a URL you control, so you can update the destination without reprinting. See our guide on dynamic vs static QR codes for the trade-offs.
Related guides
Ready to create your QR code?
Generate a free QR code in seconds: custom colours, logos, and PNG, SVG or PDF output.
Open the generator