QR Code Best Practices
Creating a QR code takes seconds — but creating one that scans reliably in the real world, on a range of devices, in variable lighting, and at different distances, requires attention to a few key principles. These best practices cover everything from physical size and color contrast to error correction levels, placement, and testing.
1. Maintain Proper Size
Size is the single most important factor for scan reliability in print. The minimum recommended size for a QR code in print is 2 × 2 cm (about 0.8 × 0.8 inches). Below this threshold, older smartphone cameras and cameras in bright or low-light environments may struggle to resolve the individual modules (the black and white squares that make up the code).
For large-format print — posters, banners, billboards — scale the QR code proportionally to the expected scanning distance. A general rule is that the scan distance should not exceed ten times the QR code width. A billboard QR code intended to be scanned from 5 metres should be at least 50 cm wide. For digital use (website buttons, email signatures), a minimum of 150 × 150 pixels at 72 dpi is adequate, but 200 × 200 px or larger gives more comfortable scanning from a wider range of angles and distances.
2. Use High Contrast
QR code scanners work by detecting the contrast between light and dark modules. The higher the contrast, the faster and more reliably a scanner will read the code. The standard combination — dark code on a light (white or near-white) background — gives the highest contrast and the most reliable results across all scanners and apps.
Inverted QR codes (light code on a dark background) can work but are not supported by all scanner apps. Avoid pastel or mid-tone background colours, as they reduce contrast significantly. If you want a branded colour scheme, use a dark brand colour for the foreground modules and keep the background white or very light. Always test a coloured QR code on at least three different phones before deploying.
3. Include a Quiet Zone
The quiet zone is the white border that surrounds a QR code. It is not decorative — it is a functional part of the code that tells the scanner where the QR code begins and ends. The QR code standard (ISO/IEC 18004) requires a quiet zone of at least 4 modules wide on all four sides. In practical terms, this means leaving a white margin at least as wide as four of the small squares in the QR code around all edges.
The most common QR code scan failure in practice is a missing or insufficient quiet zone — particularly when a designer places the QR code flush against a coloured block, a photograph, or the edge of a printed card. Always maintain the margin, even when space is tight.
4. Choose the Right Error Correction Level
QR codes have four error correction levels that determine how much of the code can be damaged or obscured while still scanning correctly:
- L (Low) — recovers up to 7% damage. Smallest file size, highest data density. Use for clean digital displays where damage is unlikely.
- M (Medium) — recovers up to 15% damage. Good default for most printed materials.
- Q (Quartile) — recovers up to 25% damage. Good for outdoor print or industrial use where surface wear is possible.
- H (High) — recovers up to 30% damage. Required when adding a logo or icon to the centre of the QR code, since the logo obscures part of the code.
Higher error correction means a denser, more complex QR code. For short data (like a URL), this usually results in an acceptable size. For long data (a full vCard with all fields), a high error correction level can make the QR code too dense to scan reliably when printed small — in those cases, shorten the data or use a dynamic QR code with a short redirect URL.
5. Choose Static vs Dynamic QR Codes Correctly
Static QR codes encode the data directly in the pattern — the content is fixed forever once the code is generated. Dynamic QR codes encode a short redirect URL, and the actual destination is stored on a server that can be updated later.
Use static QR codes for permanent data that will not change: WiFi credentials, phone numbers, vCard contact details, or plain text. Use dynamic QR codes for marketing campaigns, product packaging with updatable destinations, menus that change seasonally, and any case where you need scan analytics. See our Static vs Dynamic QR codes guide for a full comparison.
6. Always Test Before Deploying
Test every QR code before printing or publishing, using at least three different devices: an iPhone using the native camera app, an Android device using the native camera app, and ideally a third device with a dedicated QR scanner app. Test in both good and poor lighting. If you are printing the QR code, print a test copy first and scan the printed version — not the digital version — since printing can introduce edge blurring that reduces scan reliability.
Also verify the destination after scanning. It is easy to mis-type a URL when creating a QR code, and a QR code pointing to a 404 page or wrong URL is invisible to you but immediately apparent — and frustrating — to every person who scans it.
7. Branding and Customisation
Adding a brand colour or logo to a QR code is possible and widely done, but it must be done carefully. The key rules: maintain at least 4:1 contrast ratio between foreground and background modules, use error correction level H if adding a logo, ensure the logo covers no more than roughly 20–25% of the total QR code area, and always test scanning after customisation.
Adding a short label underneath the QR code — "Scan to visit our menu", "Scan to connect on WhatsApp", "Scan to pay" — significantly increases scan rates because it tells users exactly what action to expect before they scan. Unlabeled QR codes are increasingly ignored because users have learned to be cautious about unknown QR codes.
8. Placement Strategy
Where you place a QR code is as important as how you design it. Effective placement positions are: business cards (back face, lower right), restaurant tables (card stand or placemat), product packaging (back panel, near ingredients or instructions), retail signage (eye level, with space around the code), and event materials (lanyards, table cards, registration desks).
Avoid placing QR codes on curved surfaces (a curved bottle label distorts the code), on reflective materials (glass, glossy metallic surfaces cause glare that confuses scanners), and in locations where a user cannot comfortably hold their phone still for 1–2 seconds (moving vehicles, overhead displays that require angling the phone up).
Generate QR Codes with Best Practice Settings
Our free QR code generator lets you configure error correction level, size, and format (PNG or SVG) before downloading. SVG format is recommended for print as it scales to any size without pixelation.
Check all Learning Topics Generate QR Code NowFrequently Asked Questions
What is the minimum size for a QR code to scan reliably?
The minimum recommended size for a printed QR code is 2 × 2 cm (0.8 × 0.8 inches). For digital use, 150 × 150 pixels is adequate at normal screen resolution. Below these thresholds, scan reliability drops significantly on lower-resolution cameras and at wider scan angles.
Can I use a dark background with a white QR code?
Inverted QR codes (light code on dark background) work with many modern scanner apps but are not supported by all apps and camera systems. Standard dark-on-light is far more universally compatible. If you use an inverted design, test on multiple devices before deploying, and prefer this only for digital screens rather than print.
What error correction level should I use?
Use M (Medium, 15% recovery) for most print materials. Use H (High, 30% recovery) if you are adding a logo or icon to the centre of the QR code. Use L (Low, 7%) only for clean digital displays where no physical damage or logo is involved and you need to keep the QR code as simple (low-density) as possible.
Why is my QR code not scanning?
Common causes: the quiet zone (white border) is too small or absent; the QR code is printed too small; insufficient contrast between the code and background; the code was over-compressed in a JPEG image; or the QR code is placed on a curved or reflective surface. Try scanning a freshly downloaded PNG version first to rule out print quality issues.
Should I use PNG or SVG for printing a QR code?
SVG is preferred for print because it is a vector format that scales to any size without pixelation. PNG at high resolution (300 dpi or higher) also works well. Avoid using a low-resolution PNG downloaded for web use (72 dpi) and scaling it up for print — this produces blurry module edges that reduce scan reliability.
Do QR codes expire?
Static QR codes never expire — they encode data directly in the pattern and scan correctly for as long as the physical or digital QR code exists. Dynamic QR codes may expire if the third-party service that handles the redirect stops supporting your plan or account. Always check the expiry policy before using a dynamic QR code service for long-running campaigns.