QR Code Generator
Links, Wi-Fi, contact cards and seven more — styled, checked for scannability, and sized for the printer.
Updated
Any web address — a site, a menu PDF, a booking page, a profile.
Appearance — all of it free
Caption
Print sizing
Both matter. Distance decides how big the code has to look; the printer decides how small a module it can hold. Whichever asks for more is the size to print.
Your code
Point your phone camera at the screen — it works before you download anything.
- Version
- 2 of 40
- Grid
- 25 × 25 modules
- Payload
- 21 of 2,331 bytes
- Error correction
- M — recovers ~15%
Print at least
50 mm2.0 in
Set by the 50 cm reading distance. Your printer could hold it down to 9 mm.
- Leave room for
- 66 mm with the quiet zone
- One module
- 2.00 mm
- Reads from up to
- 50 cm
Exactly what this code contains
https://viralrang.com
That string is the code. It is not a link to us and there is no lookup in the middle — which is why nothing we do later can change or disable it.
- Contrast 18.9:1, dark on light — the arrangement every decoder handles
- 21 bytes — a version 2 symbol, comfortable to print
- Scanners are sent straight to viralrang.com — nobody sits in between
Download
The SVG is a true vector: it prints crisp at any size, from a business card to a shop window, and it is the file a printer will ask you for.
A ready-to-print page, sized in real millimetres so it comes out of the printer at the size it says.
In short
Do QR codes expire?
A QR code cannot expire — the data sits inside the symbol itself. What expires is a redirect. Codes from services that route every scan through their own domain die when that service does: Firebase Dynamic Links shut down on 25 August 2025 and its links began returning 404. Nothing here uses one.
The one thing that can still break a direct code is its destination. If your page moves, the code keeps pointing faithfully at where it used to be.
How to use the QR code generator
Choose what the code should do, fill in the fields, and it redraws as you type. Everything happens in this browser — the encoding, the styling, your logo, every download — because there is no server call for any of it to make. That matters more than it sounds: people put Wi-Fi passwords and private links into these.
10
Payload types
each a different format
2,953
Maximum bytes
version 40 at level L
4
Quiet-zone modules
required on every side
The symbol is a square grid of modules, and the tool picks the smallest grid your data fits — that is the version it reports, from 1 to 40. Version 1 is 21 modules across and holds a few dozen characters. Version 40 is 177 across. More data means more modules in the same printed square.
The panel that shows you the string
Under the preview is the literal text going into the symbol. Open it. It is the only way to catch a wrong digit in a phone number, a password mangled by escaping, or a link that turns out to point somewhere other than you intended — the symbol itself gives you no clue, because a wrong code looks exactly like a right one.
It also names the host a scanner will be sent to. If that host is a known link shortener, the tool says so, because a shortener puts a company you do not control back between your printed sign and where it goes.
Downloads are SVG, PNG and JPG. Take the SVG for anything headed to print: it is a true vector with no resolution of its own, so the same file is crisp on a business card and crisp on a shop window, and it is what a printer will ask you for. Export PNG at the final size rather than enlarging a small one.
Do
- Read the encoded string before you commit anything to print.
- Leave the four-module quiet zone completely clear on all four sides.
- Encode your own address rather than a shortened version of it.
- Print one and scan it from where people will actually stand.
Don't
- Crop the white margin to make the code fit a layout.
- Put light modules on a dark background because it matches the brand.
- Cover a third of the code with a logo because level H mentions 30 percent.
- Assume a code that scans on a monitor will scan at a quarter the size.
The smallest a 33-module code can honestly be printed, by printer resolution
| Printing on | Smallest module | Smallest symbol | Reads from about |
|---|---|---|---|
| 150 dpi — cheap inkjet, newsprint | 0.68 mm | 22 mm | 22 cm |
| 300 dpi — office laser, most print shops | 0.34 mm | 11 mm | 11 cm |
| 600 dpi — good laser | 0.17 mm | 6 mm | 6 cm |
| 1200 dpi — professional press | 0.08 mm | 3 mm | 3 cm |
What actually breaks when a QR code stops working
Search for whether QR codes expire and you will find a great deal of confident nonsense in both directions. The truth is narrow and worth getting right, because it decides which kind of tool you should be using.
A QR symbol is a printed representation of a string. There is no clock in it, no account behind it and nothing to renew. If the string is `https://example.com/menu`, the code will hand a phone that address in twenty years exactly as it does today.
So what expires?
The middle step. Most commercial generators produce what they call a dynamic code: the printed symbol contains their domain, and their server looks up where to forward you. That buys something genuinely useful — you can change the destination after printing — and it costs you control of the link.
That is not an argument that dynamic codes are bad. It is an argument that they are a subscription to somebody else’s infrastructure, and that a poster on a wall is a bad place to hold one. Vendors in this market variously deactivate codes when a trial ends, pause them at a monthly scan cap, or show the scanner an advertisement first.
- Direct code: the destination is in the symbol; nobody can switch it off.
- Direct code: you cannot change where it goes after printing.
- Redirect code: you can change the destination whenever you like.
- Redirect code: it works for exactly as long as that vendor lets it.
If you want both, there is a way, and it does not involve a QR vendor: encode a short path on your own domain, such as `example.com/go/menu`, and redirect it from your own site. You keep the ability to change the destination, and the only company that can take it away is you.
Shorten what goes in the code
A shorter address makes a smaller, coarser, easier-to-scan symbol. The slug generator turns a page title into the tidy lowercase path a QR code should be pointing at.
Open the slug generator →How big does a printed code need to be?
Almost every answer to this online is the same rule: make the code about a tenth of the distance it will be read from. A metre away wants roughly ten centimetres. It is a reasonable starting point and it is worth knowing where it comes from — which is nowhere.
That ratio appears in no standard. Not in ISO/IEC 18004, which specifies the symbol; not in DENSO WAVE’s technical guidance, from the company that invented the format; not in GS1’s application specifications. It is a vendor convention that everybody repeats because it is easy to remember.
The floor the rule leaves out
It is also incomplete in a specific way: it takes no account of how much data is in the code. A short link and a full contact card read from the same distance get the same answer from that rule, and they need very different sizes, because one is 25 modules across and the other might be 57.
The second floor comes from the press. DENSO WAVE’s guidance is that each module should get at least four printer dots, so the module can be reproduced cleanly rather than smeared shut by ink spread. That floor scales with the module count, and it is the one that binds on dense codes and cheap printers.
- A short link, 25 modules, read from 50 cm
- Distance rule wins: 50 mm
- A full contact card, 57 modules, read from 15 cm
- Printer wins: 26 mm
- Which to print
- Whichever number is larger
Both figures at 300 dpi. The rule alone would have given the second code 15 mm, at which each module is a fifth of a millimetre and the printer cannot hold it.
So the panel asks for both. Set the distance and the printer and it reports the binding figure, says which constraint set it, and adds the quiet zone on top so you know the space to actually leave on the page. Then print one and scan it from where people will stand, because paper, gloss, lighting and angle are not in anybody’s formula.
What a logo in the middle really costs
The standard explanation is that error-correction level H recovers 30 percent, so you can cover 30 percent of the code with a logo. It is repeated everywhere, it sounds like engineering, and it is wrong in a way that matters.
The 30 percent refers to codewords, not to area. A QR symbol is divided into eight-bit codewords, and Reed-Solomon correction is budgeted per block: each block can generally fix about half as many wrong codewords as it carries recovery codewords. Damage that lands unevenly across blocks can exhaust one while the overall area covered still looks modest.
One wrong module spoils its whole codeword, so a logo does not cost you its own area — it costs you every codeword it touches, plus whatever the printing blurs at the edges. And the finder patterns, timing patterns and format information are not protected by that budget at all; lose them and no error-correction level saves the symbol.
“The standards-guaranteed safe logo area is zero percent. Any figure above that is a tested result for one symbol and one production process, not a rule.”
In practice this tool clears a hole of a quarter of the symbol’s width — about six percent of its area — keeps it centred so it can never reach a finder pattern, and forces level H whenever a logo is present. That is conservative on purpose, and it is still a thing to test on the finished print rather than on screen.
Colour, and the inverted code
Contrast is the other way styling breaks a code, and the tool reports the ratio live. Below about 3:1 misreads climb sharply on ordinary phone cameras. Dark modules on a light background is what every decoder is built around.
Inverting it — light modules on dark — is more interesting than it looks. The 2024 revision of ISO/IEC 18004 explicitly permits reflectance reversal, so an inverted code is a conforming QR code. But neither Apple nor Google publishes any guarantee that their cameras decode one, and the widely used open-source decoder only retries inverted when an option is switched on. Permitted by the standard, and still a gamble in print.
The formula, worked line by line
Two independent floors decide the printed size, and they move in opposite directions. One follows the reading distance and ignores the data; the other follows the data and ignores the distance. The size to print is whichever asks for more.
modules per side = 4 × version + 17
width from distance = reading distance ÷ 10
width from printer = modules × dots per module ÷ dpi
print width = the larger of the two
space to leave = print width × (modules + 8) ÷ modulesThe four extra modules of quiet zone on each side are why the last line exists: the symbol is `modules` wide, but the block of space it needs on the page is eight modules wider than that.
A worked case. A 1,200-byte contact card at level M makes a version 27 symbol, so 4 × 27 + 17 = 125 modules a side. Read from 30 cm, the distance rule asks for 30 mm. At 300 dpi the printer asks for 125 × 4 ÷ 300 inches, which is 42 mm. The printer wins, and a code printed to the rule alone would have been a third too small.
Dots per module is four, from DENSO WAVE’s reproduction guidance. Below that, ink spread starts closing the gaps between modules, and the symbol degrades in a way no error correction was designed to absorb.
A page for each thing a code can do
The symbol is the same either way — what changes is the string inside it, and every format has its own way of going wrong. Each page opens this tool on that type and explains the format it writes, with a worked example you can read.
Wi-Fi
Make a Wi-Fi QR code that joins the network on scan. Correct escaping, the truth about WPA3, and why the password is readable to anyone who scans it.
Contact card
Make a contact QR code that saves properly on iPhone and Android. vCard 3.0 with correct line endings, the CHARSET mistake to avoid, and how to keep it scannable.
Make a QR code that opens a WhatsApp chat with you, optionally with the first message already written. Correct wa.me number formatting, no account needed.
Google review
Turn your Google review link into a printable QR code for table tents and counter cards, sized properly for the distance. Free, no account, no incentives.
SMS
Make a QR code that opens a text message with the number and wording already in place. Uses the SMSTO form phone cameras read, with the body left as plain text.
Make a QR code that opens an email with the address, subject and body already written. Standards-based mailto encoding, generated in your browser, free.
Phone number
Make a QR code that opens the dialler with your number in it. Why the country code matters, and when a contact card is the better choice than a call link.
Location
Make a QR code that drops a pin on your exact spot. Standards-based geo coordinates that open Maps on iPhone and Android, generated in your browser.
Plain text
Turn plain words into a QR code that opens nothing and simply shows the text. What it is genuinely good for, and the length at which it stops being practical.
Questions people ask
Is this really free, with no sign-up?
Yes, and there is nothing to sign up to. The generator runs entirely in your browser, so there is no account, no usage cap and no server that could start charging. The SVG, PNG, JPG and the A4 print sheet are all free, unwatermarked, and identical to what you see in the preview.
Will my code stop working if I stop using this site?
No. The code contains your data directly, not a link back to us, so it does not depend on this site existing. That is a property of a static QR code rather than a promise we are making — you can confirm it yourself by reading the encoded string in the panel under the preview and checking that our domain is nowhere in it.
Can I track how many times my QR code is scanned?
Not with a code like this, and no tool without a server can. Counting scans means routing every one through somebody’s redirect, which is exactly the dependency this avoids. If you need numbers, add campaign parameters to the URL you encode and read them in your own site analytics — the counting then happens at your end.
Is anything I type uploaded?
No. The encoding, the styling, the logo you add and every file you download are produced in your browser. There is no upload step in the code because there is no server behind it. This matters most for Wi-Fi passwords and private links, which are exactly what people put into QR generators.
Why does my code look so much busier than the examples?
Because it holds more data. The tool always picks the smallest grid your payload fits into, so more characters mean a higher version and more modules packed into the same printed square. A long URL, a full contact card or a paragraph of text will all do it. Shortening what you encode is the only real fix.
PNG or SVG — which should I download?
SVG for anything printed. It is a true vector with no resolution of its own, so it stays sharp at any size and it is the format a print shop will ask for. PNG is right for screens, email signatures and anywhere a vector is awkward; export it at the size you actually need rather than enlarging a small one.
Sources
Where the constants and formulas on this page come from. Each line names the figure it backs.
Maximum payload of 2,953 bytes at version 40, and the 21 to 177 module range
Information capacity and versions of the QR Code — DENSO WAVE
The quiet zone is four modules wide on every side
QR Code basics — code area and margin — DENSO WAVE
A module should be reproduced with at least four printer dots
Deciding the cell size — DENSO WAVE
Error-correction levels recover a share of codewords, not of physical area
Error correction feature — DENSO WAVE
Firebase Dynamic Links stopped serving links on 25 August 2025, returning HTTP 404
Dynamic Links deprecation FAQ — Google
A minimum X-dimension of 0.396 mm for QR symbols at retail point of sale
2D Barcodes at Retail Point-of-Sale Implementation Guideline — GS1
The QR specification permits reflectance-reversed, light-on-dark symbols
ISO/IEC 18004:2024 — QR Code bar code symbology specification — ISO, 2024 revision
Related guides
Utilities
How Long Should a Password Be?
Eight characters with every symbol you can find: 5 hours. Twelve lowercase letters and nothing else: 6 days.
August 15, 2026 · 10 min read
Utilities
Putting JSON in a URL: Validate, Minify, Percent-Encode, or Base64url?
A decision guide for flattening, encoding, checking, and safely transporting JSON in a query string.
August 11, 2026 · 9 min read
Math
How to Add Fractions With Different Denominators — and Why the Rule Works
1/2 + 1/3 done the wrong way gives 2/5 — smaller than the 1/2 you started with. A sum must beat both addends, and that check is free.
August 16, 2026 · 10 min read