Most QR failures in the wild trace back to five decisions made at design time. Get these right and the code scans first time on a five-year-old phone in bad lighting — which is the actual bar to clear.
Scanners binarize the image: every module must clearly be "dark" or "light". Keep the code dark on a light background — inverted (light-on-dark) QR codes fail in many readers. Brand colors are fine if they're dark enough; avoid pastels, yellows, and putting the code over photos or gradients. Our QR generator's scannability meter scores your exact color pair live.
Leave a clear margin of at least 4 modules on all four sides. Designers love tucking QR codes against borders and text — that margin is structural, not whitespace. The same goes for overlaying icons outside the controlled logo zone: decoration belongs around the code, not on it.
Error correction (L/M/Q/H) trades capacity for damage tolerance. Use M for plain codes, H when embedding a logo — the logo literally consumes error-correction budget. Keep logo coverage under ~20% of the symbol area; our generator raises EC automatically when you add one and warns before coverage breaks the code.
Glossy lamination and curved surfaces cause glare and distortion — prefer matte finishes and flat placement at a natural scanning height and angle. Before mass printing: print one sample at final size on the final material, then test with an old Android, an iPhone, indoors and in sunlight, from a realistic distance. Five minutes of testing beats a thousand reprints.