Tools · 3 min read ·
How to make a QR code that scans every time
Size, contrast, quiet zone and how much you put inside: the simple rules that decide whether a printed QR code works on the first try.

A QR code on a menu, a poster or a business card has one job: to open on the first scan. When it fails, the cause is almost always one of a few avoidable mistakes.
Keep the content short
The more characters a QR code holds, the more modules (small squares) it needs, and the smaller each one gets at the same printed size. A long URL full of tracking parameters makes a dense code that is hard to scan from a distance. Remove what you don’t need, or link to a shorter address.
Print it big enough
For a short URL scanned up close, about 2 × 2 cm is the practical minimum. A useful rule: the scanning distance should be no more than about ten times the width of the code. A poster read from 2 metres needs a code about 20 cm wide.
scanning distance ≈ 10 × code width
30 cm → 3 cm code
2 m → 20 cm code
Contrast and the quiet zone
Dark modules on a light background work best. Inverted codes (light on dark) and pale brand colours confuse many scanners. Leave an empty margin, the quiet zone, around the code; text or graphics touching its edges is a common reason it fails.
Use a vector file
Export the code as SVG rather than a small PNG. A vector stays perfectly sharp at any size, while an enlarged bitmap gets blurry edges that scanners struggle with.
Logos and error correction
QR codes include error correction, so they still scan when part of them is dirty or covered. That is what lets you put a small logo in the middle, but keep it small and test with several phones before you print hundreds of copies.
Static or dynamic?
A static QR code contains the final URL or text itself. It works forever and needs no service behind it, but you can’t change the destination after printing. A dynamic QR code contains a short link to a redirect service, so the destination can be edited and scans counted, but it stops working if the service shuts down or the subscription ends. For anything printed in large numbers, check what happens to the code if you stop paying.
How error correction levels compare
L about 7% of the code can be damaged
M about 15%
Q about 25%
H about 30%
Higher levels make the code denser, so they need a bigger print for the same content. Medium is a good balance for most uses; choose a higher level only when the code will be covered by a logo or printed on surfaces that get dirty.
Checklist before you print
- Scan the final file, not just the preview, with at least two phones, iPhone and Android.
- Scan from the real distance and in the real light, including from an angle.
- Open the link and check it is the right page and works on mobile.
- Print one test copy on the real material; glossy and curved surfaces cause reflections.
Make one
The 4Dev QR Code Generator turns any URL or text into a QR code as you type and downloads it as SVG, with a quiet-zone margin and medium error correction. The code holds your text itself, not a redirect through a tracking service, so it never expires.