QR code generator
Make a QR code for a website, some text, your Wi-Fi, an email, a phone number, a text message or a contact card. Download it as PNG or SVG, free, with no sign-up.
Static codes that never expire. Your details go straight into the code, not through a tracking or redirect link, so it keeps working for ever and nobody counts who scans it. Everything is made in your browser. Nothing is stored or sent anywhere.
What should the code contain?
Paste the full link. Shorter links make simpler codes that are easier to scan.
Phones show the text when the code is scanned. Emoji and accented letters work too.
Anyone who scans this code gets your Wi-Fi password. Only print it where you'd be happy to share the password, and use a guest network for codes on public display. If you change the password, make a new code.
Scanning opens a new email in the phone's mail app, ready to send.
Use the +44 form (drop the first 0) if people abroad might scan it.
Scanning offers to save you as a new contact. Fill in only what you want to share; every extra field makes the code denser.
Your QR code
Your QR code will appear here as you type.
Show exactly what's in the code
Style and size
Higher error correction still scans when part of the code is dirty or damaged, but makes it denser. Medium suits most uses.
How this tool works
As you type, your browser turns what you've entered into the standard text format phones understand, for example WIFI:T:WPA;S:HomeWiFi;P:secret;; for a Wi-Fi network, a mailto: link for email or a vCard for a contact. It then encodes that text as a QR code following the ISO/IEC 18004 standard, using the open-source QR Code Generator library by Kazuhiko Arase, which is built into this page. The smallest code size (version) that fits is picked automatically, and you can open "Show exactly what's in the code" to see the text inside.
These are static QR codes: the link, text or details are stored in the black and white squares themselves. Many "free" QR sites make dynamic codes instead, which point to a short link on their own server and redirect from there. That lets them count scans, and also lets them switch the code off or show adverts when a free trial ends, after you've printed it. A static code has nothing to switch off, so it works for as long as the link or details inside it do.
Nothing you type is stored or sent anywhere. The page doesn't call any server to make the code, so it even works offline once loaded. PNG files are drawn on a hidden canvas at the size you pick, and SVG files are vector graphics that stay sharp at any size, which suits printers and designers.
Tips for codes that scan first time
- Test before you print. Scan the downloaded file with two different phones, ideally one iPhone and one Android, from the distance people will really use.
- Print it big enough. At least 2 cm across for something held in the hand, such as a business card. As a rough rule, make it a tenth of the scanning distance: 10 cm wide for a poster read from 1 metre away.
- Keep strong contrast. Dark squares on a light background work best. Light codes on dark backgrounds don't scan in some apps, and pale colours such as yellow fail in poor light.
- Leave a margin. Keep a clear border of at least 4 squares around the code, with no text or pictures touching it.
- Keep it short. Less content means bigger squares, which scan faster and from further away. Use a short page address where you can.
- Use SVG for print. Printers and design apps can scale SVG to any size without blurring. For PNG, choose 1000 px or more for print.
- Check the link is permanent. A static code can't be edited, so point it at a page you control and will keep.
Frequently asked questions
Do these QR codes expire?
No. They are static codes with your link or details stored directly in the pattern, so there's no account, subscription or redirect service behind them that could stop. A code only stops working if the thing inside it changes, such as a web page being taken down or a Wi-Fi password being changed.
Are scans tracked?
No. Scanning a static code takes people straight to your link or shows your details, without going through our server or anyone else's. That also means we can't tell you how many people scanned it. If you need scan counts, add a tracking tag (such as a UTM tag for Google Analytics) to your own link before making the code.
Is what I type stored or sent anywhere?
No. The code is made inside your browser on your own device. Your links, Wi-Fi passwords and contact details are never sent to us or anyone else, and nothing is kept once you close the page.
Can I use the codes commercially?
Yes. The codes are yours to use on menus, flyers, packaging, business cards or anything else, with no attribution needed. "QR Code" is a registered trademark of DENSO WAVE INCORPORATED.
Can I edit a code after printing it?
No, a static code can't be changed once made. Make a new one with the new details. If you think the destination might change, point the code at a page on your own website that you can update or redirect yourself.
Should I download PNG or SVG?
PNG is an image that works everywhere, including Word, email and social media. SVG is a vector file that stays sharp at any size, so it's the better choice for printers, signs and design apps such as Canva, Illustrator or Inkscape.
How do people scan a Wi-Fi code?
On most iPhones and Android phones, open the camera, point it at the code and tap the Wi-Fi notice that appears. The phone joins the network without anyone typing the password. Some older Android phones need the scanner in Google Lens or the Wi-Fi settings screen instead.
Which error correction level should I choose?
Medium suits most uses. Choose High if the code might get scuffed, wet or partly covered, for example on outdoor signs or packaging. Low makes the simplest pattern, which helps when the code has to be printed very small and will stay clean.
Why won't my code scan?
The usual causes are low contrast, a light code on a dark background, no white margin around it, printing it too small for the amount of content, or a blurry print. Try black on white with the default settings, make it larger, and shorten the content if you can.