All posts
From the blog

Print-ready QR codes: contrast, size, and the logo question

Practical rules for QR codes that actually scan from a poster, a business card, or a sticker — and what to do about the embedded logo trend.

Joe
  • guide
  • design

QR codes are forgiving up to a point, and then they suddenly aren’t. The difference between a code that scans from across the room and one that nobody can read is usually a few millimeters of size, a contrast choice, or one too many design liberties around the logo. Here’s a short, practical rulebook.

Size: the 10:1 rule

The rule of thumb scanner manufacturers actually use:

Distance from scanner to code ÷ 10 = minimum code size.

If your QR will be scanned from 1 meter away (a poster on a wall behind a counter), it needs to be at least 10 cm on a side. From across a coffee shop (3 m), 30 cm. From a billboard at 30 m, 3 m.

For small formats:

Going smaller than these makes the modules (the dots) physically too small for camera autofocus to resolve cleanly. It “works” until it doesn’t.

30 cm

Business card

≥ 2 cm

1 m

Flyer / counter sign

≥ 10 cm

3 m

Poster across a room

≥ 30 cm

10 m

Storefront window

≥ 1 m

Dark dots, light background

Cameras expect this. Anything else loses scan reliability.

Quiet zone ≥ 4 modules

Empty space around the code. Don't bleed it into other graphics.

×

Don't put a logo on a finder square

The three big corner squares are how the scanner orients. They're sacred.

The 10:1 rule — minimum code size = scan distance ÷ 10.

Quiet zone: don’t crowd it

Every QR code spec calls for a quiet zone — empty space around the code, at least 4 modules wide. In practice that’s roughly the width of one of the three big square “finder” marks in the corners. If you’re tempted to bleed the code into another graphic, leave more whitespace around the QR itself than you think you need. Scanners use that whitespace to find the code.

Contrast: dark on light, almost always

Camera-based QR readers expect dark modules on a light background. They have decades of training data telling them this. You can violate this rule — light dots on dark, colored dots, gradients — but every violation eats some of your error correction budget and some of your scan reliability.

If you’re going to deviate:

The logo question

You can put a logo in the middle of a QR code. The reason it works is error correction — the QR spec encodes the data redundantly, so a chunk of damaged or obscured pixels can be reconstructed from the rest. Standard error correction levels:

If you embed a logo, use level H and keep the logo small — no more than the central 20% of the code area. Anything larger and you start eating real data, and the scanner will fail in low-light or low-resolution conditions.

A few rules I’ve found from doing this a lot:

Format: PNG or SVG?

AFQR exports both for free. SVG is preferred whenever your downstream tools support it — it’s smaller, sharper at any size, and survives being scaled in print layouts.

Test before you print

Always — always — print a one-off proof and scan it from the actual distance you expect users to scan from, with a normal phone camera, in normal indoor lighting. The number of times an “obviously fine” QR turns out to be unscannable at the actual size on the actual paper is humbling.

If you want to skip the math, the AFQR generator’s default settings (high contrast, level Q error correction, generous quiet zone) produce codes that scan reliably at the sizes above. Most of the design choices that break QR codes are choices a default-safe generator never lets you make in the first place.

Need a QR code that won't expire?

Make one in your browser, free, no signup. Or sign in with Google to manage dynamic codes with scan stats.