Practical reference

The QR Code Field Guide

A QR code is useful only when it survives the real world: small labels, weak lighting, older cameras, curved packaging and hurried users. This guide explains the decisions that make a code dependable before you print it.

Reviewed and updated July 21, 2026 · 11 minute read

Start with what the code must do

Choose the content type before styling. A URL code opens a web address; a WiFi code can carry a network name, security type and password; a vCard can carry contact fields; text and event codes store their information directly. These payloads are not interchangeable. A QR image does not automatically host a PDF, update a menu or measure scans. It only contains the data that was encoded.

Static codes store the final data in the symbol. They have no subscription dependency and do not expire by themselves, but the destination can still disappear. Dynamic codes store a redirect address controlled by a service. They can support destination edits and scan measurement, but they depend on that redirect remaining active. Use static codes for stable information and dynamic codes when the printed material is expensive to replace or measurement is essential.

Data density matters more than most designs admit

The small squares in a QR code are called modules. More data generally requires more modules, producing a denser symbol. Dense symbols need more printed area so each module remains distinct to the camera. A long tracking URL with dozens of parameters may therefore scan less reliably at the same physical size than a short URL.

Before generating, remove unnecessary parameters, resolve accidental redirects and use the final HTTPS destination. Do not use an unfamiliar public URL shortener for permanent packaging: the link becomes dependent on another company and may look suspicious to the person scanning it. If you need an editable destination, use a redirect on a domain you control.

Contrast, color and the quiet zone

The safest design is a dark foreground on a light, solid background. Color is acceptable when the luminance difference remains strong. Pale gray on white, yellow on white and busy photographs behind the modules are risky. Inverting the code can also reduce compatibility. A phone camera must distinguish module edges after glare, compression, focus and print variation have already degraded the image.

The quiet zone is the blank border around the symbol. It separates the code from nearby text and artwork. Do not place a frame, price, icon or decorative pattern inside it. DENSO WAVE's technical guidance describes a four-module-wide margin for a standard QR Code. The margin must scale with the modules rather than being treated as a fixed number of screen pixels.

Error correction is protection, not permission to damage the code

QR Codes support error-correction levels commonly labeled L, M, Q and H. Higher settings add redundancy and can help when part of the symbol is dirty or obscured, but they also increase density. Select a higher level when the code will be used outdoors, printed on packaging or combined with a small central logo. For a clean indoor sign without a logo, a moderate level usually produces a simpler symbol.

A logo should never cover the three large position markers in the corners, the timing patterns or too much of the data area. There is no universal safe percentage for every code because capacity, version, error correction and logo placement all interact. Generate the final design first, then test that exact exported file and a physical proof. Do not test a simpler placeholder and assume the production artwork behaves identically.

Choose size from scanning distance

There is no single minimum print size that fits every job. A business card scanned at arm's length and a poster scanned across a corridor have different requirements. Start with a conservative 25 mm square for hand-held printed material, increase the size for dense codes, and create a full-scale proof. Large signage should be tested at its expected viewing distance, not only from ten centimeters away.

SVG is preferable when a designer needs to resize the code because its edges remain mathematically sharp. PNG is suitable when exported at the required pixel dimensions and placed without enlargement. Avoid JPEG for the code itself: lossy compression can blur module edges and introduce artifacts. Whatever format you use, disable image smoothing when a layout application resamples the graphic.

A real preflight test

Use a short, final destination URL before generating the code.
Keep a light background and a clearly darker foreground.
Preserve an empty quiet zone around all four sides.
Export at the final print size or use SVG for professional print work.
Test the printed proof on at least two different phones.
Test from the distance and lighting conditions where people will scan it.
Keep a human-readable URL or instruction near the code as a fallback.

Test with the native camera on both iOS and Android when possible. Also test after printing, laminating or placing the item behind glass, because reflections and paper finish change the result. Scan with the phone level, at a slight angle, in bright light and in dimmer light. If the first scan hesitates, simplify or enlarge the code rather than expecting users to adapt.

Privacy and safety for the person scanning

A printed code hides its destination from the eye, so earn the user's trust. Put a short instruction beside it, identify the destination brand and provide a readable fallback URL. Use HTTPS. Avoid collecting personal data unless the landing page explains why it is needed. If the code opens a payment or sign-in page, make the domain recognizable and keep stickers from being easy to replace.

YourQRFree privacy note

Static QR images are generated in your browser. The text, URL or WiFi password you enter does not need to be sent to our server to produce the image. Anyone who can see the finished QR code can still decode its contents, so do not publish secrets in a public code.

Primary references

Ready to build the final code?

Generate it, download it, then run the preflight checklist above.

Open the generator