Free QR code generator
Links, Wi-Fi, contact cards and more — with frames, colours and your logo. Download PNG (with a transparent background if you want), JPG, WebP, SVG, PDF or EPS. Everything happens in this browser tab: nothing is uploaded, nothing is tracked, nothing expires.
- No sign-up
- No watermark
- No scan limits
- Works offline
- Apache-2.0 open source
1 What should it do?
2 Make it yours
Captions lift scan rates: people need to be told what they get. Keep it to a few words — “Menu”, “Free Wi-Fi”, “Pay here”.
Modules
Corner eyes
Tested combinations
Your image stays on your device. Covering the middle costs error correction — the panel on the right warns you when you have gone too far. EPS is vector only, so a bitmap logo is left out of that one file.
Automatic error correction uses the strongest level that still fits your data at the same code size, so you get extra robustness for free. Never go below a quiet zone of 4 modules: scanners use that empty margin to find the code.
How big should a QR code be?
Almost every QR code that “does not work” is simply too small for the distance it is scanned from, or printed so small that the individual squares blur together. Two numbers settle it.
The 10:1 rule
Width of the code ≥ scanning distance ÷ 10. A code read from one metre away needs to be at least 10 cm wide. Add a margin if people will scan it while walking, from a car, or in poor light — aim for distance ÷ 8.
| Scanned from | Minimum width | Comfortable | Typical use |
|---|---|---|---|
| 10 cm | 2 cm | 2.5 cm | Business card, product label — never go under 2 cm |
| 30 cm | 3 cm | 4 cm | Menu, flyer, packaging, letter |
| 1 m | 10 cm | 13 cm | Poster in a shop window, table tent |
| 2 m | 20 cm | 25 cm | Wall poster, exhibition stand |
| 5 m | 50 cm | 63 cm | Banner, shop front |
| 20 m | 2 m | 2.5 m | Billboard, building wrap |
The smallest square matters more than the total size
A QR code is a grid of modules. The more you encode, the more modules the code needs, and the smaller each one becomes at the same printed width. Keep every module at 0.4 mm or larger for offset and digital printing; ask for 0.6 mm or more on cardboard, textile, thermal receipt paper and anything printed on a curved surface.
So the cheapest way to make a code easier to scan is to shorten the data. example.com/x7 needs far fewer modules than a URL carrying three tracking parameters. Two more free wins: drop the https:// only if you must (most scanners need it for links), and note that a URL typed in capitals — EXAMPLE.COM/MENU — encodes more compactly than lower case, because upper case fits the alphanumeric mode. Domains are case insensitive, so it still works.
Colour and contrast
A scanner does not see colours, it sees light and dark. The rules that follow from that are short:
- Dark code on a light background. Inverted codes (light on dark) are read by many phones but rejected by plenty of older scanners, kiosks and access-control readers. If you must invert, test the exact devices that will be used.
- Aim for a contrast ratio of at least 4:1, treat 3:1 as the hard floor. The panel next to your code shows the live ratio. Pale pastel on white and dark grey on black both fail here.
- Red, orange and yellow read as “light” to many older infrared and red-laser scanners. Dark blue, dark green, deep purple, near-black and brown are safe choices for the modules.
- No photographs or gradients behind the code. A flat panel behind the modules costs you nothing and prevents a whole class of failures.
- Matte, not glossy. Glossy laminate and glass throw back the phone’s own light; varnish a window around the code instead.
- Keep the quiet zone. Four empty modules on all sides. Text, a border or a photo edge inside that margin makes the code hard to find, even though the data is intact.
Watch out for one more thing in print: ink spread. On absorbent stock the dark modules grow and swallow the light ones. If a supplier tells you the code came out “muddy”, print the modules slightly smaller rather than pushing the whole code up in size.
Logos and error correction
Every QR code carries redundant data, so it survives damage. That is what makes a logo in the middle possible, and it is also the budget you spend when you add one.
| Level | Recovers about | Data capacity | Use it for |
|---|---|---|---|
| L | 7% | Largest | Long URLs on clean screens, no logo |
| M | 15% | — | The usual default for print without a logo |
| Q | 25% | — | A small logo, or a surface that gets dirty or scratched |
| H | 30% | Smallest | A logo of noticeable size, labels on boxes, outdoor use |
- Cover no more than about 15% of the area with your logo, and raise the level to Q or H when you do.
- Keep the three corner squares and the timing lines between them completely clear. They are how a scanner finds and aligns the code; no amount of error correction repairs those.
- Put the logo in the centre and leave a small padded gap around it, so the scanner does not read the edge of your artwork as a module.
- Error correction is a safety margin, not a feature to spend. A code that only just scans on your new phone will fail on a five-year-old one in a dim restaurant.
Print and test checklist
- Scan the final artwork at final size, not the file on your monitor.
- Test with at least two phones, one of them a few years old, and once in dim light.
- Check the whole journey: does the page the code opens work on a phone, and does the Wi-Fi password still match?
- Send vector files (SVG or EPS) to a printer. Ask them not to scale non-proportionally and not to apply a spot varnish over the code.
- Tell people what they get. A caption such as “Menu” or “Free Wi-Fi” is worth more than any design trick.
- Put the code where a phone can reach it: not above a shop window, not behind a counter, not on a moving vehicle.
- Keep a text alternative nearby — a short URL, a phone number — for anyone who cannot or will not scan.
Which download do you need?
Click a format above the download button to see that exact file in the preview, then download it. PDF and EPS are documents rather than images, so browsers cannot show them inline — for those two the preview keeps showing the PNG while the download stays fully vector.
- PNG
- The safe default for screens, e-mail, slides and web pages. Sharp edges, no compression artefacts. Choose 2048 px or more if it will also be printed small.
- PNG with a transparent background
- Tick Transparent background under Shape & colour. For placing the code on a coloured or textured surface — keep that surface light and flat, or you lose the contrast you need.
- JPG
- Only when a system insists on JPG. It cannot store transparency and its compression softens the edges of the modules, which is exactly the detail a scanner needs.
- WebP
- The same picture as PNG at roughly a third of the file size, with transparency. Ideal for your own website; less welcome in print shops and older software.
- SVG
- Vector, infinitely scalable, editable in Illustrator, Inkscape, Figma and Affinity. The best choice for print and large formats. Your logo travels inside the file.
- Vector too, and the file most print shops actually ask for. It keeps the caption as real text in Helvetica and embeds your logo, so one file is enough to hand over.
- EPS
- Vector for older print and packaging workflows that still specify EPS. The caption uses Helvetica; a bitmap logo cannot be stored in it, so send the SVG or PDF when your design has one.
The list of bitmap formats depends on your browser: this page asks it what it can encode and only offers what really works. AVIF appears once your browser can write it — today most cannot, and a browser that is asked anyway quietly returns a PNG inside a file named .avif. GIF, BMP and TIFF are not offered: no browser encodes them, and none of them would beat PNG for a QR code.
Frequently asked questions
Are these QR codes really free, also for commercial use?
Yes. What you create is yours: put it on products, packaging, menus and advertising without asking anyone. No account, no watermark, no scan limit, no expiry. The QR code format itself was made freely available by its inventor Denso Wave, and this site adds no conditions of its own.
Do the codes expire or stop working?
No. Your link or text is written into the pattern itself, so scanning never touches this site. If we disappeared tomorrow, every code you made here would keep working.
Do you track scans or store what I type?
No. There is no analytics, no cookie and no upload: the page is HTML, CSS and JavaScript that runs on your device. You can disconnect from the internet after the page loads and keep generating codes. That is also why there are no scan statistics — counting scans requires a server in the middle, and this site has none.
Why are there no dynamic QR codes here?
A dynamic code points at a redirect service so the destination can be changed later. That service must stay online and paid for, forever, or every printed code breaks — which is why so many of them are subscriptions. For the same flexibility without the dependency: point the code at a short path on your own domain, such as example.com/m, and redirect from there. You keep control and you can change the target whenever you want.
Can I upload a PDF, a video or a gallery?
Not here, because hosting your file would mean a server and a bill. Put the file on your own website, Google Drive, Dropbox or YouTube and make a Link code that points to it. Keep the link short: a shorter link means fewer modules and a code that scans more easily.
Why does my code look different after a small edit?
An encoder chooses between eight mask patterns, picking the one that avoids large same-coloured areas and shapes a scanner might confuse with the corner markers. Change a character or the error correction level and a different mask may win. Both versions scan to exactly the same content.
Does the Wi-Fi code work on every phone?
iOS 11 and later and Android 10 and later join a network straight from the camera. Older phones need a QR app that understands the Wi-Fi format. WPA2 and WPA3 networks work; enterprise networks with a user name and certificate cannot be expressed in a QR code.
My code is not scanning. What now?
Work through it in this order: is it big enough for the distance (the 10:1 rule); is the contrast at least 3:1 with a dark code on a light background; are all four sides of the quiet zone clear; is the logo smaller than 15% of the area with the corner squares untouched; is the surface matte and flat; and finally, is the destination itself working? In print, also check that nobody scaled the code non-proportionally.
Open source, and why that matters here
This whole site is a static page: one HTML file, one stylesheet and five small JavaScript files, with no dependencies and no build step. The QR encoder was written for this project and verified against an independent reference implementation across all 40 symbol versions and all four error correction levels.
You can read, audit, self-host, fork and re-use all of it:
github.com/spidfire/qr-code-free-org
Licence
The source code is licensed under the Apache License 2.0 — use it commercially, modify it, ship it inside your own product, as long as you keep the notice and the licence text. The page text and documentation are offered under the same licence. QR Code is a registered trademark of Denso Wave Incorporated, which is not affiliated with this project; the symbol format itself is standardised as ISO/IEC 18004 and free to use. The QR codes you generate carry no licence from us at all.