QR Code Design & Printing Rules
A QR code only works if it scans. These are the rules that determine whether it will — and the mistakes that silently break codes before they're ever handed out.
By Kerron Gordon, IT Instructor & Network Technician
QR codes include built-in error correction — they can survive a degree of damage or partial obscuring and still decode successfully. That's not a licence to cut corners on design. Error correction compensates for physical wear on a well-made code; it cannot rescue a code that was poorly designed from the start. If you want people to actually use what you print, every rule below matters.
Rule 1: High contrast
A QR code scanner works by detecting the contrast between dark modules (squares) and the light background. It measures the difference in reflectance between the two regions. The standard requires a contrast ratio of at least 4:1 between the dark and light areas.
The most reliable combination is black on white. It works on every scanner, in every lighting condition, on every phone made in the last decade. When you deviate from this — even slightly — you introduce failure modes.
- Navy blue on white: Works reliably. Sufficient contrast.
- Dark green on white: Works reliably.
- Dark grey on light grey: Borderline. Fails in low light or on older cameras.
- White code on black background (inverted): Fails on a significant proportion of Android devices. The QR standard specifies dark modules on a light background. Many camera apps don't invert the image before attempting to decode.
- Similar saturated colours (e.g., dark red on dark blue): The contrast may look vivid to a human eye but the scanner reads luminance values, not hue. Dark blue and dark red have similar luminance — the scanner sees them as approximately the same brightness and loses the edges between modules.
If you need to print a branded QR code in custom colours, test it with at least three different phones before finalising. Scan in normal indoor light, in dim light, and in bright sunlight. All three conditions need to pass.
Rule 2: The quiet zone
The blank white border surrounding a QR code is called the quiet zone. It is not decoration and it is not optional. The QR standard (ISO/IEC 18004) specifies a minimum quiet zone of four modules wide on all four sides, where a module is one of the individual small squares that make up the code matrix.
The quiet zone is how the scanner detects the boundary of the code. Without adequate white space, the reader cannot locate the finder patterns — the three large corner squares that tell the scanner where the code begins and which way it's oriented. Crowding text, logos, or design elements up against the QR matrix is one of the most common print errors on professionally designed materials, and it's entirely invisible until the code fails in the field.
Our generator applies a generous quiet zone to all downloads automatically. If you open the PNG in a design tool and crop into the white border before printing, you've removed that margin and the code may fail.
Rule 3: Minimum print size
Scan success depends on the camera being able to resolve the individual modules in the QR matrix. The minimum print size is not a fixed number — it depends on two variables: expected scanning distance and data density.
For the full sizing formula and use-case table, see the QR code sizing guide. The short version:
- Business card or brochure (scanned from ~10 inches): minimum 1 × 1 inch (2.5 × 2.5 cm).
- Table tent (scanned from ~20 inches): minimum 2 × 2 inches (5 × 5 cm).
- Storefront poster (scanned from ~50 inches): minimum 5 × 5 inches (12.5 × 12.5 cm).
- vCard or other dense codes: add 50% to whatever the distance formula gives you, because dense matrices have smaller individual modules.
High contrast — dark code on light background
Black on white is most reliable. Test branded colour combinations before going to press. Avoid inverted (white on black) and similar-luminance colour pairs.
Quiet zone — four modules of blank border on every side
Don't crop into the white margin in your design tool. Don't let text, graphics, or the card edge run up against the QR matrix. Our generator includes the quiet zone in all downloads.
Minimum size — scale to the scanning distance
Minimum 1 inch for close-range scanning; add 50% for dense codes. Use the 10:1 rule for any distance beyond arm's length.
Lossless file format for print
PNG for small-format print; SVG or EPS for anything larger than A5. Never send a JPEG or screenshot to a commercial printer — compression artifacts blur module edges and cause scan failures.
Test before printing at scale
Print a single proof at final size and scan it with at least two different phones — one iPhone, one Android — before committing to a print run. Verify the destination URL loads correctly on a mobile browser.
Rule 4: File format for print
The file format you send to a printer has a direct impact on scan reliability at large sizes.
PNG is a lossless raster format. The pixels are stored exactly — no compression artefacts. For small-format print work (business cards, flyers, brochures up to A4), a high-resolution PNG (1024×1024 or higher) is perfectly adequate. GetEasyQR exports a 1024×1024 PNG.
JPEG uses lossy compression. It works by averaging and blurring neighbouring pixels to reduce file size. Applied to a QR code — which is a pattern of high-frequency black-and-white edges — JPEG compression creates visible artefacts called "ringing" around each dark module. At small sizes these are invisible to the eye but visible to a scanner. At large print sizes they cause actual scan failures. Never use JPEG for a QR code.
SVG and EPS are vector formats. They describe the code mathematically as shapes, not pixels, so they scale to any size without quality loss. For large-format work — exhibition banners, window graphics, outdoor signage, anything bigger than A4 — use vector. A printer asked to scale a 1024×1024 PNG to a metre-wide banner will introduce blurring. A vector file at the same size looks sharp.
Logos in QR codes
Overlaying a brand logo on a QR code is a popular design choice, but it requires understanding how error correction works. The QR standard includes four levels of error correction — L, M, Q, and H — which allow the scanner to reconstruct data even if part of the code is obscured or damaged. Level H recovers up to 30% of the codewords.
A logo placed in the centre of a QR code deliberately obscures part of the data area. This works only if:
- The error correction level is set to H.
- The logo covers no more than approximately 30% of the total code area.
- The logo is placed in the centre — the corner finder patterns must remain completely unobscured.
- The code is tested thoroughly across multiple devices, because the tolerance is tight.
A logo that's slightly too large, or applied to a code generated at error correction level M, will appear to work on some devices and fail silently on others. If in doubt, test aggressively before printing.
Physical material considerations
Adding a call to action
A QR code without a label relies on the viewer knowing what it is and what they'll get by scanning it. That's a poor assumption. Even among smartphone users who know how to scan QR codes, an unlabelled code is a mystery — and most people don't investigate mysteries on strangers' business cards or shop windows.
Always place a short label directly above or below the code:
- "Scan to view menu" — for restaurant table codes
- "Scan to save contact" — for vCard codes on business cards
- "Scan to connect to WiFi" — for guest network codes
- "Scan to watch the video" — for packaging or event materials
The label should be in a legible sans-serif font, at a size that's readable without squinting, in a colour that contrasts with the background. It should not be placed inside the quiet zone.
Testing protocol before a large print run
Before committing to a significant print run, run through the following checks:
- Print a single proof at the exact final size and on the exact final stock.
- Scan with an iPhone (native Camera app).
- Scan with an Android phone (native Camera app).
- If the code points to a URL: confirm the destination page loads in under 3 seconds on a 4G connection and displays correctly on a phone screen.
- If it's a WiFi code: confirm the network name and password are correct and the phone connects.
- If it's a vCard code: confirm every field is populated correctly in the resulting contact card.
- For static URL codes: verify the URL is correct — there's no fixing a typo in a static code after printing.
Quick summary
- Dark code on light background — black on white is most reliable.
- Preserve the quiet zone on all four sides — don't crop into it.
- Size to scanning distance using the 10:1 rule; add 50% for dense codes.
- Use PNG for small print, SVG or EPS for large format — never JPEG.
- Logos require error correction level H and thorough multi-device testing.
- Always add a call-to-action label.
- Test the proof with two phones before going to press.