Generate QR codes from text or URL.
All calculations performed locally in your browser. No data sent to server.
Results are for informational purposes. Verify results with other sources.
What a QR code can hold
A QR code stores data in a grid of modules, with redundancy built in so it still scans when part of it is dirty, creased or covered by a logo. Capacity and robustness trade off directly against each other.
How it works
- Encodes your text, choosing a version (grid size, 21×21 up to 177×177) large enough to hold it.
- Adds Reed-Solomon error correction at one of four levels, from L to H.
- Reserves the three corner squares for orientation, which is how a scanner finds the code at any angle.
error correction level → recoverable damage → max bytes (version 40) L ~7% 2 953 M ~15% 2 331 Q ~25% 1 663 H ~30% 1 273 shorter data → smaller grid → larger modules → scans from further away
Worked example
Encoding a URL, and what happens when you shorten it.
- https://fastcalco.com/en/calculators/tools/qr-code-generator → 54 characters
- at level M this needs roughly a version 4 grid (33×33 modules)
- shortened to fastcalco.com/qr → 19 characters
- now fits a version 2 grid (25×25 modules)
The shorter URL produces a visibly coarser code. Printed at the same physical size, its modules are larger, so it scans faster, from further away, and survives worse printing.
Reading the result
- Use level H when a logo covers the centre, and only then — it costs you roughly half the capacity. Level M is the sensible default for print, L for a clean screen.
- Quiet zone matters more than people expect: leave a clear margin of four modules on every side, or scanners will struggle regardless of how good the code is.
- Do not invert the colours. Scanners expect dark modules on a light background, and while some cope with the reverse, many do not.
- A QR code is not a short link. Whatever URL you encode is fixed in the print run — if you may need to change the destination later, encode a redirect you control.
Common questions
- How small can I print it?
- The usual rule is that a module should be at least 0.4 mm, so a 25×25 code needs about 10 mm plus the quiet zone. Doubling scan distance requires doubling the printed size.
- Why does my code scan on one phone but not another?
- Usually contrast, quiet zone, or too much data crammed into a small print. Shorten the payload first — it does more for reliability than any other change.