QR Code Best Practices
A QR code is only useful if people scan it. Size, contrast, placement, and landing page quality all affect whether someone pulls out their phone or walks past. These best practices will help you create codes that actually get scanned.
Size and Printing Rules
The minimum print size for a QR code depends on scanning distance. At arm's length (about 30 cm), a 2 cm by 2 cm code works for most phones. For a poster viewed from 1-2 meters, the code should be at least 5 cm. For a billboard or large banner, calculate roughly 1 cm of QR code width per 15 cm of scanning distance.
Resolution matters as much as size. A QR code exported as a small PNG and then scaled up will look blurry and may not scan. Always export at the highest resolution available, or use SVG format which scales infinitely without quality loss. Honest QR's Pro plan includes SVG export for exactly this reason. For detailed sizing rules at various scanning distances, see honestqr.net/blog/qr-code-size-guide-minimum-print-size.
The quiet zone — the blank margin around the QR code — must be at least 4 modules wide (a module is one of the small squares in the pattern). Without this margin, scanners cannot detect where the code starts and the background ends. Many scanning failures happen because a designer cropped the quiet zone to fit a tight layout.
Print on a flat, non-reflective surface whenever possible. Glossy finishes can cause glare that interferes with scanning, especially under direct lighting. Matte finishes are more reliable. Our printing guide at honestqr.net/blog/how-to-print-qr-codes covers paper stock, finishes, and production tips in depth.
Color and Contrast
QR scanners rely on contrast between dark modules and light background to decode the pattern. The classic black-on-white combination has the highest contrast and is universally scannable. When you customize colors, the foreground (modules) should always be darker than the background.
Avoid these color combinations: yellow on white, light gray on white, light blue on white, or any pairing where the two colors have similar brightness. A good test is to view your QR code in grayscale — if the modules blend into the background, scanners will struggle.
Never invert the colors (light modules on a dark background) unless you have tested thoroughly. While many modern phone cameras can handle inverted codes, some older devices and third-party scanner apps cannot. If you must use a dark background, place the QR code inside a white container with adequate quiet zone.
Gradients across the QR code are risky. A gradient that transitions from dark at the top to light at the bottom will cause the lower modules to lose contrast. If you want a gradient effect, apply it to the page or card background, not to the QR code itself. For a full list of pitfalls to avoid, see honestqr.net/blog/qr-code-mistakes-to-avoid.
Placement and Context
Where you place a QR code matters as much as the code itself. The best placement gives people enough time and motivation to scan. A QR code on a subway ad that passes in 3 seconds will not get many scans. A code on a restaurant table where someone sits for 30 minutes will.
Always add a call to action near the QR code. A code by itself is ambiguous — people do not know what it links to or why they should scan it. A simple label like "Scan for menu" or "Scan to get 15% off" sets expectations and increases scan rates significantly. In fact, QR codes with a clear call-to-action consistently outperform unlabeled codes by 30-50%.
Consider the scanning environment. Indoor codes can be smaller because lighting is controlled and people are closer. Outdoor codes need to be larger and higher contrast to handle variable lighting. Codes on moving objects (vehicles, rotating displays) need to be large enough to capture quickly.
Avoid placing QR codes where people cannot use their phones — behind glass that causes reflections, in areas with no cellular signal (if the destination requires internet), or on surfaces that curve too much for the scanner to read the full pattern.
Landing Page Optimization
The QR code is just the entry point. What people see after scanning determines whether they engage or bounce. Your landing page must be mobile-optimized — 95% of QR scans happen on phones, so a desktop-only page is wasted effort.
Page load speed is critical. Someone who just scanned a QR code is giving you maybe 3 seconds of attention. If the page takes 5 seconds to load, they are gone. Aim for a page that loads in under 2 seconds on a mobile connection. Compress images, minimize JavaScript, and use a fast hosting provider.
The landing page should match the promise of your call to action. If the QR code said "Scan for menu," the page should show the menu immediately — not a homepage with a navigation bar where the menu is buried three taps deep. Direct, specific landing pages convert better than generic homepages.
For dynamic QR codes, you have the advantage of being able to change the destination over time. If you notice high scan rates but low engagement on the landing page, you can swap the URL to a better-optimized page without reprinting anything. This ability to iterate is one of the strongest arguments for using dynamic codes on printed materials.
Testing Before Printing
Never send a QR code to print without testing it first. Print a sample at the exact size and on the same material you plan to use for the final run. Scan it with at least three different devices — an iPhone, a recent Android phone, and an older device if possible.
Test in the lighting conditions where the code will be displayed. A code that scans perfectly under office fluorescent lights might fail in a dimly lit restaurant or under harsh outdoor sunlight. If you are placing codes near windows, test with direct sunlight hitting the code at an angle.
Verify the destination, not just the scan. A QR code that scans successfully but leads to a 404 page is worse than one that does not scan at all — at least a non-scanning code does not actively frustrate your audience.
For dynamic QR codes, test the redirect speed. Open the short URL in a browser and time the redirect. It should be near-instantaneous. If there is a noticeable delay, the issue might be with your destination server, not the QR code.
If you are printing a large batch, do a small test run first. Print 10-20 units, test each one, and only then approve the full production order. The cost of a small test batch is trivial compared to reprinting thousands of defective codes.
Static vs Dynamic: Choosing the Right Type
This decision should be made early because it cannot be changed later. If you use a static code and later need to change the URL, you must reprint everything. A dynamic code avoids this problem entirely.
Use static for content that will never change: your main website URL, a Wikipedia page, a personal LinkedIn profile. Static codes are free on Honest QR and work forever without depending on any service.
Use dynamic for anything going on printed materials, especially if the destination might change. Marketing campaigns, event links, seasonal promotions, and product pages all benefit from dynamic codes. At $19 one-time for the Pro plan on Honest QR, the cost of a dynamic code is negligible compared to the cost of reprinting.
For a deeper comparison, see our guide on static vs dynamic QR codes at honestqr.net/guides/static-vs-dynamic-qr-codes.
Frequently Asked Questions
What is the minimum size for a QR code?
For scanning at arm's length (about 30 cm), the QR code should be at least 2 cm by 2 cm. For longer scanning distances, increase the size proportionally — roughly 1 cm per 15 cm of distance.
Can I use colored QR codes?
Yes, but maintain high contrast. The modules (squares) should always be darker than the background. Avoid similar-brightness color pairs, and test with multiple devices before printing.
Do QR codes work without internet?
Static QR codes that encode plain text, WiFi credentials, or contact cards can be read without internet — the data is in the pattern itself. But QR codes that link to a URL require internet to open the destination page, and dynamic codes require internet for the redirect step as well.
How many times can a QR code be scanned?
There is no limit. Both static and dynamic QR codes can be scanned an unlimited number of times. They do not wear out or expire from use.
Ready to create your QR code?
Free static QR codes with a free account. Dynamic codes from $19 lifetime.