About this free QR code generator
This QR code generator turns a link, a Wi-Fi login or any text into a static QR code you can download as a PNG or SVG. There is no sign-up, no watermark and no scan limit, and the code is built in your browser, so what you type is not uploaded. You can pick the size, the foreground color and one of the four error correction levels, and the preview updates as you type.
How it works
The text is converted to UTF-8 bytes and stored in the code's byte mode. If it contains any character outside plain ASCII, a 3-byte UTF-8 marker is added at the start. The tool then picks the smallest QR version, from 1 (21 × 21 modules) up to 40 (177 × 177), that holds those bytes at the error correction level you chose. It adds Reed-Solomon error correction data, applies the mask pattern that makes the code easiest to read, and draws it. The line under the preview shows the version, module count, byte count and level.
Both downloads include a white quiet zone four modules wide on every side, and the PNG is exactly the size you choose. The SVG contains the same pattern as vector squares, so it stays sharp at any print size.
Worked example
The page opens with https://thealltools.com at 300 × 300 and level M. That URL is 23 bytes. Version 1 holds only 14 bytes at level M, while version 2 holds 26, so the result is version 2, a 25 × 25 grid. With the quiet zone the PNG is 33 modules across, about 9.1 pixels per module. Switch to level H and the same URL needs version 3, 29 × 29, because more of the code goes to error correction.
Static vs dynamic: a QR code that doesn't expire
A static code, like the ones made here, stores your URL or text in the pattern itself. Nothing sits between the scan and your link, so there is nothing to expire, and it keeps working for as long as the destination page exists.
A dynamic code stores a short link to a QR service's server, which redirects to your real URL. That lets you change the destination later and count scans, but the code depends on that service. Some "free" QR makers produce dynamic codes, and the redirect can stop working when a trial or subscription ends or the service closes, which breaks every printed copy. Check the terms before printing one. For anything printed in quantity, a static code pointing at a page you control is the safer choice: you can update the page instead of reprinting the code. To count scans without a redirect, tag the link with the UTM Builder before encoding it, and the visits show up in your analytics.
Error correction levels
Error correction lets a scanner read a code that is dirty, scuffed or partly covered. Denso Wave, which invented the QR code, lists approximate restoration rates for the four levels defined in ISO/IEC 18004. The capacities are for version 40, computed from the standard's data codeword counts:
| Level | Codewords restorable | Digits only | Alphanumeric | Bytes |
|---|---|---|---|---|
| L | about 7% | 7,089 | 4,296 | 2,953 |
| M (default) | about 15% | 5,596 | 3,391 | 2,331 |
| Q | about 25% | 3,993 | 2,420 | 1,663 |
| H | about 30% | 3,057 | 1,852 | 1,273 |
This tool always uses byte mode, so the Bytes column is its limit. A plain English letter or digit is one byte, an accented letter two, most other scripts three and an emoji four, plus the 3-byte marker once. M suits screens and clean print. Choose Q or H for codes on packaging, outdoor signs or anything that may get worn, and L only when you need the most data in the fewest modules.
What you can encode
- A URL. Include
https://so every scanner recognizes it as a link. - Plain text. Shown as text when scanned.
- Wi-Fi. Type
WIFI:T:WPA;S:MyNetwork;P:MyPassword;;.Tis the security type (WPA,WEPornopass),Sthe network name andPthe password, each field ending in a semicolon. If the name or password contains\,;,,,:or", put a backslash before it. This format comes from the open-source ZXing barcode project and is read by most phone cameras. That string is 37 bytes: version 3 at level M.
For product barcodes such as UPC, EAN-13 or Code 128, use the Barcode Generator instead.
Size, quiet zone and contrast for print
- Size. What matters is the size of each module. A long text makes a high version with small modules, so a 200 px PNG of a dense code can be hard to read. Shorten the content, pick a larger size, or use the SVG, which scales cleanly. Print larger for codes scanned from a distance.
- Quiet zone. Scanners need the blank margin, four modules wide, to find the code's edges. It is already in the downloads; keep artwork and text out of it.
- Contrast. The background is always white here, so pick a dark foreground. A pale or pastel color can look fine on screen and still fail in dim light.
Test before you print
Scan the downloaded file with two different phones, and check that the link opens the right page and that a Wi-Fi code joins the network. The QR Code Scanner can decode an image file in your browser, which confirms the exact text before you send anything to print. Then print one proof at the final size and scan it from the distance people will use.
Common mistakes
- Expecting to edit it later. A static code can't be changed after printing; only the page it points to can.
- Encoding a typo. A wrong letter in the URL works as a code but leads nowhere.
- Packing in too much. Codes near the capacity limit are dense and slow to scan. Short links scan fastest.
Frequently asked questions
No. They are static codes: your link or text is stored in the pattern itself, with no redirect server, account or subscription behind it, so there is nothing to switch off. The code keeps working as long as the page it points to stays online.
Those are usually dynamic codes. They hold a short link to the provider's server, which redirects to your real address, and the redirect can stop when a trial or subscription ends or the service closes. A static code from this page has no such dependency.
M, the default, recovers about 15% of codewords and suits screens and clean print. Choose Q (about 25%) or H (about 30%) for packaging, signs or codes that may get scratched, and L (about 7%) only when you need to fit the most data. Higher levels make the code denser for the same text.
In byte mode, which this tool uses, the largest code (version 40) holds 2,953 bytes at level L, 2,331 at M, 1,663 at Q and 1,273 at H. Plain English letters take one byte each, accented letters two and most other scripts three, plus a 3-byte marker when the text is not plain ASCII. Codes near the limit are dense and hard to scan.
Use the SVG for print, because it is vector and stays sharp at any size. The PNG is a fixed-size image of 200, 300 or 500 pixels, which is fine for screens, documents and web pages. Both include a white quiet zone four modules wide.
The usual causes are a pale foreground color, a code printed too small for how much data it holds, or artwork crowding the blank margin around it. Use a dark color, shorten the content or print larger, and keep the quiet zone clear. Then test with more than one phone.
Type WIFI:T:WPA;S:YourNetwork;P:YourPassword;; into the text box, replacing the network name and password. Use WEP or nopass instead of WPA if that matches your network, and put a backslash before any backslash, semicolon, comma, colon or double quote in the name or password. Most phone cameras offer to join the network when they scan it.