1. Always add a call-to-action

A QR code alone tells users nothing. "Scan here" is the bare minimum; something more specific — "Scan for today's menu", "Scan to book a table", or "Scan for 15% off" — dramatically increases scan rates by removing uncertainty about what will happen. Users who know what they're getting are far more likely to scan.

Place the call-to-action directly beneath or beside the code, in a typeface large enough to read at the intended scan distance. If space is tight, even a single icon (a plate for a menu, a camera for a portfolio) provides valuable context.

2. Test before you print

This sounds obvious, yet it's the most frequently skipped step. Before printing a single copy, scan your QR code on at least three different devices — an iPhone, an Android, and ideally an older smartphone. Test in the same lighting conditions you expect users to encounter. Low-light restaurant environments are very different from a bright trade show floor.

Also verify the destination: click every link, check that the page loads correctly on mobile, and confirm the content matches what your call-to-action promises.

3. Size it for the scanning distance

The standard rule is that a QR code should be at least one-tenth the distance at which it will be scanned. A code on a table tent (scanned from 40–50cm away) should be at least 4–5cm wide. A code on a window (scanned from 1–2m away) needs to be at least 10–20cm wide.

Err on the side of larger. A QR code that fails to scan is worse than one that looks a bit big. See our full QR code sizing guide for specific recommendations by material type.

4. Keep the quiet zone intact

Every QR code requires a quiet zone — a border of white space, at least four modules wide, around all four sides of the code. This zone tells the scanner where the code ends and the surrounding design begins. Designers frequently crop or print-bleed over the quiet zone to save space, causing scan failures that are invisible to the naked eye but unreadable to any scanner.

If your design tool is clipping the QR code's edges, increase the canvas size or reduce the surrounding elements — don't compress the code itself.

5. Link to a mobile-optimised page

QR codes are scanned on phones. Every single time. If your destination page is not mobile-responsive — small text, horizontal scrolling, desktop-only navigation — users will bounce immediately. Always verify that your landing page renders correctly at 375px viewport width (iPhone SE) before going live.

This is especially important for PDFs linked from QR codes. A 50-page PDF that takes 8 seconds to load and displays at 6pt type is not a good mobile experience. Consider a mobile-first HTML menu or landing page instead.

6. Shorten long URLs before encoding

The longer the URL, the more complex the QR code pattern — more modules, denser grid, harder to scan, especially at smaller print sizes. A URL like https://yourbusiness.com/menu?table=14&lang=en&promo=summer2024 creates a significantly more complex code than https://bit.ly/yourmenu.

Use a URL shortener, a branded short domain, or UTM parameters only where necessary. A shorter URL also allows you to use a lower complexity QR code at the same print size — improving scan reliability across all devices.

7. Maintain high contrast

QR codes work on contrast — dark modules on a light background. The standard is black on white, which provides the maximum contrast ratio (21:1) for universal compatibility. Coloured QR codes can work, but require testing across many devices: camera algorithms vary, and some will fail to parse a dark-blue-on-navy code that looks fine to the human eye.

If you customise colours, ensure the module colour is significantly darker than the background. Never reverse a standard QR code (light modules on dark background) without verifying it scans reliably on ten or more different phones.

8. Choose the right error correction level

Error correction determines how much of the code can be damaged or obscured while still scanning successfully. Level H (30% recovery) is best for printed codes that will experience wear, for codes placed on curved surfaces (cups, bottles), and for any design that overlays a logo or graphic on the code. Level M (15%) is sufficient for clean digital environments or pristine print materials that won't be handled.

FlexQRSnapper uses Level H by default, which is the right choice for most business printing scenarios.

9. Place codes where people have time to scan

Context matters enormously. A QR code on a highway billboard that someone passes at 90 km/h is useless. QR codes work best where the user is stationary, curious, and has their phone accessible — table tops, product packaging, brochures, receipts, waiting areas, and event signage. Consider the user's mindset and dwell time before deciding where to place your code.

Similarly, avoid placing QR codes in locations where phone use is difficult: near checkout counters where hands are busy, in low-light areas without supplemental lighting, or on reflective surfaces that cause glare.

10. Verify the destination is live — and keep it live

A QR code is only as good as the URL it points to. If the destination page goes offline, is restructured, or returns a 404 error, every printed code becomes useless — and unfixable if it's a static code. Before and after printing, verify the URL resolves correctly. Set a calendar reminder to check critical printed materials quarterly.

If you expect the destination URL to change, consider using a URL shortener or redirect layer that you control, so you can update the destination without reprinting the code.

Bonus tip: add UTM parameters to your destination URL (?utm_source=print&utm_medium=qr&utm_campaign=menu) so Google Analytics can distinguish QR code traffic from direct or organic visits. This tells you exactly how many scans are converting to real traffic.

Ready to generate your QR code?

Free, watermark-free, 512px PNG. No sign-up required.

Generate for free →