QR code versions explained
Last updated 16 September 2026
Every QR code is a grid of black and white squares, and the size of that grid is called the version. It runs from 1 to 40. Version 1 is 21 by 21 modules. Version 40 is 177 by 177. Each version up adds four modules to every side.
More data needs a bigger grid. A short URL fits in a small version. A long tracking URL with campaign parameters can push it two or three versions higher, and the modules get smaller as the grid grows.
This page explains what the generator here does with that, so you know what you are getting and why.
You do not choose a version. The tool works it out
There is no version setting on sobog.com, and that is deliberate. A QR code has a minimum version for a given payload, and forcing one lower produces a code that cannot be read. Forcing one higher adds empty modules and makes the code denser for no benefit. The automatic choice is the correct answer in nearly every case, so there is nothing useful for you to pick.
If you want to see the effect, type a short URL and note how coarse the grid looks. Then paste in a much longer one. Same tool, same settings, visibly denser code. That is the version changing underneath you.
Error correction is also automatic
QR codes carry redundancy, so they still scan when part of the image is damaged or covered. There are four standard levels of this, recovering roughly 7, 15, 25 and 30 percent of the code.
sobog.com picks the level for you, based on one thing:
- No logo attached: medium correction, about 15 percent. Comfortable for clean digital and print use, and it keeps the grid as small as it can be.
- Logo attached: high correction, about 30 percent. The logo covers modules in the middle of the code, so the extra redundancy is what keeps it scannable.
That switch is not adjustable, and it does not need to be. The whole point of offering a logo option is that the resulting code still scans. A setting that let you lower the correction while a logo was attached would only let you produce a broken code.
The visible effect is worth knowing: attaching a logo makes the code slightly denser, because higher correction means more redundancy in the same payload. If you are deciding between a logo and a plain code at a small print size, that difference is part of the trade.
What you should actually watch
The version number is an implementation detail. The thing that decides whether your code works is the print size relative to the scan distance, because a denser grid needs a bigger print to keep each module resolvable.
The working rule is that scan distance should be about ten times the width of the code. A 2cm code works at 20cm. If you want it scanned from two metres, you need a 20cm code. Denser codes need more than that.
So if a code is too dense to scan at the size you need, you have two options. Print it bigger, or shorten the payload. Shortening is free and usually easier. A short URL almost always beats a large print.
The practical summary
- The version is chosen automatically from your content. There is no setting.
- Error correction is chosen automatically. Medium normally, high when a logo is attached.
- Adding a logo makes the code a little denser. That is the trade for branding.
- Print size is the thing you control, and it is the thing that decides whether the code scans.
There are more sizing numbers on the usage page, and a longer treatment in minimum size for a QR code.