Skip to main content
QRSenBuilt for business
Core Concepts

QR Code Module

A module is the smallest single black or white square in a QR code — the individual building block that the whole scannable pattern is made of, comparable to a pixel in an image.

Every QR code is a grid of modules, and the grid size depends on the code's "version" (see the Version entry) — anywhere from 21×21 modules at the smallest to 177×177 at the largest. More data means more modules, which means a denser, more detailed pattern.

Module size matters most when printing: shrink a QR code too far and individual modules blur together or drop below what a camera can resolve at typical scanning distance, which is the most common cause of a code that looks fine on screen but fails to scan once printed small.

Each module isn't decorative — its black or white state is a specific bit of data, error-correction information, or part of a fixed structural element like a finder pattern or timing line. That's why a QR code can't be redrawn, cropped, or resized non-uniformly without breaking it: every module has to stay in exact proportion and position relative to every other module for the decoding math to work.

A generator handles module sizing automatically based on the export dimensions you choose — a 2048×2048 PNG spreads the same grid across far more pixels per module than a small thumbnail export, which is why raster exports have a practical size floor. Vector (SVG) output sidesteps this entirely, since each module is drawn as a mathematically defined square rather than a fixed number of pixels, so it stays crisp at any print size.

As a rule of thumb, aim to keep each individual module at least about 0.3–0.4 mm across in the final printed size — smaller than that and most phone cameras, especially at typical arm's-length scanning distance, start to struggle to resolve individual squares from their neighbors. A denser code (more modules, from encoding more data) needs a proportionally larger total print size to keep each module above that floor.

Frequently asked questions

It depends on what changed. Scaling the same QR code up or down keeps the same module count and just makes each module larger or smaller. Encoding more data pushes the code to a higher version, which adds more modules at the same overall size — meaning each individual module gets smaller unless the print size grows to compensate.
Yes — dot-style customization (square, rounded, dots, and similar) changes each module's visual shape without touching what it encodes, since the scanner only cares about the center of each module being clearly dark or light. This site's generator offers several dot styles for exactly this reason.
A denser-looking code is encoding more data, or using a higher error-correction level, which pushes it to a higher version with more, smaller modules packed into the grid. A short URL produces a noticeably sparser pattern than a full vCard or a paragraph of text at the same print size.