QR Code Design Best Practices: 12 Rules for Custom Codes That Always Scan
Colours, logos, size, quiet zone, frames and testing: practical rules for designing beautiful, branded QR codes that still scan on every phone.
Published 5 min read
A branded QR code with your colours and logo gets noticed — and research from print marketers consistently shows that designed codes with a clear call-to-action are scanned more often than plain black squares. But every design choice also affects whether the code can be read. Follow these twelve rules to get both.
1. Keep strong contrast
Scanners convert your code to black and white before decoding. If the foreground and background are too similar, modules blur into each other. Aim for a contrast ratio of at least 4:1 — dark navy, deep green, burgundy or charcoal on white or a very light tint all work well. Pastel on white, or mid-grey on mid-tone backgrounds, does not.
Our QR code generator checks contrast as you design and warns you when it drops too low.
2. Dark code, light background
Most scanners expect dark modules on a light background. Inverted codes (light on dark) look stylish, and modern phone cameras usually read them, but many older devices and dedicated scanner apps still fail. If your layout is dark, place the code on a light “card” instead of inverting it.
3. Respect the quiet zone
The empty margin around a QR code — the quiet zone — is part of the standard. Text, borders or busy images touching the code make it harder to locate. Keep a margin of at least four modules on every side, or at least two if the code sits on a plain background. Frames are fine as long as there is clear space between the frame and the modules.
4. Go easy with gradients
Gradients look modern, but keep both ends dark enough to contrast with the background. A gradient from navy to violet works; one that fades from navy to light blue makes the light end unreadable. Radial gradients are safest when the centre and the outside are similarly dark.
5. Choose dot shapes wisely
Rounded dots, circles, diamonds and connected “fluid” styles all scan reliably when the pattern stays dense and regular. Very thin lines or tiny dots reduce the dark area that scanners sample, so use them only with good contrast and a decent print size. If in doubt, check the scannability indicator in the preview.
6. Keep the finder patterns recognisable
The three corner “eyes” are how a scanner finds the code. You can round them, colour them or give them a leaf shape — that is part of what makes a code look branded — but keep them solid, square-ish and clearly separated from the data. Never replace them with icons or remove their inner square.
7. Size the logo correctly
A logo in the centre works thanks to error correction, which can rebuild missing data. Two rules keep it safe:
- Set error correction to Q or H when you add a logo.
- Keep the logo to about 20–25% of the code width and give it a small white background or padding.
The generator switches to high error correction automatically when you add a logo and clears the dots behind it, so the logo does not overlap the pattern.
8. Shorten the content
Every extra character makes the pattern denser. A 25-character link produces a clean version 2 code; a 150-character tracking URL produces a busy version 7 code that needs to be printed much larger. Use a short, clean URL — ideally your own domain with a simple path — and remove unnecessary tracking parameters.
9. Print it big enough
The rule of thumb: a QR code can be scanned from about ten times its width. A code on a business card (2–3 cm) works at arm’s length; a poster read from 3 metres needs a code of around 30 cm. Never go below 2 × 2 cm (0.8 in). Use our QR code size calculator for an exact recommendation based on distance and content.
10. Use the right file format
- SVG for print, packaging and design software — it is vector and stays sharp at any size.
- PNG for websites, presentations and documents — use at least 1024 px.
- JPG only where transparency is not needed, and never heavily compressed.
Avoid screenshots and re-compressed images: blurry module edges are a common cause of failed scans.
11. Add a frame and a call-to-action
A bare code does not tell people what they will get. A short label such as “Scan for the menu”, “Join our Wi-Fi” or “Get 10% off” sets expectations and increases scans. Frames with a text banner or a speech bubble make the code look intentional and help it stand out on busy layouts. Keep the text short — two to four words.
12. Test before you print
Always test the final file — not just the preview — on at least two different phones (iPhone and Android), with the default camera app, under realistic lighting and at the real distance. Check that the link opens the right page and that the page works well on mobile. Then print one proof copy before the full run.
Bonus: build trust
QR code phishing (“quishing”) has made some people wary of scanning. Help them trust your code:
- Use your own recognisable domain rather than an anonymous short link.
- Put your brand and logo on or near the code.
- Never place codes where they could be confused with official payment or parking codes.
Quick checklist
- Contrast of 4:1 or better, dark on light
- Quiet zone of at least four modules
- Recognisable finder patterns
- Logo ≤ 25% with error correction Q or H
- Short content, appropriate print size
- SVG for print, high-resolution PNG for screens
- A clear call-to-action
- Tested on multiple phones
Put these rules into practice with the free QR code generator — or create many consistent codes at once with the bulk QR code generator.
Ready to create your own QR code?
Design a custom QR code with your logo and colors in seconds — free and without sign-up.
Open the generator