Personal Tools Hub

QR Codes Explained: How They Work and How to Avoid Common Mistakes

Updated 2026-08-03 · 6 min read

QR codes look like abstract noise, but almost everything in the pattern is doing a specific job. Understanding roughly how they work explains most of the reasons a code fails to scan.

What is actually in the pattern

The three large squares in the corners are finder patterns. They let a camera locate the code and work out its orientation, which is why a QR code scans upside down or at an angle.

A smaller square near the fourth corner is the alignment pattern, correcting for distortion when a code is photographed on a curved surface or from the side.

The rest holds your data plus a substantial block of error-correction information.

Error correction is the interesting part

QR codes deliberately store redundant data so they still work when partly damaged. There are four levels:

This is what allows a code to work with a logo placed in the middle: the logo covers data, and error correction reconstructs it.

The trade-off is density. Higher correction means more redundant data, so the pattern becomes finer for the same content. A very dense code printed small can become harder to scan, which defeats the purpose. M is a sensible default; use H when adding a logo or printing somewhere the code may get scuffed.

Why codes fail to scan

Too small for the distance. A rough working rule is that the code should be about one tenth of the scanning distance. Read from 1 metre, aim for roughly 10 cm across. Codes on posters routinely fail because they were sized for a phone held close.

Not enough quiet zone. The blank margin around a code is functional, not decorative. Scanners use it to find the boundary. Cropping tight to the pattern is a common cause of failure.

Inverted colours. Most scanners expect dark modules on a light background. Light-on-dark works on some readers and fails on others.

Insufficient contrast. Mid-grey on light grey may look elegant and scan poorly. Keep contrast strong.

Too much data. A very long URL produces a dense pattern. Shortening the link first usually helps more than any other adjustment.

Static versus dynamic codes

A plain QR code is static: the destination is encoded in the pattern itself and can never be changed. Print it, and it points there forever.

Dynamic codes encode a short redirect URL controlled by a service, so the destination can be changed later. Useful, but with two real costs: it depends on that service continuing to exist, and it usually means someone tracking every scan.

For a printed run you may want to update later, dynamic makes sense. For a WiFi password on a café wall, static is simpler and depends on nobody.

Beyond links

QR codes can encode several formats phones recognise automatically:

Worth remembering: a WiFi QR code contains your password in plain readable form. Anyone who photographs it has the password permanently. Fine for a guest network, unwise for your main one.

A word on safety

A QR code is unreadable to humans, which makes it an effective way to disguise a link. Scanning a sticker placed over a legitimate code on a parking meter or restaurant table is a known scam pattern.

The practical habit: check the URL your phone previews before opening it, and be sceptical of codes in public places that look stuck on rather than printed as part of the surface.

Try it yourself — free, and everything runs in your browser.

Open QR Code Generator