QR code version

The size of the grid, from version 1 (21×21) to version 40 (177×177).

Version here means size, not revision. There are 40 versions. Version 1 is 21×21 modules, and each subsequent version adds 4 modules per side: version 2 is 25×25, version 3 is 29×29, up to version 40 at 177×177.

What determines it. The amount of data plus the error correction level. A generator picks the smallest version that fits both. Adding characters or raising the correction level pushes the version up.

Why you should watch it. Version is the best single predictor of how large a code needs to be printed. Low versions are forgiving; high versions have small modules that demand size, print quality and good lighting. If a generator shows the version as you type, watching it climb is watching the code become harder to scan.

Practical ceiling. For print, staying at version 10 or below is a reasonable target. Past that, shorten the content — or use a dynamic code, whose encoded address stays short no matter how long the real destination is.

In practice

Watch the version climb as content grows. A 25-character URL at level M gives version 2. Add UTM parameters to reach 120 characters and it jumps to version 7. Add a tracking identifier to reach 200 and it is version 10 — 57×57 modules.

Each step means smaller modules at the same printed size. This is the strongest practical argument for dynamic codes on physical media: the encoded address stays around 30 characters no matter how long the real destination grows, so the pattern stays at version 3 and the modules stay large.

Questions

What is the maximum a QR code can hold?

Version 40 at error correction L holds about 7,089 numeric characters, 4,296 alphanumeric, or 2,953 bytes. In practice anything approaching that is unprintable at a usable size.

Can I force a specific version?

Some generators allow it, to pad a code to a larger version for visual consistency across a set. It never improves scanning — it only adds modules.

Related terms

All terms Make a code free