Skip to main content

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.

  1. https://fastcalco.com/en/calculators/tools/qr-code-generator → 54 characters
  2. at level M this needs roughly a version 4 grid (33×33 modules)
  3. shortened to fastcalco.com/qr → 19 characters
  4. 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.