A QR code is a two-dimensional barcode holding text — a URL, contact details, network credentials, a payment string. Understanding two properties, error correction and data density, is the difference between a code that scans instantly and one that fails on a wall.
Error correction
QR codes carry redundant data so they still scan when partly damaged or obscured.
| Level | Recoverable damage | Use for |
|---|---|---|
| L (Low) | ~7% | Clean screens, maximum capacity |
| M (Medium) | ~15% | General printing — the sensible default |
| Q (Quartile) | ~25% | Codes with a logo overlaid |
| H (High) | ~30% | Industrial, outdoor, or heavily branded codes |
Higher correction means more modules for the same data, so the code becomes visually denser. Level H is what makes a centre logo possible — the logo destroys data that the redundancy reconstructs. Keep any overlay under about 25% of the area even at level H.
Keep the data short
Capacity is finite and density rises quickly with length. A 30-character URL produces a sparse, robust code; a 300-character one with tracking parameters produces a dense grid that fails at distance or on a phone camera in poor light.
Use a short URL, strip unnecessary parameters, and remember https:// is required for reliable handling but www. usually is not.
Size and quiet zone
The practical rule for scanning distance is distance ÷ 10. A code read from 2 metres needs to be about 20 cm across; a poster read from 5 metres needs 50 cm.
The quiet zone — the blank margin around the code — must be at least four modules wide. Codes printed flush against artwork or coloured backgrounds fail for this reason more often than for any other, and it is entirely avoidable.
Contrast and colour
Scanners look for dark modules on a light background. Inverting this breaks many readers. Coloured codes work if contrast is high — a dark blue on white is fine, a mid-grey on light grey is not. Never place a code on a photograph or gradient.
What a code can contain
| Type | Format |
|---|---|
| Website | https://example.com |
| Wi-Fi | WIFI:T:WPA;S:NetworkName;P:password;; |
| Contact card | vCard or MECARD text |
mailto:name@example.com | |
| Phone | tel:+441234567890 |
| Plain text | Any string |
A security note
A QR code is opaque to the person scanning it — you cannot read a URL by looking at the pattern. Malicious codes placed over legitimate ones on parking meters, restaurant tables and payment terminals are a recognised and growing fraud. Check the URL your phone previews before opening it, and be suspicious of any code that leads to a payment or login page you did not expect.
This generator creates codes in your browser and transmits nothing, which matters when encoding Wi-Fi passwords or contact details.