QR Code Best Practices for Business — Sizing, Design & Tracking
QR codes look simple. Black squares on a white background. But the difference between a QR code that gets scanned and one that gets ignored comes down to a handful of decisions made before the code ever hits paper or screen. Here's what actually matters.
Why QR Codes Still Matter for Business
Statista reported 89 million smartphone users scanned a QR code in the US alone during 2022 — up 26% from 2020. That number has only grown since. The pandemic pushed QR codes into restaurant menus, contactless payments, and event check-ins, and the behavior stuck. People know what QR codes are now. They don't hesitate to scan them.
For businesses, that means QR codes are one of the cheapest bridges between physical and digital. A sticker costs pennies. A print ad already has the real estate. The question isn't whether to use QR codes — it's how to use them well enough that people actually follow through.
Get the Size Right
This is where most QR code failures start. A code that's too small won't scan. A code that's too large wastes space and looks amateurish.
The 10:1 rule
Divide the expected scanning distance by 10. That's your minimum code dimension. Some real examples:
| Placement | Scan distance | Minimum size |
|---|---|---|
| Business card | 15-20 cm | 2 cm (0.8 in) |
| Product packaging | 20-30 cm | 2.5 cm (1 in) |
| Table tent / flyer | 30-50 cm | 3-5 cm (1.2-2 in) |
| Poster (indoor) | 1-2 meters | 10-20 cm (4-8 in) |
| Billboard / banner | 5+ meters | 50+ cm (20+ in) |
These are minimums. Going 20-30% larger gives you a safety margin for less-than-ideal lighting or older phone cameras. And remember: a QR code encoding a long URL has more modules (tiny squares) packed into the same space, making each module smaller and harder to read. Short URLs produce cleaner, more forgiving codes.
Print resolution
For anything going to a printer, export at 300 DPI minimum. SVG or PDF formats are ideal — they're vector-based, so they scale without pixelation. PNG works too, but you'll need to generate it at the right resolution upfront. A QR code that looks sharp on screen can turn into a blurry mess on a printed business card if the source file was only 200 pixels wide.
Choose the Right Error Correction Level
Every QR code includes built-in redundancy using Reed-Solomon error correction. If part of the code gets scratched, smudged, or covered, the scanner can still reconstruct the data. You pick how much redundancy to include:
| Level | Data recovery | Best for |
|---|---|---|
| L (Low) | ~7% | Digital screens, controlled environments |
| M (Medium) | ~15% | Business cards, flyers, most print |
| Q (Quartile) | ~25% | Product labels, moderate wear expected |
| H (High) | ~30% | Logo overlays, outdoor signage, warehouses |
The catch: higher error correction means a denser code. More modules packed into the same area. Level H with a 100-character URL creates a noticeably busier pattern than Level L with the same data. For most business uses — printed collateral, packaging, event materials — Level M hits the sweet spot between resilience and scannability.
Placement That Actually Gets Scanned
A perfectly sized, well-generated QR code still fails if nobody notices it — or if they can't physically reach it with their phone.
Eye level and arm's reach
People scan QR codes with their phones. That means holding a phone steady, pointing the camera, and waiting a beat. If the code is on the floor, above a doorframe, or behind glass with glare, the scan rate drops to near zero. Place codes between chest and eye height — roughly 100-170 cm off the ground for standing adults.
Give it context
A bare QR code with no explanation gets ignored. Always include a short call-to-action near the code. Not just "Scan me" — tell people what they'll get:
- "Scan for the full menu"
- "Scan to get 15% off your first order"
- "Scan to RSVP — takes 10 seconds"
- "Scan for Wi-Fi password"
Specificity matters. A Juniper Research study found that QR codes with a clear value proposition had 2-3x higher scan rates than codes with generic "Scan here" labels.
Don't put QR codes in these places
Subway ads visible only from a moving train. Highway billboards. The bottom of emails (just make the link clickable). Anywhere without cell signal or Wi-Fi. These sound obvious, but they show up constantly in real campaigns. If someone can't hold their phone steady and pointed at the code for 1-2 seconds, pick a different format.
Design Tips That Don't Break Scannability
Brand managers want QR codes to match their visual identity. Fair enough. But every design modification eats into the reliability margin. Here's what's safe and what's risky.
Safe modifications
- Custom foreground color — dark purple, navy, or dark green modules instead of black. Works great as long as you maintain strong contrast against a light background. Aim for a contrast ratio of at least 4.5:1.
- Rounded module corners — swapping sharp squares for slightly rounded shapes. Most scanners handle this without issues.
- Small center logo — with error correction set to H, you can overlay a logo covering up to 15-20% of the code's area. Keep the logo simple and square-ish.
Risky modifications
- Inverted colors (light modules on dark background) — many older Android devices and budget phones struggle with inverted codes. If more than 5% of your audience uses older devices, stick with dark-on-light.
- Gradient fills — a gradient across the code means some modules have lower contrast than others. The weakest-contrast area becomes the failure point.
- Custom finder patterns — those three big squares in the corners aren't decorative. Scanners use their exact geometry to detect and orient the code. Reshaping them can cause total scan failure on some devices.
- Low-contrast brand colors — yellow modules on a white background, or light gray on white. If you can't read it easily with your eyes, a camera can't either.
Tracking QR Code Performance
Printing a QR code without tracking is like running an ad with no analytics. You'll never know what worked. There are two main approaches.
UTM parameters (simple, free)
Append UTM tags to the destination URL before encoding it:
https://yoursite.com/landing?utm_source=flyer&utm_medium=qr&utm_campaign=spring2026
Your analytics platform (Google Analytics, Plausible, GoatCounter, etc.) picks up these parameters automatically. Create a unique utm_campaign value for each physical placement — one for the store window, one for the trade show booth, one for the product insert. That way you can compare scan rates across locations.
Downside: UTM parameters make the URL longer, which increases code density. Use a URL shortener on your own domain if the encoded URL exceeds 80 characters.
Dynamic QR codes (flexible, but dependent)
A dynamic QR code points to a redirect URL. The redirect service logs every scan (timestamp, location, device type) and lets you change the destination without reprinting. This is useful for campaigns where you might want to A/B test landing pages or rotate seasonal offers.
The tradeoff is dependency. If the redirect service goes down or changes pricing, your printed codes break. For anything with a lifespan beyond a few months — product packaging, permanent signage, business cards — encode the final URL directly and track with UTM parameters instead.
Testing Your QR Codes
This section exists because skipping testing is the single most common QR code mistake in business. Every print shop has stories of 10,000-unit runs where the QR code didn't scan.
Pre-print checklist
- Scan the digital file on 3+ devices before sending to print.
- Print a proof at actual size. Scan the physical proof — screens and paper render differently.
- Check the destination URL loads correctly on mobile. A working QR code that leads to a broken page is worse than no code at all.
- Test at the intended distance. If the code goes on a poster, stand back 2 meters and try scanning.
- Test at angles. People rarely scan straight-on. Try 30-45 degree angles.
- Test in poor lighting. Dim restaurant, bright sunlight with glare, fluorescent office light.
Common QR Code Mistakes
These come up repeatedly across industries. Avoid them and you're already ahead of 80% of QR code implementations.
- Encoding a URL that redirects multiple times. Each redirect adds latency. Three redirects can turn a 1-second load into 5 seconds on mobile. Encode the shortest possible path to the final destination.
- No quiet zone. The blank margin around a QR code (minimum 4 modules wide) is part of the spec, not optional whitespace. Cropping it or placing design elements too close causes scan failures.
- Using a QR code where a link would work. QR codes in emails, tweets, or web pages make no sense — the user is already on a device that can click a link. QR codes bridge physical to digital, not digital to digital.
- Linking to a non-mobile-friendly page. 97% of QR code scans happen on smartphones. If the landing page isn't responsive, you've wasted the scan.
- No call to action. A naked QR code triggers curiosity in about 10% of people. Adding "Scan for 20% off" or "Scan to see the demo" can triple that number.
- Printing at low resolution. A QR code exported at 72 DPI looks fine on screen but turns into an unreadable blur on a business card. Always 300 DPI or vector.
- Never testing the printed version. The code worked on screen. It doesn't work on the matte paper stock your printer used. Test the actual physical output.
QR Code Marketing: What Works
The businesses getting real value from QR code marketing share a few traits. They're not just slapping codes on things — they're connecting a physical moment to a digital action that benefits the customer immediately.
Restaurant table ordering
A QR code on each table that opens the full menu with photos and prices. Some chains report 15-20% higher average order values from digital menus because customers browse more items than they would on a single-page paper menu. The code needs to load fast — under 2 seconds — or diners give up and flag a waiter instead.
Product packaging inserts
A QR code inside the box that links to setup instructions, warranty registration, or a feedback form. Dyson does this well: scan the code, and you get a video walkthrough specific to your exact model. The key is making the digital content genuinely useful, not just a marketing page.
Event and conference badges
Networking at trade shows is slow when everyone's typing contact info manually. A QR code on your badge that encodes your vCard — name, title, email, phone, LinkedIn — lets someone scan and save your details in 2 seconds. Some conferences now print unique QR codes on every badge for exactly this purpose.
Retail window displays
Storefronts that close at 6 PM can still convert foot traffic at 9 PM with a QR code on the window. "Scan to shop online" or "Scan to book an appointment" turns a closed-door moment into a lead. Make sure the code is large enough to scan from sidewalk distance (the 10:1 rule again) and that there's no glass glare obscuring it.
Generate QR codes for free — no signup, no watermarks, no limits.
Try qrmcp.devQuick Reference: QR Code Best Practices Checklist
- Keep the encoded URL under 80 characters when possible
- Use the 10:1 rule for sizing (scan distance ÷ 10 = minimum code size)
- Export at 300 DPI or use SVG/PDF for print
- Error correction Level M for most uses, Level H for logo overlays
- Maintain 4+ module quiet zone around the code
- Dark foreground on light background, contrast ratio 4.5:1+
- Include a specific call-to-action next to every code
- Add UTM parameters for tracking
- Test on 3+ devices at the intended distance and lighting
- Test the printed proof, not just the screen version
- Make sure the landing page is mobile-friendly and loads fast
For a deeper look at how QR codes work under the hood — encoding modes, versions, error correction math, and styled code techniques — see the full How to Generate QR Codes guide.
Frequently Asked Questions
example.com/landing?utm_source=flyer&utm_medium=qr&utm_campaign=spring2026. Your analytics tool (Google Analytics, Plausible, etc.) will then attribute traffic from each QR code separately. Alternatively, use a dynamic QR code service that provides its own scan analytics dashboard.yourdomain.com/go/spring) and redirecting it server-side.