Qrop logoQrop

How to design QR codes that always scan

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

Can I use any colours for a QR code?

Almost — the key constraint is contrast, not the specific colours. The dark part must be clearly darker than the background. Inverting to light-on-dark can work on modern scanners but is riskier; dark-on-light is the dependable choice. Qrop blocks combinations whose contrast is too low to scan.

Why won't my QR code scan after I added a logo?

Most likely the logo is too large or the error-correction level is too low. Keep the logo to about a quarter of the area and use level H. If you generate with Qrop, both are handled for you automatically.

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.

Does the module style affect how reliably a code scans?

Yes, marginally. Square modules are the most reliably scanned because they have sharp edges and maximum contrast between adjacent modules. Dots and rounded modules scan well on modern smartphones at normal print sizes, but are slightly less forgiving in difficult conditions — dim lighting, small size, low-resolution print, or older camera hardware. If in doubt, test at your intended print size before committing to a large run.

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.

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

We use strictly necessary cookies to run Qrop, and — only with your consent — advertising cookies. See our privacy policy for details.