QR Code Best Practices: What Actually Makes a Code Get Scanned
Most QR codes fail quietly. Too small, wrong destination, no reason to scan, bad surface. The code isn't broken, it just earns nothing. Here are the QR code best practices that decide whether a code gets scanned, most of them settled before it's ever printed.
Sarah Johnson
Content Strategist
Most QR codes fail quietly. They get printed, distributed, and ignored, and the business that made them never finds out why. The code wasn't broken. It was too small, or pointed at the wrong thing, or gave people no reason to scan it, or sat on a surface that made scanning impossible. None of these problems announce themselves. The code just sits there earning nothing.
The difference between a QR code that works and one that wastes the space it occupies comes down to a handful of decisions, most of them made before the code is ever printed. This is the practical list of what those decisions are, why they matter, and how to get each one right.
Start With the Right Type: Static or Dynamic
This is the first decision and it shapes everything after it. A static QR code encodes its destination directly into the pattern. Once printed, it cannot change, and it records no data. A dynamic QR code encodes a redirect, so the destination can be updated anytime without reprinting, and every scan is tracked.
The rule is simple. If the destination will never change and you don't need scan data, static is fine, and it's free. For anything tied to a campaign, a promotion, a URL that might move, or anything you want to measure, use dynamic. The most expensive QR code mistake is printing a static code at volume and then needing to change where it points. Every copy becomes a dead end the moment the destination moves.
The full breakdown is in the static vs dynamic QR code guide, but for most business use the answer is dynamic, because business destinations change more often than people expect.
Size It for the Scanning Distance
A QR code that's too small for its viewing distance won't scan, no matter how perfect everything else is. The governing rule is the 10:1 ratio. The scanning distance should be no more than ten times the width of the code. A 1-inch code scans reliably from about 10 inches. A code meant to be read from 10 feet away needs to be roughly 1 foot wide.
Practical minimums by placement: about 0.8 to 1 inch on a business card, 1 to 1.5 inches on a flyer or product label, 2 inches or more on a poster, and substantially larger on anything read from across a room or a street. When in doubt, size up. A code that's slightly too big costs nothing. A code that's slightly too small costs you every scan it fails to register.
Protect the Quiet Zone
The quiet zone is the blank margin around the code. Scanners use it to detect where the code begins and ends. Without it, the code fails even at the right size. The minimum is four modules of clear space on all four sides, a module being one of the small squares that make up the code.
This is one of the most common failures when a designer shrinks a code to fit a tight layout or pushes it flush against other elements. The code looks fine to the eye and fails in the camera. Keep the margin clear, always.
Get the Contrast Right
Scanners read the contrast between the dark modules and the light background. The background needs to be significantly lighter than the foreground, dark code on a light background is the reliable standard. Reversing it, light code on a dark background, is possible but unreliable and needs rigorous testing before any print run.
Avoid low-contrast color combinations, busy patterns behind the code, and placing the code over a photograph. Branded colors are fine as long as the foreground stays dark and the background stays light. A stylish code that doesn't scan is not an asset. It's a liability with a logo on it.
Avoid Problem Surfaces
Where the code physically sits matters as much as how it's designed. Three surfaces cause consistent scan failures: curved surfaces like cups and bottles, which distort the pattern; glossy or foil finishes, which create glare that blinds the camera; and any reflective or metallic stock. If the design requires one of these, test exhaustively under the actual lighting the code will live in. Matte finishes outperform glossy every time for scannability.
Always Add a Call to Action
A bare QR code is a mystery box, and people don't scan mystery boxes. The single most reliable way to increase scans is to tell people what they get. "Scan for 20% off" beats "Scan me" because it answers the only question the viewer has: what's in it for me?
Be specific. "Scan to see the menu," "Scan to save my contact," "Scan to watch the setup video." Vague prompts underperform specific ones consistently, because specificity is what converts curiosity into action. A code without a call to action is leaving most of its potential scans on the table.
Point It at a Mobile-Ready Destination
Almost every scan happens on a phone. If the page behind the code loads slowly, isn't mobile-friendly, or buries the promised content, the scan is wasted after the work of earning it. The destination has to load fast on mobile and deliver exactly what the call to action promised.
A mismatch between the prompt and the destination quietly kills conversion. If the code says "Scan for 20% off" and opens a generic homepage, trust evaporates and the visitor leaves. The scan worked. The destination failed. Match what's behind the code to what the code promised.
One Code, One Purpose
The temptation is to make a single code do everything, reviews, social, the menu, a discount, all on one landing page. The result is a visitor who sees five options, picks none, and leaves. Each code should have one clear purpose and one clear action.
If you need to serve multiple goals, use separate codes in separate places rather than cramming them into one. A focused code converts. A cluttered one stalls.
Test Before You Print
Every failure above is catchable before a print run, and almost none are fixable after. Before committing to volume, scan the final code on both iOS and Android, using the native camera rather than a third-party app, at the actual size and distance it'll be used. Confirm it resolves to the right destination and loads quickly.
A two-minute test prevents the most expensive QR code mistake there is: discovering a problem after ten thousand copies are already printed and distributed.
Use Dynamic Codes to Measure and Improve
The best practice that compounds over time is measurement. A dynamic code records every scan, when it happened, what device was used, and where. That data turns guesswork into decisions. You learn which placement drives the most scans, when your audience is most active, and which materials are worth reprinting.
The businesses that get the most from QR codes aren't the ones with the most codes. They're the ones who look at the data and adjust. QrBreeze provides dynamic codes with scan analytics and campaign tracking, so the person who owns the code can see what's working and change what isn't. That feedback loop is what separates a QR code that just exists from one that earns its place.
Frequently Asked Questions
What is the most common QR code mistake?
Using a static code at volume when the destination might change. Once a static code is printed, its destination is fixed, so any change means every printed copy is dead. For anything that might update, a dynamic code prevents this entirely.
What size should a QR code be?
Follow the 10:1 rule. The scanning distance should be no more than ten times the code's width. Roughly 0.8 to 1 inch on a business card, 1 to 1.5 inches on a flyer, 2 inches or more on a poster, and larger for anything read from a distance.
Why won't my QR code scan?
Usually one of four reasons: it's too small for the viewing distance, it lacks a clear quiet zone around it, it has poor contrast or sits on a busy background, or it's on a glossy or curved surface causing glare. Test on a real phone before printing to catch all four.
Do I need a call to action next to a QR code?
Yes. A bare code gives people no reason to scan. A short, specific prompt like "Scan for the menu" or "Scan to save 20%" significantly increases scans by telling people exactly what they get.
Should I use a static or dynamic QR code?
Static if the destination will never change and you don't need scan data, since it's free and permanent. Dynamic for anything tied to a campaign, a destination that might move, or anything you want to track. Most business use cases are better served by dynamic.
Enjoyed this article?
Share it with your network
Was this article helpful?
Let us know if this article was useful to you
Written by
Sarah Johnson
Content Strategist
Sarah is a content strategist with 8+ years of experience in digital marketing. She specializes in helping businesses leverage technology to improve customer experiences.




