QR Code Best Practices: Making Codes People Can Actually Scan
QR codes are everywhere, from menus and posters to business cards. A poorly made code frustrates people or sends them to the wrong place. These practices make codes reliable and safe.
Choose the right type
The QR Code Generator can encode a web link, plain text, Wi-Fi credentials, an email, a phone number, an SMS and a contact card. Pick the type that matches the action you want: a Wi-Fi code lets guests join without typing a password, and a contact card adds your details to their phone in one tap.
Keep the content short
The more data in a code, the denser the pattern and the harder it is to scan from a distance. Use a short link rather than a very long address. For long text, link to a web page instead.
Set error correction deliberately
QR codes include redundancy so that they can be read even if damaged. Levels are Low (7 percent), Medium (15 percent), Quartile (25 percent) and High (30 percent). Medium suits most uses. Choose High for codes printed on rough surfaces or with a logo over the centre, but remember that higher levels make the pattern denser.
Mind size, contrast and the quiet zone
- Print at least about 2 cm wide for close scanning, and larger for posters in proportion to the viewing distance.
- Use dark modules on a light background. Inverted codes (light on dark) are not read by every scanner.
- Keep a blank margin, called the quiet zone, around the code.
- Avoid low-contrast colour pairs such as light grey on white.
Test before you print
Scan the finished code with at least two different phones, from the real distance and in real lighting. You can check what a code contains with the QR Code Scanner.
Stay safe
A QR code can hide a malicious link. Before opening one from an unknown source, read the address shown by your scanner. Do not scan codes on stickers placed over other codes, and never enter passwords or payment details on a page you reached through a code unless you recognise the site.
Static codes do not expire
Codes made here are static: the data is stored in the pattern itself, so they never expire and do not depend on our servers. The trade-off is that you cannot change the destination or count scans after printing. If you need that, use a link you control that redirects to the final page.