QR Code Best Practices: When and Why to Use Them
QR codes are everywhere — restaurant menus, product packaging, event tickets, business cards. But not all QR codes are created equal. A poorly generated QR code can fail to scan, frustrate users, and undermine your brand. This guide covers the technical standards and practical best practices that ensure your QR codes work reliably every time.
How QR Codes Work
A QR (Quick Response) code is a two-dimensional barcode defined by the ISO/IEC 18004:2015 standard. Invented by Denso Wave in 1994 for tracking automotive parts, it encodes data as a matrix of black and white modules (squares). A version 1 QR code is 21×21 modules; each version increase adds 4 modules per side, up to version 40 at 177×177 modules.
The code includes three finder patterns (the large squares in three corners), alignment patterns, timing patterns, and the actual data payload. The data is encoded using one of four modes: numeric, alphanumeric, byte (UTF-8), or kanji.
Error Correction Levels
QR codes use Reed-Solomon error correction, which means part of the code can be damaged or obscured and still scan correctly. The ISO standard defines four levels:
- Level L — 7% recovery capacity. Use for clean digital displays.
- Level M — 15% recovery. The default for most use cases.
- Level Q — 25% recovery. Good for printed materials that may get worn.
- Level H — 30% recovery. Required when adding a logo overlay to the center of the code.
Higher error correction means a denser code (more modules for the same data), which requires a larger print size for reliable scanning. Choose the lowest level that matches your use case.
Sizing and Quiet Zone
The ISO standard mandates a 4-module quiet zone (white border) around the entire code. Many scanning failures come from violating this requirement — placing the code too close to other graphics or the edge of a printed surface.
For print, the minimum recommended size depends on scanning distance:
- 30cm (business card): minimum 2cm × 2cm
- 1 meter (poster at arm's length): minimum 6cm × 6cm
- 3 meters (signage): minimum 18cm × 18cm
The rule of thumb is 1cm per 10cm of scanning distance. For digital screens, 200×200 pixels is sufficient at normal viewing distance.
Data Capacity and URL Length
A QR code's capacity depends on its version and error correction level. At Level M:
- Version 1 (21×21): 14 alphanumeric characters
- Version 10 (57×57): 174 alphanumeric characters
- Version 40 (177×177): 4,296 alphanumeric characters
Longer URLs produce denser codes. A URL under 50 characters generates a compact version 3–4 code that scans quickly even at small sizes. URLs over 200 characters require version 15+, which is noticeably harder to scan on small prints. Keep your encoded URLs short — use a URL shortener if necessary.
Common Use Cases
QR codes work best when they bridge the physical and digital worlds:
- URLs — Link to websites, landing pages, or app downloads. This is the most common use case, defined by the RFC 3986 URI syntax.
- Wi-Fi credentials — Encode
WIFI:T:WPA;S:NetworkName;P:password;;to let users connect by scanning. Supported by iOS and Android. - vCards — Embed contact information in vCard 3.0 format for instant address book import.
- Geo coordinates — Format:
geo:37.786971,-122.399677to open a map application. - Payment — Many payment systems (PIX in Brazil, UPI in India) use QR codes to encode payment instructions.
Common Mistakes
These are the most frequent QR code failures we see:
- Low contrast — QR codes need high contrast between modules and background. Avoid light gray on white or dark blue on black. The ideal is black on white.
- Inverted colors — Some scanners struggle with white-on-dark codes. While the ISO standard supports it, stick to dark-on-light for maximum compatibility.
- No quiet zone — Placing the code flush against graphics or borders prevents scanners from detecting the finder patterns.
- Encoding non-ASCII without UTF-8 — If your URL contains characters like ñ, ü, or CJK characters, ensure the generator uses byte mode with UTF-8 encoding.
- Testing only on one device — Always test your QR code on at least two different phones (iOS + Android) from the intended scanning distance.
When NOT to Use QR Codes
QR codes are not always the right choice. Avoid them when:
- The user is already on a digital device (just use a clickable link)
- The target audience is unlikely to scan (elderly populations, low smartphone penetration)
- The code leads to a non-mobile-optimized page
- There is no clear value proposition for scanning — always answer "why should I scan this?"
Key Takeaways
- Use error correction Level M for digital, Level H for print with logo overlays
- Maintain the 4-module quiet zone — it is part of the ISO standard
- Keep encoded data under 50 characters for best scanning reliability
- Test on multiple devices at the intended scanning distance
- High contrast (dark on light) is non-negotiable
Ready to generate a QR code? Try our QR Code Generator — it uses error correction Level M by default and produces clean PNG downloads with proper quiet zones.
Frequently Asked Questions
- What is the minimum size for a printed QR code?
- For reliable scanning at 30cm distance, print QR codes at least 2cm x 2cm (about 0.8 inches). Larger distances require proportionally larger codes. A good rule of thumb is 1cm per 10cm of scanning distance.
- Do QR codes expire?
- Static QR codes never expire. The data is encoded directly in the pattern. However, if the QR code points to a URL and that URL goes offline, the code becomes effectively useless even though it still scans correctly.
- Which error correction level should I use?
- Use Level M (15% recovery) for most digital applications. Use Level H (30% recovery) if the code will be printed on materials that may get dirty, scratched, or partially covered, such as product packaging or outdoor signage.