Qraft

How Much Data Can a QR Code Hold? Understanding the Limits

Maximum QR Code Capacity

At maximum size (Version 40), a QR code can store up to 7,089 numeric characters, 4,296 alphanumeric characters, or 2,953 bytes of binary data. For Japanese (Shift JIS), up to 1,817 characters can be stored.

However, these are theoretical maximums with the lowest error correction level (L). In practice, error correction is set to M or higher, reducing usable capacity to about 70-80% of these figures.

Data Size Guidelines by Use Case

Practical estimates for common uses:

  • Short URL (e.g., https://example.com): ~25 characters. Smallest QR code suffices
  • Long URL (with parameters): 100-200 characters. Small QR code handles it
  • Wi-Fi connection info: ~50-80 characters. Fits comfortably
  • vCard (contact): 200-500 characters. Includes name, phone, email, address
  • Long text: Beyond 500 Japanese characters, the QR code becomes large and hard to scan

What Happens with More Data

As data increases, the QR code version (size) automatically grows. Higher versions mean more modules (black and white cells), making each module smaller at the same print size.

Smaller modules are more susceptible to camera resolution and print quality issues, increasing scan errors. In practice, storing a web page URL and viewing details online is more reliable than embedding large amounts of text directly.

Versions and the number of cells

QR codes have standards from version 1 to version 40, and the larger the number, the more cells (modules) there are vertically and horizontally. Version 1 is 21 cells on a side, while version 40 reaches 177 cells. When the data to store increases, a higher version is automatically chosen to hold it, and the code pattern becomes finer. The finer the pattern, the more print resolution and camera performance are required. Note that if you want to print small but cram in a large amount of data, the code becomes hard to scan.

The trade-off with error-correction level

QR codes have an error-correction mechanism that lets them be read even with dirt or missing parts, and its strength can be chosen from four levels. The higher the correction level, the more extra data for restoration, so the actual amount of information that fits in a code of the same size decreases. In places that get dirty, such as outdoor signs, a high level is reassuring, but it consumes capacity accordingly. Conversely, a low level is enough if you only put a short URL indoors. Depending on the use, you choose whether to prioritize robustness or capacity.

Capacity differences by character type

The number of characters a QR code can store changes with the type of data you put in. Data of only numbers fits most efficiently, and the number of characters that fit in the same size decreases in the order of alphanumeric, kanji, and data including other symbols. This is because the amount of data needed to represent one character differs by type. That a long URL containing many symbols uses surprisingly much capacity is due to this mechanism. When you want to save capacity, reducing unnecessary symbols and keeping the character composition as simple as possible is effective.

Check by actually trying it

To get a feel for QR code capacity, the best way is to actually generate and test while changing the amount of data. Making codes from a short URL and a long URL, and from a string of only numbers and a string including symbols, lets you see with your eyes how the fineness of the pattern changes. You can also confirm that, even with the same content, the pattern changes when you vary the error-correction level. Checking the balance between the data you need for your use and ease of scanning while generating helps prevent the failure of a code that cannot be read once printed.

Tips to Reduce Data Size

Tips for keeping QR codes compact:

  • Use URL shorteners: Shorten long URLs with bit.ly etc. for smaller QR codes
  • Remove unnecessary parameters: Minimize tracking parameters (utm_source, etc.) at URL ends
  • Leverage alphanumeric mode: URLs encode in alphanumeric mode, more efficient than Japanese text
  • Put info on the web: Store only the URL in the QR code; put details on the linked page