Static vs Dynamic QR Codes: What Is the Difference?
Last updated Published by Hyperdusk Ltd
The short answer
A static QR code holds the final content itself, such as a full URL, so it works for as long as that content does and cannot be edited after printing. A dynamic QR code holds a short link run by a QR service. The link redirects to a destination you can change later, and the service counts scans.
Create a static QR code for a URL, WiFi network or contact →Key differences
| Static QR code | Dynamic QR code | |
|---|---|---|
| What the code contains | The content itself: a URL, text, WiFi details or a contact card | A short URL that redirects to the real destination |
| Change the destination after printing | No | Yes, by editing the redirect |
| Scan counts | None from the code; a URL's own site analytics still count visits | Yes, counted at the redirect |
| Depends on a third party | No | Yes: it stops working if the redirect is removed |
| Works without an internet connection | Yes for text, WiFi and contact cards | No: the phone must follow the redirect |
| Size of the code | Grows with the length of the content | Small, because the short link is short |
What is a static QR code?
A code in which the data you entered is the data in the pattern. Scan it and the phone has everything: the URL, the text, the WiFi network name and password, or the contact card. Nothing is looked up from the company that made the code, so there is nothing to expire and nothing to switch off.
The cost is that the content is fixed. If a printed code points at a URL that later changes, the only fixes are to redirect that URL on your own site or to reprint.
What is a dynamic QR code?
A code that contains a short URL belonging to a QR service. When someone scans it, the service's server records the scan and redirects the phone to the destination set in your account. Bitly, which sells them, describes dynamic codes as using "a modifiable short URL to redirect users to your latest landing page", with "editable URLs and automatic tracking".
The pattern itself is not special. A scanner reads a URL either way, and "dynamic" describes the server behind that URL. That has two consequences. The code only works while the redirect exists: Bitly's article notes that on some services' free trials a dynamic code "may expire if you don’t upgrade". And you can build the same thing yourself by encoding a URL on a domain you control and changing where it redirects.
Which kind does generate.now make?
Static only. The generate.now QR code generator encodes exactly the text shown on the page, for a URL, plain text, WiFi details or a vCard. There is no redirect through generate.now and no scan is reported to us, so a code keeps working for as long as its content is valid. It cannot be edited after you print it.
How much data fits in a static QR code?
It depends on the version, which is the size of the grid, and on the error-correction level. Versions run from 1 (21 × 21 modules) to 40 (177 × 177). Error correction lets a damaged code still scan: level L restores about 7% of the code, M about 15%, Q about 25% and H about 30%. A higher level leaves less room for data.
| Version (modules per side) | L | M | Q | H |
|---|---|---|---|---|
| 1 (21) | 17 | 14 | 11 | 7 |
| 2 (25) | 32 | 26 | 20 | 14 |
| 5 (37) | 106 | 84 | 60 | 44 |
| 10 (57) | 271 | 213 | 151 | 119 |
| 20 (97) | 858 | 666 | 482 | 382 |
| 40 (177) | 2,953 | 2,331 | 1,663 | 1,273 |
Why does the length of a URL matter?
A longer URL needs a larger grid. Printed at the same physical size, a larger grid means smaller modules, which are harder for a camera to resolve. This is the practical argument for a short link, whether it comes from a dynamic-code service or from your own domain.
| URL length | L | M | Q | H |
|---|---|---|---|---|
| 25 characters | 25 × 25 | 25 × 25 | 29 × 29 | 33 × 33 |
| 50 characters | 29 × 29 | 33 × 33 | 37 × 37 | 41 × 41 |
| 100 characters | 37 × 37 | 41 × 41 | 49 × 49 | 53 × 53 |
| 150 characters | 45 × 45 | 49 × 49 | 57 × 57 | 65 × 65 |
| 250 characters | 57 × 57 | 61 × 61 | 73 × 73 | 81 × 81 |
Which should you use?
Use a static code when the content will not change and you do not want the code to depend on anyone's service: WiFi details, a contact card, a link to a page you control. It costs nothing to keep alive.
Use a dynamic code when the destination may change after printing or you need scan counts, for example on packaging or a long-running campaign. If you do, check what happens to the code when the subscription ends, or run the redirect on your own domain so the printed code never depends on a vendor.
Tools for this
- Create a static QR code for a URL, WiFi network or contact →
QR Code Generator. Draws a static code in the browser and downloads it as SVG or PNG, with a choice of the four error-correction levels.
- Turn a title into a short URL slug →
Slug Generator. Converts a title into a URL slug with a maximum length, which keeps an encoded URL short.
Sources
This page was written from the primary sources below, read on .
- node-qrcode README
soldair/node-qrcode on GitHub. Error-correction levels, the version range, encoding modes and the maximum-capacity table for the library the tables were computed with.
- Static vs. Dynamic QR Codes: What Enterprises Need to Know
Bitly. A dynamic-code vendor's own description of how the two kinds differ, including editing, tracking and free-trial expiry.