Comparing a static QR code vs dynamic one usually comes down to a single question: will the destination behind this code ever need to change after it's printed? A static code has the answer written directly into the pattern — a website, a WiFi network, a phone number — so it's free, permanent and needs no account, but changing anything means printing a new code. A dynamic code instead points at a short link that can be redirected at any time, adds a scan count, and requires a verified account, with the first two free forever and more requiring a subscription.
Deciding between static and dynamic for a specific code
Ask whether the destination could change
A phone number, a fixed WiFi network or a one-time event page rarely needs to change, a strong signal for static. A menu, a seasonal promotion or a link that might move to a new page is a signal for dynamic.
Check whether WiFi or vCard content is involved
These content types are written directly into the pattern and cannot be dynamic regardless of preference; the format itself doesn't support a redirect layer for this kind of data.
Decide if scan counts matter
A dynamic code shows how many times it's been scanned; a static one shows nothing, since there's no server involved to count anything.
Count how many dynamic codes are actually needed
The first two dynamic codes are free forever. A third or more requires a paid plan, so tally the actual number of codes that genuinely need to be editable before committing.
Print accordingly
Both types follow the same size and contrast rules once built, the static-versus-dynamic choice affects only what's behind the code, not how it should be printed.
What changes technically between the two
A static code's pattern encodes the full destination, every character of a URL, or the network name and password for WiFi. A dynamic code's pattern encodes a short MakeQR link instead, looked up at scan time and redirected to whatever the current destination is set to. That lookup step is what allows the destination to change without a new code, and it's also why a dynamic code needs an internet connection and MakeQR's servers working, while a static one doesn't depend on anything once printed.
The cost difference in practice
Static is free with no limit on how many codes are made, and none of them expire. Dynamic requires a free account, and the first two dynamic codes are free forever too — it's only the third and beyond that need a paid plan, alongside features like device-type scan breakdowns, hosted pages and bulk dynamic generation.
What happens if a dynamic subscription lapses
Codes keep working for 30 days after a subscription ends, with reminder emails along the way. After that, any codes beyond the two free ones show a neutral page rather than an error or an ad, and start working again the moment the subscription is restored, the printed code itself never has to be replaced because of a billing lapse.
What each type actually stores
A static code stores the real content directly, a link, WiFi credentials, a phone number. A dynamic code stores a short redirect link, with the real destination held on MakeQR's side so it can be changed.
static: https://example.com | dynamic: https://mkqr.io/abc123Print rules are identical either way
Sizing and contrast rules don't depend on whether a code is static or dynamic, both need roughly one-tenth the scanning distance in width, with 20mm as a floor for anything read up close.
Print it at least 20 mm (2.0 cm) wide
Where people pick the wrong type
Making a WiFi or vCard code dynamic by mistake
These formats are static by nature since the data sits directly in the pattern; there's no dynamic version to choose for them.
Using dynamic for something that will never change
A permanent phone number or a one-time event link doesn't need the account requirement and complexity of a dynamic code, static does the same job for free.
Underestimating how many codes will need to be dynamic
A project that starts with two dynamic codes can grow past the free allotment faster than expected; plan for a paid plan if the number is likely to climb.
Quick rule for choosing between them
If the destination might ever need to change after printing, use dynamic, the first two are free forever. If it won't, or the content is WiFi or vCard data that can't be dynamic anyway, static is simpler, permanent, and costs nothing.
How dynamic QR codes workStatic and dynamic side by side
- A business card's contact details: static, since they rarely change and a vCard can't be dynamic anyway.
- A restaurant's seasonal menu insert: dynamic, so the link can point to a new menu each season.
- A one-time event's registration page: static is enough for something used once.
- A product's packaging code reused across multiple years: dynamic, so the destination can be updated without reprinting packaging.