QR Code Design Best Practices: 15 Rules for Codes That Actually Get Scanned
Learn 15 proven QR code design best practices — from color contrast and logo placement to sizing and error correction. Includes a printable design checklist and industry-specific examples for business cards, packaging, menus, real estate, and events.
Design Your Custom QR Code
Create branded QR codes with custom colors, logos, and styling — then track every scan with real-time analytics
Why QR Code Design Matters More Than You Think
A well-placed QR code with a poor design might as well be a decorative square. According to scan data across thousands of campaigns, QR codes with intentional design choices receive up to 40% more scans than default black-and-white codes slapped onto print materials as an afterthought. The gap between a code that gets scanned and one that gets ignored often comes down to decisions made in the design phase.
Most people treat QR code design as purely cosmetic. Pick a brand color, maybe drop in a logo, and call it done. But QR code design is fundamentally about functionality. A code with insufficient contrast won't scan in bright sunlight. A logo that's too large will obscure critical data modules. Colors that look great on screen may fail completely on a matte-finish flyer.
The ISO 18004 standard that governs QR code structure is precise. There's very little room for improvisation in the areas that matter. The three finder patterns (the large squares in the corners) must remain intact. The alignment patterns need to be visible. The quiet zone around the code needs adequate space. Violate any of these, and you'll produce a code that looks professional but fails to scan.
Here's the good news. You can create a branded QR code that looks fantastic and scans perfectly on every device. You just need to know the rules before you start bending them. These 15 QR code design best practices will show you how to create codes that are visually compelling, technically sound, and built to perform.
15 QR Code Design Best Practices
1. Maintain High Contrast Between Foreground and Background
Contrast is the single most important factor in QR code scannability. Phone cameras need to distinguish between the dark modules (data squares) and the light background. When that distinction blurs, scanning fails.
Aim for a minimum contrast ratio of 40% between your foreground and background colors. In practical terms, this means your dark elements need to be genuinely dark and your light elements need to be genuinely light. A medium gray on a slightly lighter gray will cause problems on older phones and in low-light conditions.
One common mistake is inverting the code, placing white modules on a dark background. While some modern phone cameras can decode inverted codes, many older devices cannot. Android phones running older versions of Google Lens and some third-party scanner apps struggle with inverted codes. Unless you can guarantee that your audience uses the latest devices, stick with dark modules on a light background. It's the format that the ISO standard was designed around, and it works reliably across all devices and lighting conditions.
2. Choose Colors Carefully
Color is where brand identity meets technical constraint. You absolutely can use QR code colors beyond black and white, but the color choices need to follow a few hard rules.
Always keep the foreground color darker than the background. Navy blue on white, dark green on cream, charcoal on light yellow — these all work well. Light blue on white, yellow on beige, light pink on off-white — these will fail.
Avoid red-green color combinations. Approximately 8% of men and 0.5% of women have some form of red-green color vision deficiency. A red QR code on a green background (or vice versa) may be functionally invisible to those users. Beyond accessibility, red-green combos also tend to produce lower contrast ratios than they appear to have on screen.
Test your color choices in grayscale. If the foreground and background are difficult to distinguish in grayscale, the contrast is too low. This is a quick, reliable test that catches problems before you print 10,000 flyers.
The safest high-performing color combinations for custom QR code design include dark blue on white, black on light yellow, dark purple on white, and dark teal on cream. These maintain excellent contrast while looking intentionally branded rather than default.
3. Add Your Logo Without Killing Scannability
A QR code with logo is one of the most effective ways to build brand recognition into your print materials. It signals to the scanner that this code belongs to your business, which can increase scan rates and trust. But a logo that's too large or poorly placed will destroy the code's ability to function.
The rule is simple. Keep your logo under 30% of the total QR code area. Anything larger risks obscuring too many data modules for the error correction to recover.
Center placement is the safest position for a logo. The center of a QR code contains the least critical data modules and sits away from the three finder patterns (the large squares in the corners) and alignment patterns. If your logo sits directly on top of a finder pattern, the code will not scan. Period.
Use a clean, simple version of your logo. A detailed, multi-color logo with fine text won't be legible at QR code scale anyway. A simplified icon or logomark works far better. Add a small white or light-colored padding box behind the logo to ensure it contrasts cleanly against the QR code's modules.
4. Use Error Correction Level H for Branded Codes
QR codes have a built-in redundancy system called error correction. This allows the code to remain scannable even when part of it is damaged, dirty, or covered by a logo. There are four levels.
- Level L (Low) — recovers up to 7% of damaged data
- Level M (Medium) — recovers up to 15% of damaged data
- Level Q (Quartile) — recovers up to 25% of damaged data
- Level H (High) — recovers up to 30% of damaged data
If you're creating a QR code with logo, use Level H. This gives you 30% recovery capacity, which aligns with the 30% maximum logo coverage rule. The code can lose nearly a third of its modules and still scan correctly.
For plain codes without logos or design overlays, Level M is a solid default. It provides enough error correction to handle minor print imperfections, scuffs, and dirt without making the code unnecessarily complex. Higher error correction levels add more modules to the code, which means the individual squares are smaller at the same physical size. This trade-off matters when printing at small sizes.
The takeaway: if you're customizing your code's appearance in any way that covers modules, set the error correction to H before generating it.
5. Respect the Quiet Zone
The quiet zone is the blank margin surrounding your QR code on all four sides. It's not wasted space. It's the mechanism that tells scanners where the QR code starts and where the surrounding content ends.
The minimum quiet zone is 4 modules wide. A "module" is the smallest square unit in the QR code grid. If the individual squares in your code are 2mm each, you need at least 8mm of blank space on all sides.
In practice, a margin equal to roughly 10-15% of the code's total width satisfies the quiet zone requirement for most QR code versions. A 2-inch code needs about 0.2-0.3 inches of margin.
Quiet zone violations are one of the most common QR code design mistakes. Designers frequently push other elements — text, borders, background graphics — right up to the edge of the code. When a phone camera captures the code, it can't determine where the code boundary is, and scanning fails. This is especially problematic on busy backgrounds like full-color photographs, patterned wallpaper, or densely printed packaging.
If you're placing a QR code on a dark or busy background, add a white padding box around the code that includes the quiet zone. This creates a clean visual boundary and satisfies the technical requirement.
6. Size Your QR Code Correctly
An undersized QR code won't scan no matter how perfect the contrast and design are. The foundational sizing principle is the 10:1 scanning distance ratio. Your QR code's smallest dimension should be approximately one-tenth of the expected scanning distance.
Scanning from 12 inches (a business card in hand)? The code should be at least 1.2 inches. Scanning from 5 feet (a wall poster)? The code needs to be at least 6 inches. Scanning from 30 feet (a large banner)? You're looking at 36 inches minimum.
This ratio accounts for variations in smartphone camera quality, real-world lighting, and the fact that people rarely scan from the exact optimal angle. Building in the 10:1 margin ensures reliable scanning across devices and conditions.
For a complete sizing table by use case, see our QR code size guide. It covers specific dimensions for business cards, posters, vehicle wraps, yard signs, billboards, and more — including DPI requirements for each.
7. Keep the Data Payload Small
The amount of data encoded in a QR code directly affects its physical complexity. More characters in the encoded string means more modules in the grid. More modules means smaller individual squares at a given print size. Smaller squares means harder scanning.
A QR code encoding a 20-character URL (https://qri.to/abc) has far fewer modules than one encoding a 150-character URL (https://www.yourcompany.com/products/summer-collection/2026-edition?utm_source=flyer&utm_medium=print). The visual difference is dramatic.
This is one of the strongest arguments for dynamic QR codes. A dynamic code always encodes a short redirect URL, regardless of how long the actual destination URL is. This keeps the code visually simple, scannable, and printable at smaller sizes. For a detailed comparison, read our guide on static vs dynamic QR codes explained.
The same principle applies to vCard codes, WiFi codes, and other data-heavy types. The more information you stuff into the code, the harder it becomes to scan. When possible, encode only the minimum data needed and host the rest on a landing page.
8. Always Add a Call-to-Action Near the Code
A QR code without a call-to-action is a square of dots with no context. People need a reason to scan. Data consistently shows that QR codes paired with a clear CTA receive 30-50% more scans than codes presented without any supporting text.
Effective CTAs are specific and benefit-driven. "Scan for menu" tells the user exactly what they'll get. "Scan to save 20% on your next order" adds an incentive. "Scan to save this contact" explains the action in plain terms.
Weak CTAs include "Scan me" (tells the user nothing about the outcome), "Learn more" (too vague), and "Visit our website" (not compelling enough to pull out a phone).
Place the CTA text directly above, below, or beside the QR code. It should be visually connected to the code so there's no ambiguity about which code the text refers to. On print materials with multiple QR codes, each code needs its own CTA.
9. Customize Shapes and Corners Thoughtfully
Modern QR code generators offer options to modify the shape of the individual modules. You can use rounded dots, diamond shapes, or other custom patterns instead of standard squares. These customizations can make your custom QR code design feel more on-brand and visually distinct.
The rules for shape customization are straightforward. Never modify the three finder patterns. These are the large square-within-a-square elements in three corners of the code. They're how phone cameras identify and orient the QR code. Changing their shape, removing their borders, or overlaying graphics on them will prevent scanning.
Rounded corners on individual modules generally work fine. The scanner reads the contrast between dark and light areas, not the precise geometry of each square. As long as the rounded modules clearly occupy their grid position and maintain good contrast, they'll scan reliably.
Similarly, custom dot shapes (circles, rounded squares, small diamonds) work well as long as they're not so small that they fail to fill their grid cell. A tiny circle that only occupies 50% of its module's area may not register on camera. Aim for shapes that fill at least 70% of each module space.
10. Consider the Surface Material
The physical surface where your QR code will live affects scannability in ways that screen previews can't predict.
Glossy surfaces create glare. A QR code on a high-gloss brochure or laminated sign will reflect overhead lighting directly into the phone's camera, washing out the contrast. If you must use a glossy surface, position the QR code where it's less likely to catch direct light, or use a matte laminate over just the code area.
Curved surfaces (bottles, cans, cylindrical packaging) distort the code's geometry. When the code wraps around a curve, the modules at the edges stretch and compress. For curved applications, keep the code small enough that it sits on a relatively flat portion of the surface, and consider increasing the size by 20-30% to compensate.
Transparent materials (glass, clear plastic) require special attention. A QR code printed on a clear window decal will pick up whatever is behind the glass as its background. Add an opaque white backing behind the code to ensure consistent contrast.
Textured materials (canvas, rough cardboard, fabric) can break up the clean edges of the modules. Use bolder printing and slightly larger code sizes to compensate for texture interference.
11. Choose the Right File Format
The file format you use to export your QR code determines its quality at every size. Get this wrong and you'll end up with a blurry, pixelated code that scans poorly or not at all.
SVG (Scalable Vector Graphics) is the best format for print. Vector files scale to any size without losing quality because they're defined by mathematical paths, not pixels. A QR code saved as SVG will look just as sharp on a billboard as it does on a business card. If your printer accepts SVG or PDF, use one of these formats.
PNG (Portable Network Graphics) is ideal for digital applications. PNG uses lossless compression, so the sharp edges of your QR code modules remain crisp. For print, generate your PNG at a high pixel count (at least 3000x3000 pixels for most applications) to ensure sufficient resolution.
Never use JPEG. JPEG compression is designed for photographs, and it works by smoothing transitions between colors. That smoothing destroys the sharp module edges that scanners depend on. Even at high quality settings, JPEG introduces artifacts around the borders of each square. For QR codes, JPEG is always the wrong choice.
For print materials, maintain a minimum of 300 DPI at the final printed size. A 1-inch QR code at 300 DPI needs to be at least 300x300 pixels. A 4-inch code needs 1200x1200 pixels. When in doubt, export larger than you think you'll need. You can always scale down without quality loss. You can never scale up.
12. Test Before You Print
No amount of design knowledge replaces real-world testing. Before approving any print run, test your QR code on multiple devices in realistic conditions.
Test on at least three different phones. Include one iPhone, one recent Android device, and one older or budget phone. Camera quality varies dramatically across devices, and a code that scans instantly on an iPhone 16 might struggle on a three-year-old budget Android.
Test in multiple lighting conditions. Indoor fluorescent lighting, outdoor sunlight, dim restaurant lighting, and direct lamp light all affect scannability differently. If your code will be used in a specific environment (a restaurant table, a trade show booth, a retail shelf), test in that exact environment.
Test at the expected scanning distance. Don't just hold the code six inches from your camera and declare it working. Simulate the actual distance your audience will scan from. A poster in a hallway needs to scan from several feet away. A table tent needs to scan from 12-18 inches.
Test after printing. Screen proofs don't reveal print-specific issues like ink bleed, color shifts, or texture interference. Print a test sheet on the actual material you'll use and scan it before committing to a full production run.
13. Use Dynamic QR Codes for Tracking and Flexibility
Static QR codes are permanent. Once printed, their destination is fixed, and there's no way to know if anyone scanned them. Dynamic QR codes solve both problems by routing scans through a redirect server that you control.
With a dynamic code, you can change the destination URL after printing. A seasonal promotion can point to a new landing page without reprinting materials. A product recall can redirect to updated safety information instantly. This flexibility alone saves businesses thousands of dollars in reprint costs.
More importantly for design purposes, dynamic codes turn every branded QR code into a data collection tool with real-time scan analytics. You can track total scans, unique scanners, geographic locations, device types, time-of-day patterns, and more. This data tells you which design approaches actually perform and allows you to A/B test different code designs across placements.
For a deep dive into the metrics that matter, read our QR code analytics and metrics guide. It covers benchmarks by industry, the most valuable tracking metrics, and how to interpret scan data for campaign optimization.
14. Design for Accessibility
Accessible QR code design ensures that people with visual impairments, motor difficulties, or other disabilities can use your codes effectively.
Contrast matters for accessibility, too. The Web Content Accessibility Guidelines (WCAG) recommend a minimum contrast ratio of 4.5:1 for text. While QR codes aren't text, aiming for this ratio ensures your code is readable by users with low vision or color deficiencies. Most contrast guidelines for QR codes already exceed this threshold, but it's worth verifying with a contrast checking tool.
Don't rely on color alone to communicate meaning. If you use different colored QR codes for different purposes (blue for menus, green for discounts), also differentiate them with text labels, icons, or placement. Users who can't distinguish the colors need another way to identify which code does what.
Include descriptive text near every code. A CTA like "Scan to view our full dinner menu" serves double duty. It gives sighted users a reason to scan and helps screen reader users (or anyone who can't scan the code) understand what's behind it.
Ensure the code is physically reachable. Placing a QR code seven feet high on a wall looks dramatic but excludes wheelchair users and shorter individuals. Position codes at a height and location accessible to all users, ideally between 3 and 5 feet from the floor.
15. Avoid These Common Design Mistakes
Some QR code design errors are so common they deserve their own section. Any one of these mistakes can render an otherwise well-designed code useless.
Stretching or distorting the code. QR codes must be perfectly square. Dragging one edge to make it fit a rectangular space will skew the module proportions and break scanning. If the code doesn't fit the available space, resize it proportionally or redesign the layout.
Printing too small. The impulse to make the QR code "subtle" or "unobtrusive" leads to codes that are too small to scan. Your code needs to be large enough that individual modules are distinguishable at the expected scanning distance. Subtlety is not worth zero scans.
Low contrast that looks fine on screen but fails in print. Monitor calibration, paper stock, and ink coverage all affect the final contrast. Always test a printed sample.
Covering finder patterns with logos or graphics. The three large squares in the corners are sacred. They're how the camera identifies the image as a QR code. Cover them, and the code becomes an abstract pattern.
No CTA text. This is the easiest fix on the list and one of the highest-impact. A few words of context can increase scans by 30% or more.
Using JPEG format. It bears repeating. JPEG compression artifacts blur module edges and cause scan failures. Use PNG or SVG exclusively.
QR Code Design for Specific Use Cases
The 15 practices above apply everywhere, but each use case has specific considerations that make the difference between a code that performs and one that collects dust.
Business Cards
Business cards are one of the most constrained environments for QR code design. Space is limited, and the code needs to scan from close range (6-12 inches).
- Minimum size is 1 inch (2.5 cm). Anything smaller risks scan failures on older phones. The 0.8-inch absolute minimum works only under ideal conditions.
- Use a vCard QR code that saves your contact information directly to the phone. This is far more useful than a link to your website.
- Place the code on the back of the card where it has room to breathe. Front placement often violates the quiet zone because other design elements crowd the code.
- Keep the encoded data minimal. A vCard with name, phone, email, and website is plenty. Adding a street address, title, and company description creates a dense code that needs more physical space.
- Stick with high-contrast colors. Business cards are often viewed in varied lighting, from well-lit conference halls to dim restaurants. Strong contrast ensures reliability.
Product Packaging
Packaging QR codes face unique challenges including curved surfaces, varying materials, and regulatory requirements.
- Account for curved surfaces by placing the code on the flattest part of the package. On bottles and cans, the front label typically offers the most planar surface.
- Test durability. Packaging gets handled, stacked, and exposed to moisture. Print a test code and subject it to the conditions your product will face. Scratched or smudged codes need Level H error correction.
- Consider regulatory placement. In some industries, QR codes linking to nutritional information or safety data sheets have specific placement requirements. Check applicable regulations before finalizing your design.
- Size generously. A product on a retail shelf may be scanned from 18-24 inches away. A 1.5-inch code is a solid minimum for most packaging applications.
- Use matte or satin finishes over the code area to reduce glare under retail lighting.
Restaurant Menus
Restaurant QR codes became ubiquitous during the pandemic, and diners now expect a smooth scanning experience. Poor design stands out.
- Table tent codes need to be at least 1.5 inches. Diners scan from 12-18 inches while seated. A 2-inch code provides comfortable margin.
- Outdoor dining requires weatherproof materials. UV-resistant lamination or waterproof substrates prevent fading and smudging. Reprint outdoor codes seasonally regardless, since sun exposure degrades print quality over time.
- Link to a mobile-optimized menu page, not a PDF. PDFs require pinching and zooming on phones. A responsive menu page provides a much better experience.
- Include a clear CTA. "Scan for our menu" is better than a QR code sitting alone on a table tent. "Scan to see today's specials" is even better because it implies fresh content.
- Use a dynamic QR code so you can update menu items, prices, and seasonal offerings without reprinting the table tents.
Real Estate
Real estate professionals use QR codes across multiple formats, each with different environmental conditions and scanning distances.
- Yard signs are scanned from 5-10 feet away, often while the scanner is walking or driving slowly. A minimum of 6 inches is necessary, with 8 inches recommended. Factor in outdoor conditions, sun exposure, and rain when choosing materials.
- Flyers and brochures are scanned at close range. A 1.5-inch code works well. Link to a property listing page with full details, photos, and agent contact information rather than just the MLS listing.
- Open house sign-in sheets can use smaller codes (1 inch) since visitors scan at arm's length. Link to a digital sign-in form that captures visitor information.
- Lockbox flyers need weatherproof printing and a code that works in all lighting conditions, including the shade of a front porch. High contrast and Level M error correction are essential.
- All real estate codes should be dynamic so you can redirect to a new listing when the property sells, rather than having dead codes on yard signs around the neighborhood.
Events
Events involve multiple touchpoints, each with different QR code requirements.
- Badges and lanyards place the code at close scanning range. A 1-inch code works. Link to the attendee's profile or contact card for easy networking.
- Stage banners and backdrops need large codes (12+ inches) that can be scanned from the audience. These are often photographed rather than scanned live, so ensure the code is legible even in photos.
- Tickets (both print and digital) use codes for entry validation. These need fast scanning, which means simple codes with low data density and strong contrast.
- Table signage at conferences, galas, or breakout sessions should link to session details, speaker bios, or feedback forms. Use 1.5-2 inch codes with clear CTAs explaining what the scan delivers.
- Use different codes for different actions rather than one code that tries to do everything. A registration code, a feedback code, and a WiFi code each serve distinct purposes and should be visually differentiated (by color, placement, or CTA text).
QR Code Design Checklist
Bookmark this quick-reference summary of QR code design best practices and run through it before finalizing any code for print or digital distribution.
- Contrast ratio above 40% between foreground and background
- Dark foreground, light background (not inverted)
- Logo covers less than 30% of total QR code area
- Error correction set to H (if using a logo or overlay)
- Quiet zone is at least 4 modules wide on all sides
- Size meets the 10:1 scanning distance rule
- Short URL encoded (using a dynamic QR code)
- Clear, benefit-driven CTA text placed near the code
- Finder patterns (three corner squares) are unmodified and fully visible
- Tested on 3+ devices (iPhone, Android, older model)
- Tested in realistic lighting and at expected scanning distance
- Print resolution is 300+ DPI for close-range materials
- File format is SVG or PNG (never JPEG)
- Surface material and finish accounted for (matte preferred over glossy)
- Accessibility requirements met (contrast, placement height, text labels)
Print this list and tape it next to your monitor. It takes 60 seconds to run through and can save you from expensive reprints and failed campaigns. Following these QR code design best practices consistently will put you ahead of the vast majority of businesses still printing default black-and-white codes with no thought given to contrast, sizing, or scannability.
Frequently Asked Questions
What is the best color for a QR code?
The best-performing QR code colors are dark foregrounds on light backgrounds. Dark blue on white is one of the most popular choices because it offers high contrast, reads as professional, and scans reliably across all devices and lighting conditions. Dark green, dark purple, and dark teal on white or cream backgrounds also perform well. The key is ensuring a significant contrast difference between the foreground modules and the background. Avoid light-colored foregrounds (yellow, light pink, pale gray) as they often fail to scan, especially on white backgrounds.
Can you put a logo in a QR code?
Yes. A QR code with logo is created by placing your logo in the center of the code and setting the error correction level to H (High). This allows the code to remain scannable even with up to 30% of its modules obscured. Keep your logo under 30% of the total code area, use a simplified version of your logo or icon, and add a small white padding behind the logo for clean contrast. Never place a logo over the three finder patterns in the corners of the code.
What size should a QR code be?
The correct size depends on the scanning distance. Use the 10:1 rule as your baseline. The code's width should be at least one-tenth of the expected scanning distance. A business card code scanned at 12 inches should be at least 1.2 inches wide. A poster code scanned from 5 feet should be at least 6 inches. The absolute minimum for any QR code is 2cm (0.8 inches), and outdoor codes should be 25-50% larger than the 10:1 calculation to account for sunlight and movement.
Do QR codes work in color?
Yes. QR codes work in any color combination that maintains sufficient contrast between the foreground modules and the background. The important thing is the contrast ratio, not the specific colors used. Dark modules on a light background is the standard approach. Custom QR code colors can increase brand recognition and scan rates compared to plain black-and-white codes, as long as the design follows proper contrast guidelines and the practices outlined above.
How do I make a QR code look professional?
Professional QR code design starts with intentional color choices that match your brand palette. Use a custom QR code design with your brand's dark color for the modules and white or a light brand color for the background. Add your logo to the center with appropriate error correction. Include a clear, well-designed CTA near the code. Use rounded module shapes for a modern feel. Ensure the code is properly sized with an adequate quiet zone. Most importantly, make the code look like a deliberate part of your design rather than an afterthought added at the last minute.
What is the quiet zone on a QR code?
The QR code quiet zone is the blank margin surrounding the code on all four sides. It serves a technical purpose, allowing phone cameras and scanner apps to detect where the QR code begins and where surrounding content ends. The minimum quiet zone is 4 modules wide (where a "module" is the smallest square in the code's grid). In practice, this translates to a margin of roughly 10-15% of the code's total width. Without an adequate quiet zone, scanners may fail to recognize the code or may attempt to include surrounding text and graphics as part of the code, causing errors.
Should QR codes be black and white?
QR codes do not need to be black and white. Black on white is the default because it provides maximum contrast, but any dark-on-light color combination with sufficient contrast will scan reliably. Custom-colored QR codes using company brand palettes consistently outperform plain black-and-white codes in scan rate because they look more intentional and trustworthy. The only hard rule is that the foreground must be darker than the background. Inverted codes (light modules on a dark background) should be avoided because they cause compatibility issues with many scanning apps and older devices.
See QR Code Styling in Action
Customize colors, add your logo, and preview your QR code design before printing.