QR Codes: Size, Error Correction and Payload Limits Explained
How QR codes pack data: versions, the four error correction levels, scan distance rules and the payload ceiling — plus what makes a code unscannable.
A QR code is not a black box: its version number, error correction level and payload length interact visibly. Knowing the interaction is the difference between a code that scans across a room and one that fails at arm length.
Versions: density tiers
Version 1 is 21 by 21 modules; each version adds density up to version 40 at 177 by 177. Long URLs push you into higher versions — more modules, smaller dots at the same printed size. Shorten the payload first, which is why redirect links before encoding are standard practice.
The four error correction levels
- L — recovers 7 percent damage, smallest size.
- M — 15 percent, the balanced default for links.
- Q — 25 percent, for industrial environments.
- H — 30 percent, required when placing a logo over the code.
Higher levels expand the symbol for the same payload. The QR Code Generator exposes all four levels with a live preview, rendered locally as SVG and PNG.
The payload ceiling
Absolute limits: about 4,296 alphanumeric or 2,953 bytes of UTF-8 at maximum version and low correction. In practice, phone scanning degrades long before the theoretical ceiling — keep payloads under a few hundred characters.
What actually breaks scanning
- Printing too small for the distance: the thumb rule is module size at least distance divided by 10.
- Insufficient quiet zone — the blank margin around the code.
- Dark-on-dark or low-contrast color pairings.
When the payload is a URL with query parameters, percent-encode it first with the URL Encoder so ampersands inside tracked links survive the print-then-scan round trip.
Related guides
URL Encoding, Percent-Encoding and Query Strings: What Actually Matters
When spaces become %20 or +, the difference between encodeURI and encodeURIComponent, double-encoding bugs and how to debug URLs component by component.
Read guide →2026-10-12Base64 vs Hex Encoding: When to Use Each (Developer Guide)
Base64 vs hex encoding compared: size overhead, readability, common use cases in JWTs, data URLs and git diffs — with a quick decision table for engineers.
Read guide →2026-10-11How to Decode a JWT: Reading Header, Payload and Signature
Decode any JWT by hand or with a browser tool: how the three parts are encoded, which claims matter (sub, exp, iss, aud) and why decoding is not verification.
Read guide →Try these tools
QR Code Generator
Generate QR codes from links or text, pick size and error-correction level, then download a crisp PNG. Rendered locally via a small bundled library — no tracking images, no API.
Open tool →URL Encoder / Decoder
Percent-encode or decode URLs and query components instantly. Component or full-URL mode, live size stats, strict position-accurate error reporting — all offline in your browser.
Open tool →