QR Code Versions 1-40 Explained - Size and Capacity Guide
Version Means Module Count
A QR code's version defines its grid size. Version 1 is 21x21 modules, increasing by 4 per version up to Version 40 at 177x177 (31,329 modules). More modules means more data capacity but harder scanning - a fundamental tradeoff between capacity and readability.
Capacity by Version
At error correction level M: Version 1 holds 34 digits or 20 alphanumeric characters (barely a short URL). Version 5 holds 202 digits or 122 alphanumeric (long URLs with UTM parameters). Version 10 holds 652 digits (basic vCard data). Version 40 holds 5,596 digits but is impractical for most uses due to tiny module size.
Auto vs Manual Version Selection
Most generators auto-select the version based on data length. Manual selection matters when print size is constrained: business cards need Version 5 or below (15-20mm limit), while large signage can accommodate higher versions with adequate module size.
Error Correction and Version Relationship
Higher error correction increases the version needed for the same data. Level L (7%) might need Version 3, while Level H (30%) needs Version 5 for identical content. Recommended: Level M for general use, Q for outdoor/dirty environments, H for logo-embedded designs.
The larger the version, the harder to scan
The larger the version, the more data it can store, but the cells become finer accordingly and the difficulty of scanning rises. When printed at the same size, the higher the version of a code, the smaller each individual cell becomes, and if the camera's resolution or print precision is insufficient, scanning tends to fail. In other words, it is not the case that the more you increase capacity the better. Holding it down to as low a version as possible within the range where the necessary data fits results in a code that is easier to scan and handle.
Reducing the data amount lowers the version too
If you contrive to reduce the data you store, the automatically chosen version also lowers, making for an easy-to-handle code. For example, rather than putting a long URL in as is, there are methods such as removing unnecessary parameters or using a redirect mechanism to replace it with a short URL. If the number of characters decreases, the cells become coarser, and it becomes easy to scan even when printed small. Because the version is a value decided as a result, reviewing the data you put in itself, rather than directly tinkering with it, is the shortcut to an easy-to-handle code.
Judging the version to match the use
The appropriate version changes with where and how you use the code. For something scanned up close, like a business card or flyer, even a somewhat high version causes few problems. On the other hand, for something scanned from a distance, like a poster or sign, or something printed small, it is important to hold it down to a low version and keep the cells large. Capacity and ease of scanning are in a trade-off relationship. Judging the just-right landing point while picturing the medium and distance you will actually use leads to making a code without failure.
Recommended Versions by Use Case
URL only: Version 3-4. Wi-Fi credentials: Version 5-7. vCard: Version 8-12 (or use a URL instead). Long text: Version 15+ (URL redirect recommended for reliability). Versions above 20 are not recommended outside specialized industrial applications.