A QR code that won't scan is worse than no QR code at all. Most failures come from a handful of avoidable mistakes: too small, too little contrast, too much data, or a logo that covers too much. These are the rules worth following.
Error correction levels
QR codes include redundancy so they can still be read when partly damaged or covered. You choose how much when you generate the code:
- L (Low): recovers about 7% of the data. Smallest, simplest code.
- M (Medium): about 15%. A sensible default.
- Q (Quartile): about 25%.
- H (High): about 30%. Best if you place a logo in the middle or expect wear, but the code gets denser.
Design rules that matter
- Quiet zone: keep a blank margin of at least four modules (the small squares) around the code. Cropping it is a top cause of scan failures.
- Contrast: dark code on a light background works best. Inverted (light on dark) is not supported by every scanner.
- Size: as a rule of thumb, keep printed codes at least about 2 by 2 cm, and make them larger if people scan from a distance (roughly one-tenth of the scanning distance).
- Less data means a simpler code. Use a short URL rather than a long one with tracking parameters.
- Don't stretch or distort; keep it square.
Static vs dynamic QR codes
A static code stores the data itself, so it never expires and needs no service, but you can't change it after printing. A dynamic code stores a short redirect link that you can edit later, at the cost of depending on the service that hosts the redirect. For printed material you can't easily replace, consider a link you control that redirects to the current destination.
Test before you print
- 1Scan with at least two different phones and camera apps.
- 2Test at the real size and distance, in the real lighting.
- 3Print a proof on the actual material, since glossy or curved surfaces can hurt scanning.
- 4Check where the code leads on mobile data, and make sure the page is mobile-friendly.
Frequently asked questions
+What error correction level should I use?
Medium (M) is a good default. Use High (H) if you add a logo or expect the code to get scuffed.
+How big should a QR code be?
At least about 2 by 2 cm for close scanning, and larger for posters or signs viewed from further away.
+Can I put a logo in a QR code?
Yes, with a high error-correction level and a logo that covers only a small central area. Always test it afterwards.
+Do QR codes expire?
A static QR code never expires, since it holds the data directly. Dynamic codes depend on the service that hosts the redirect.
QR Code Generator
Free, runs in your browser — nothing you enter is uploaded.