QR Code Best Practices and Mistakes to Avoid
Most QR codes that fail to scan are undone by three fixable mistakes: too little contrast, printing them too small, or picking the wrong error-correction level for the job. Fix those and a code scans on the first try, every time. This is a best-practices guide for making codes that survive the real world of packaging, posters, and worn print.
Choose error correction to match the risk
The error-correction level decides how much of the code can be damaged and still scan. Higher levels add redundancy but make the pattern denser, so match the level to how the code will be used rather than always maxing it out.
| Level | Recovery | Best for |
|---|---|---|
| L | ~7% | Very long data on clean screens |
| M | ~15% | The sensible default for most codes |
| Q | ~25% | Small print or mild wear |
| H | ~30% | Logos over the centre, rough surfaces |
Start at M. Step up to Q or H only when the code will be printed small, might get scratched, or has a logo placed over the middle. Drop to L when your payload is long and you need to keep the pattern simple.
Contrast and color: the rule scanners expect
Scanners are built to read dark modules on a light background. Keep it that way.
- Never invert. A light code on a dark background fails on many scanner apps. Keep the modules much darker than the background.
- Keep strong contrast. Subtle tone-on-tone looks elegant and scans terribly. If in doubt, go closer to black on white.
- Custom colors are fine within reason. A dark brand color on a pale background works; pastel-on-pastel does not.
- Preserve the quiet zone. Leave clear margin around the code so nothing crowds the pattern.
Size it for the scan distance
A code that is too small is the most common print failure. Two rules of thumb: a minimum of about 2 × 2 cm (roughly 1 inch) for close-range scanning, and for anything scanned from a distance, size it at scan distance ÷ 10. A code read from 1 metre away should be at least 10 cm wide. For crisp print, download at 512 px or larger — never scale up a small PNG, which softens the edges and hurts reliability.
Common mistakes and fixes
| Mistake | Result | Fix |
|---|---|---|
| Inverted colors | Fails on many apps | Dark modules on light background |
| Printed too small | Camera cannot resolve it | Follow the distance ÷ 10 rule |
| Logo over an L/M code | Too much data lost | Use level H when adding a logo |
| Upscaled tiny PNG | Blurry, unreliable edges | Download at 512 px or more |
| No quiet zone | Scanner misses the boundary | Keep clear margin around it |
One more durability tip: because these codes encode your data directly with no redirect service, they never expire — but that also means you cannot edit the destination after printing. Double-check the URL or Wi-Fi details before you commit to a print run.
Try the QR Code Generator — free and 100% in your browser.
FAQ
My QR code scans on my phone but not on others. Why?
Usually contrast or size. Your phone's camera may be more forgiving than an older one. Increase the contrast toward dark-on-light, print larger, and bump the error-correction level, then test across a couple of different devices.
Can I put a logo in the middle without breaking the code?
Yes, if you raise the error-correction level to Q or H first. That extra redundancy covers the modules the logo hides. Keep the logo small — covering more than roughly the central 30% risks a failure even at level H.
What resolution should I download for packaging?
Download at 512 px or higher and place it at the physical size you need without upscaling. Packaging often gets scanned close up, so meeting the ~2 cm minimum with sharp edges matters more than a huge pixel count.
Is it safe to share a Wi-Fi QR code on a printed sign?
The code is generated locally so the password never leaves your browser, but anyone who scans the printed sign can join the network. Treat the printout like the password itself and place it only where you would be comfortable sharing access.
Related free tools
- Barcode Generator — 1D barcodes for retail and inventory
- URL Encoder — safely encode links before embedding
- Base64 Encoder — encode text and data
- Password Generator — strong Wi-Fi passwords to encode
Built by ByteVancer
ByteTools is a free product of ByteVancer, a software and web development studio building web apps, SaaS, and custom software. If your business needs QR-driven campaigns, dynamic codes, or a custom tool wired into your systems, explore what ByteVancer can build.
Recommended reading
How to Create a Free QR Code That Never Expires
Create QR codes for URLs, Wi-Fi, email, phone and SMS, then download a crisp PNG. No redirect service, so codes never expire. Free and private.
QR Code Use Cases: 8 Real Ways to Use Them
Real QR code use cases with examples: Wi-Fi guest access, restaurant menus, event check-in, business cards, packaging and more, all free and private.
XOR Cipher Use Cases: CTFs, Learning, and Puzzles
Real use cases for the XOR cipher, from CTF challenges and teaching bitwise logic to lightweight obfuscation, with concrete worked examples.
XOR Cipher Tips: Keys, Security, and Common Mistakes
Pro tips and common mistakes for the repeating-key XOR cipher: key length, reuse pitfalls, format choices, and when to switch to real encryption.