What does a QR code actually store?
The pattern is the data. A QR code is a grid of black and white squares, called modules, that spells out a literal string: a link, a line of text, a Wi-Fi login. No server is involved in a scan. The reader finds the three big corner squares to work out the orientation, reads the format area that records the mask and the error correction level, and decodes the rest into text. The layout, the encoding and the Reed-Solomon error correction are all defined by the international standard ISO/IEC 18004, which is why a code made here reads the same on a phone bought anywhere.
That is where static and dynamic codes part company. This page makes static ones: your link is baked into the squares, nothing is tracked, and the code lasts as long as the link does. Most commercial generators hand you a dynamic code instead, which encodes a short redirect owned by the provider. You gain an editable destination and scan counts, and you take on a dependency: when the trial ends or the company closes, every printed code dies at once, usually after the flyers have shipped.
Which type and which error correction level
- Text / URL: a link on a poster, menu, packaging, badge or business card, or any short piece of plain text. Shorter content means fewer modules and bigger squares.
- Wi-Fi network: a code a guest points a camera at instead of reading a password off a router label. Tick hidden network only if the router does not broadcast its name.
- Level L, about 7 percent recovery: screens, or a long URL you need to keep as sparse as possible.
- Level M, about 15 percent: the default here, and the right answer for clean printing on paper.
- Level Q, about 25 percent: codes that live outdoors, on a shop window, or on packaging that gets handled.
- Level H, about 30 percent: when a logo sits in the middle, or part of the code will be covered or damaged. Higher levels add modules, so plan to print larger.
- SVG or PNG: SVG for anything a printer touches, since vector stays crisp from a business card to an A0 poster and can be recoloured later. PNG for slides, documents, email and chat.
How to make a link QR code for a poster or a menu
- Keep Text / URL and paste the full address, including the https:// part. A bare domain usually works; the full form removes any doubt about what the phone will open.
- Trim long tracking parameters first. Every extra character adds modules and shrinks the squares at a fixed print size.
- Set the error correction level: M for an indoor menu or a flyer, Q or H for a window sticker or an outdoor board.
- Scan the preview on this screen with your own phone before you download anything. It is the cheapest test you will ever run.
- Download the SVG for print, or the PNG at 1024 px for a slide and 2048 px for a full-page document.
- Leave the white margin alone. The standard asks for a quiet zone four modules wide on all four sides, and the file already includes it. Cropping it is one of the most common reasons a printed code fails.
- Size it for the reading distance. As a rule of thumb, make the code at least one tenth of that distance: about 3 cm for a table card read at 30 cm, about 30 cm for a poster read from 3 m.
How to make a Wi-Fi QR code for guests
- Switch to Wi-Fi network.
- Type the SSID exactly as it appears in the Wi-Fi list, capitals and spaces included. It is the network name, not the router model.
- Enter the password and choose the security type. WPA covers WPA, WPA2 and WPA3, which is almost every router in service; WEP is only for very old hardware. Pick No password for an open network and the password field is dropped from the code.
- Tick Hidden network if the router does not broadcast its name. That adds the H:true field the phone needs in order to find it.
- Download and print. The code holds a plain string of the form WIFI:T:WPA;S:NetworkName;P:Password;; from the ZXing barcode contents specification, the convention iOS and Android camera apps read. Semicolons, colons, commas, quotation marks and backslashes in your SSID or password are escaped with a backslash automatically, so a password such as
a;b:cstill scans. - Point the code at the guest network, not the one your laptop and storage sit on. A code taped to a wall is a password anyone can photograph.
Downloading, printing and dropping it into a document
- Desktop: both buttons save to your Downloads folder. The SVG opens in Illustrator, Affinity Designer, Inkscape and Figma, where you can recolour it or add a logo without losing sharpness.
- Word, Google Docs, PowerPoint, Slides: use the PNG and insert it as a picture, since these apps handle SVG unevenly. Turn off automatic image compression before exporting a PDF for print.
- Canva: PNG uploads work on any plan. SVG upload is a paid-plan feature at the time of writing.
- iPhone and iPad: a download saves through Safari into the Downloads folder in the Files app, and the share sheet sends it on to Canva, Docs or a message.
- Android: the file lands in Downloads and appears in the notification shade. Open it from Files and share it into whichever app you are laying out in.
- Printing: print at 100 percent with fit to page scaling switched off, black on white, matte if you have the choice. Glossy laminate throws back enough light to defeat a camera at exactly the angle people hold a phone.
Where QR codes scan, and what stops them
- iPhone and iPad: the built-in Camera app has read QR codes since iOS 11 in 2017. Point it at the code and tap the banner. A Code Scanner button can also be added to Control Centre.
- Android: most current phones scan from the stock camera, and Google Lens reads codes on the rest, including from a screenshot already in the gallery. On an older or stripped-down build, Lens is the reliable route.
- Wi-Fi codes: both platforms recognise the WIFI: string and offer to join the network rather than opening a browser. Android can also generate its own sharing code from a saved network in Wi-Fi settings.
- WeChat and LINE: both have in-app scanners that many users reach for before the system camera. They open links in their own browser, so a page that depends on a desktop-style browser feature can behave differently there.
- What breaks a scan: too small for the distance, a cropped quiet zone, low contrast such as grey on beige, inverted colours with light modules on a dark background, reflections off gloss, a payload long enough to make the modules tiny, or a camera that cannot focus that close. Inverted codes are the sneaky one: some readers cope, many do not.
Before you print a thousand of them
A static code is public and permanent. Whatever you encode can be read by anyone who photographs it, and it cannot be edited afterwards. Check the link character by character, scan the proof, then send it to the printer. If the destination might move, point the code at a URL you control and redirect on your own server.
Wi-Fi codes are passwords in plain sight. Use a guest network, change it when staff or housemates change, and do not post a photo of the printed code.
Scanning carries its own risk. Stickers placed over legitimate codes on parking meters and menus are a real fraud pattern. Read the domain in the preview before you open it, and be suspicious of any code that asks for a payment or a login.
Accessibility. A QR code is invisible to a screen reader and useless without a phone camera. Print the plain URL beside it and keep a readable alternative for anything essential, such as a menu or a ticket.
Trademark. QR Code is a registered trademark of Denso Wave, which invented the format in 1994. The specification itself is open and free to use.
Frequently asked questions
Is this QR code generator free, and will the code expire?
Yes, it is free, there is no account and there is no limit on how many codes you make. The codes are static, which means the text or link you typed is encoded directly into the black and white pattern. Nothing points back to this site, so the code keeps working for as long as the link itself works, even if this page disappears tomorrow.
What is the difference between a static and a dynamic QR code?
A static code contains your actual content. A dynamic code contains a short redirect link owned by a QR service, and that service decides where the scan lands. Dynamic codes let you change the destination after printing and count scans, but they stop working if the subscription lapses or the provider shuts down, and every scan passes through a third party. This tool makes static codes only.
Can I see how many people scanned my QR code?
Not with a static code, because no server is involved in the scan. If you need scan counts, point the code at a link you control and read your own web analytics, or add campaign parameters to the URL. Keep in mind that a longer URL makes the pattern denser and slightly harder to scan at a distance.
How small can I print a QR code?
A common rule of thumb is that the code should be at least one tenth of the distance it will be scanned from. Read from about 30 cm on a table card, that is roughly 3 cm across. Read from 3 m on a poster, that is roughly 30 cm. Add margin on top of that if the code holds a long URL or uses a high error correction level, because both make the individual squares smaller.
Which error correction level should I choose?
L recovers about 7 percent of the code, M about 15, Q about 25 and H about 30. M is a sensible default for clean printing on paper or for a screen. Move up to Q or H when the code will be outdoors, handled, laminated, stuck on packaging, or partly covered by a logo. Higher levels add modules, so the same physical size gives you smaller squares and you may need to print bigger.
Can I put a logo in the middle of the code?
Yes, if you generate at level H and keep the logo small, under roughly a fifth of the code area, with a little white padding around it. Error correction reconstructs the covered modules. Download the SVG, place the logo in a vector editor, then scan the result with two or three different phones before you commit it to print.
How does a Wi-Fi QR code work, and is it safe to print one?
The code holds a plain text string in the form WIFI:T:WPA;S:NetworkName;P:Password;; which iOS and Android camera apps recognise and offer to join. Because the password sits in the pattern in the clear, anyone who photographs the printed code has your password. Put guests on a guest network rather than the network your own devices and storage live on.
Why will my QR code not scan?
The usual causes, in order: the code is too small for the reading distance, the white margin around it was cropped away, contrast is too low (pale colours, grey on grey, or a photo behind it), the colours are inverted so the dark modules are light, the surface is glossy and reflecting, or the payload is so long that the modules are tiny. Try printing it larger in plain black on white before blaming the scanner.
Should I download the SVG or the PNG?
SVG for anything that goes to a printer: it is vector, so a business card and an A0 poster come out equally sharp, and you can edit the colours or drop in a logo afterwards. PNG for slides, documents, email and chat, where a fixed pixel image is simply easier to drop in. Pick a bigger PNG than you think you need, since scaling a small PNG up produces soft edges that confuse scanners.
Can I change the colours or invert the code?
The downloads here are black on white, which is what every scanner expects. You can recolour the SVG in a vector editor, but keep the dark modules genuinely dark, keep the background genuinely light, and do not swap them around. Many readers cope with inverted codes, plenty do not, and a low contrast pair such as mid grey on beige fails on nearly all of them.
Sources
- ZXing project, Barcode Contents (the WIFI: field format, the H field for hidden networks, and the rule that backslash, semicolon, comma, quotation mark and colon are escaped with a backslash).
- ISO/IEC 18004, the international standard for the QR Code symbology: symbol versions, the four error correction levels, the Reed-Solomon coding behind them, and the four-module quiet zone.
- Camera behaviour on iOS and Android, and the in-app scanners in WeChat and LINE, comes from each vendor help centre and from testing. App behaviour changes with updates, so treat it as accurate at the time of writing.
More tools
Putting a login behind that code? The password generator builds one in your browser with no round trip to a server. If the code points at a page you are still writing, the word and character counter keeps captions and meta descriptions inside their limits, and the time zone converter works out when a launch actually lands for the people you are inviting.
Related tools
- Random Password Generator
Generate a cryptographically random password in your browser: choose the length (4 to 64),…
- Word Counter & Character Count
Count words, characters with and without spaces, sentences and paragraphs as you type.
- Time Zone Converter
Convert a time across 90 world cities at once, from New York and London to Tokyo and Sydne…
Privacy: the QR code is drawn by JavaScript inside your browser. Your text, links, SSID and Wi-Fi password are never sent to a server, and nothing you type is recorded in analytics. The copy share link button is the one exception: it copies the current URL, which carries your values, including the Wi-Fi password, so treat that link as a secret.
