QR Code Best Practices: Design, Size & Placement
Good QR codes are easy to scan the first time, in real-world conditions, on real phones. The best results come from a few practical choices: high contrast, enough empty space around the code, a readable size, a clear reason to scan, and thorough testing before you print hundreds or thousands of copies.
The core QR code best practices to follow
If you want a QR code that scans reliably, start with six basics: use dark-on-light contrast, keep a proper quiet zone around the code, make it large enough for the expected scanning distance, add a clear call-to-action, choose appropriate error correction, and test on multiple phones before final production. These are the factors that most often determine whether a code works smoothly or frustrates people.
In simple terms, a QR code should be visually clean, easy to find, and easy to scan. That means avoiding low-contrast colors, not crowding the code with text or graphics, and not placing it where glare, curves, folds, or distance make scanning difficult.
The final best practice is operational, not visual: print one sample first and test it in the exact environment where people will use it. A code that scans perfectly on your laptop screen may fail once it is reduced in size, printed on textured material, mounted behind reflective acrylic, or placed too high on a wall.
Use strong contrast and protect the quiet zone
Contrast is the first thing to get right. The safest choice is a dark code on a light background, such as black on white. Phone cameras and scanning apps identify the pattern more reliably when the difference between foreground and background is obvious. Light gray on white, pastel combinations, metallic inks, and glossy low-contrast finishes often cause scan failures.
Avoid reversing the design unless you have tested it carefully. A light code on a dark background can sometimes work, but it is generally less dependable than the standard dark-on-light format. If brand styling matters, keep the code itself highly readable and apply brand colors elsewhere on the page.
The quiet zone is the empty margin around the QR code. This blank border helps scanners detect where the code begins and ends. A common rule is to leave at least four modules of clear space on all sides. In practice, that means no text, borders, patterns, icons, or background textures crowding the edges. Many scan problems come from designs that look tidy to a human but remove too much breathing room for the camera.
Choose a size that matches the scanning distance
Size is not one fixed number; it depends on how far away the person will scan. For close-range uses like product packaging, business cards, table tents, and flyers, a code around 2 x 2 cm to 3 x 3 cm often works well if the print quality is sharp and the destination URL is encoded efficiently. If the code is going on a poster, window, sign, or menu board viewed from farther away, increase the size accordingly.
A practical rule of thumb is that the scanning distance should be roughly 10 times the width of the code. So if people will scan from about 1 meter away, the code should be around 10 cm wide. This is a guideline rather than a law, but it is useful when planning signage and out-of-home materials.
Also consider the surface and context. Codes printed on curved bottles, wrinkled labels, fabric, or small hang tags may need to be larger than expected because distortion makes the pattern harder to read. If the code is part of a busy design, increasing the size gives the camera more margin for error.
Add a clear call-to-action and place the code where people can use it
A QR code by itself does not tell people why they should scan. Add a short call-to-action that sets expectations, such as "Scan to see the menu," "Scan for setup instructions," or "Scan to claim your discount." This increases scans and helps the user decide whether it is worth taking out their phone.
Keep the CTA specific and close to the code. If relevant, mention what the user gets, whether it is fast, and whether any app is required. For example: "Scan to watch a 30-second demo" is more effective than just "Scan here." If the destination matters, say so: "Scan to book an appointment" is clearer than a generic prompt.
Placement matters as much as wording. Put the code where someone can comfortably stand, focus their camera, and scan without blocking traffic or reaching awkwardly. Avoid placing codes too high, too low, behind glass with glare, across folds or seams, or on moving surfaces where the user cannot hold the phone steady. In restaurants, retail, events, and packaging, a code should be easy to notice and easy to physically access.
Use error correction carefully and avoid over-designing
QR codes include built-in error correction, which allows some damage or obstruction without breaking the scan. Higher error correction can help if you plan to add a small logo in the center or expect the code to face wear, scratches, or light distortion. But it is not a free pass to cover large parts of the code or make the design overly decorative.
In general, use customization sparingly. Rounded modules, custom colors, frames, and logos can work, but every visual change adds risk. If branding is important, keep the finder patterns clear, preserve contrast, and do not alter the structure so much that scanning becomes inconsistent across devices.
This is one reason many teams prefer dynamic QR codes for campaigns and printed materials. The printed code stays the same, while the destination can be updated later if a page changes, a promotion ends, or tracking is needed. That reduces the chance of having to reprint materials because of a broken link, and it gives you scan data to spot placements or designs that underperform.
Test before you print at scale
Testing is the step that turns good theory into reliable results. Before approving a large print run, create a production-quality sample and test it on different phones, under different lighting conditions, and from the actual distance people will scan. Try older devices as well as newer ones, because not every customer has a flagship phone with a perfect camera.
Test common failure points on purpose. Scan in bright sunlight, under indoor glare, and in lower light. Test while the code is flat, mounted, and handled. If the code is going on packaging, check it after folding, labeling, or shrink wrapping. If it is going into a store or event space, test the installed version rather than just the artwork proof.
As a final checklist, confirm that the destination loads quickly, the page is mobile-friendly, and the CTA matches what the user sees after scanning. Then lock in the design and print a small batch first if possible. The next step is simple: use the most readable version, place it where scanning is comfortable, and validate performance before scaling up. A QR code that scans easily every time is almost always better than one that looks clever but fails in the real world.
Create a free dynamic QR code
Editable destination, scan analytics, free to start — no card required.
Get started free →