Skip to content
QR Studio

QR code best practices

Updated September 2026

Most QR codes that fail were avoidable. These twelve rules cover the design, the placement and the destination. Follow them and your code scans first time, on the first phone, in bad light.

1. Keep the contrast high

Dark modules on a light background, aiming for a contrast ratio around 7:1. Pure black on white always works. A pale colour on white, or a light-on-dark inverted code, is the single most common reason a code won't scan.

2. Size it for the distance

Minimum width is the scanning distance divided by ten — 3 cm for a code read from 30 cm, 30 cm for one read from 3 metres. There's no penalty for going bigger. See the full size chart.

3. Protect the quiet zone

Leave a plain margin of at least four modules all the way around the code. Don't let text, a photo, a coloured panel or the edge of a label touch it — the scanner needs that clear space to lock on.

4. Add a call to action

A bare code gets ignored. A code with a line of text next to it — "Scan for the menu", "Scan to pay", "Scan to leave a review" — gets scanned far more often, because people act when they know where it goes.

5. Point at a mobile-friendly page

Whoever scans is on a phone. The destination should load fast, read without pinch-zooming, and not open with a pop-up or a cookie wall. A slow or broken page wastes the scan.

6. Keep the encoded data short

A shorter URL makes a less dense code, which prints smaller and scans faster. Trim tracking parameters you don't need, drop "https://www." where the site allows it, or use a short link.

7. Use a small logo, or none

A centre logo should be under a quarter of the code's width, with a small clear ring around it. Error correction is raised to High automatically when you add one, but it can only rebuild so much.

8. Choose static unless you truly need dynamic

A static code is free, never expires, and has no dependency on anyone's server. Only go dynamic if you need to change the destination after printing or want a built-in analytics dashboard.

9. Use vector for print

Download the SVG for anything printed — it stays sharp from a business card to a billboard. Use PNG only for screens, email signatures and social posts. More detail in the printing guide.

10. Test on real material

Before the print run, scan a proof at final size, on the actual paper or sticker, from the real distance, with more than one phone. This catches nearly every scanning problem before it's expensive.

11. Place it where a phone can reach

Not behind glass that throws glare, not wrapped tight around a bottle, not above head height on a poster, not on a vehicle people can't safely walk up to. If a phone can't get square-on to it at a comfortable distance, move it.

12. Give people a fallback

Print the URL, or a short instruction, near the code. A cracked camera lens or an old phone shouldn't be a dead end — and a visible URL also builds trust that the code is legitimate.

Frequently asked questions

What's the most common QR code mistake?

Low contrast, then printing the code too small for the distance it's read from. Between them they account for most codes that won't scan.

Should a QR code have a border?

Yes — the quiet zone. At least four modules of clear space on every side, roughly the width of one corner square.

Is it OK to use colour in a QR code?

Yes, as long as the contrast holds — a dark colour on a light background. Light-on-light or a pale tint on white is what breaks it.

Do QR codes really need a call to action?

It's not required, but scan rates are much higher with a short "Scan for X" line. People hesitate at a code with no context.

Static or dynamic for a marketing campaign?

Dynamic if you need to change the destination later or want a built-in dashboard. Otherwise static plus UTM tags — see tracking scans for free.

How do I stop my QR code breaking after it's printed?

Point it at a stable URL you control and don't move. Static codes never expire; only the destination can break.

Why your QR code isn't scanningWhat size should a QR code be?How to track QR code scans for freeStatic vs dynamic QR codesURL QR CodePermanent QR Code