A quick guide to QR codes that actually scan
QR codes look like they're all the same, but the small decisions you make while generating one have a real impact on whether it scans reliably at a dinner table, on a billboard, or through a cracked phone lens. The three variables that matter are size, error-correction level, and contrast.
Size
Rule of thumb: print size ≈ scan distance ÷ 10. A QR you scan from 30 cm (a menu) should be about 3 cm wide. A poster scanned from 3 metres needs to be 30 cm. For web use, just make it at least 256 pixels wide so phones can focus.
Error correction
QR codes include redundant data so they can be read even when partially obscured. There are four levels:
- L (7%) — smallest QR, best when the code is clean and on-screen.
- M (15%) — the default; balances size and resilience.
- Q (25%) — printed materials, light wear expected.
- H (30%) — stickers, billboards, anywhere damage or distance is likely.
Contrast and colour
QR scanners read the code as a light/dark pattern. Dark-on-light always works. Light-on-dark usually works on modern phones but fails on older ones. Stay away from very close tones (e.g. grey on slightly lighter grey) or saturated complementary pairs (red on green). Black on white is boring and perfect.
Frequently asked
Does the QR get sent to a server?
No. This page uses a JavaScript library to draw the QR onto a canvas in your browser. The URL or text you type is not transmitted anywhere.
What can I encode in a QR?
Anything text-based. Common patterns: a https:// URL, a phone number (tel:+155…), an SMS (SMSTO:+1…:Hi), Wi-Fi credentials (WIFI:T:WPA;S:Network;P:Password;;), a vCard, or just a plain note.
PNG or SVG — which should I pick?
SVG for printing and design — it scales without pixelation. PNG for pasting into a slide deck, a document, or somewhere that chokes on vectors.
Why does my QR look pixelated in the preview?
The preview uses pixel-perfect rendering on purpose — the black and white squares need crisp edges to scan. The PNG download honours the size you set in the slider.
Does it track who scans my QR?
No. The code encodes whatever URL you enter, verbatim. If you want analytics, use a URL shortener (bit.ly, short.io) as the target, and its dashboard will tell you scan counts.