How to make a WiFi QR code that actually works on iPhone and Android
If you have ever read a WiFi password aloud to a guest letter by letter — the capital S, the special character, the number that is not a one — you already know why these QR codes exist. Point a camera at a square. Tap “Join Network.” Done.
The strange thing is that this has worked natively on iPhone since iOS 11 (2017) and on Android since version 10 (2019), and most people still do not use it. Part of the reason, I think, is that the format is a little weirder than it looks. You cannot just QR-encode the string MyWiFi password123 and have it work. There is a specific syntax under the hood, and if you get it wrong, the phone will read the QR but treat it as plain text instead of a network.
Here is the part nobody tells you, plus how to skip past it in about a minute.
The format
A WiFi QR code is a plain text string in this shape:
WIFI:T:WPA;S:NetworkName;P:Password;;
The capital letters are field markers:
T— security type. Almost alwaysWPAfor modern routers. Usenopassfor an open network.WEPexists, but if you are still on WEP in 2026 we should probably talk.S— your SSID (the network name, exactly as it broadcasts)P— the passwordH— optional, set totruefor a hidden network. Most networks are not hidden.
A few characters need escaping with a backslash: semicolons, commas, colons, double quotes, and backslashes themselves. So if your password is cat;dog, you would write it as cat\;dog inside the string. This is the part where rolling it by hand gets fiddly, which is why generators like this one exist.
The fast path
Open the WiFi tab on the homepage, put in your network name and password, pick PNG or SVG, download. The whole thing runs in your browser — your password never leaves the device, because there is no backend it could leave to. You can stop reading here and go print a fridge magnet.
Where it actually earns its keep
Two places I have found this most useful:
The first is by the front door. A small framed card next to wherever guests drop their keys. The second is in any kind of short-term rental welcome sheet. Guests have walked off planes; they want to message their kids; they do not want to type Tr0ub4dor!# from your laundry room while the phone keeps autocorrecting the capital T.
Cafés sometimes do this on the receipt printer, which is clever in theory. The downside is that the QR fades, and the password leaks if you ever reuse it elsewhere — which you should not be doing anyway, but you know.
When phones refuse to scan it
If you generate one and your phone reads it as text instead of joining the network, the cause is almost always one of four things:
- Wrong security type. Even if your router is on WPA2 or WPA3, the QR string still wants
WPA. There is noWPA2orWPA3token in the original spec. Most phones interpretWPAas “anything modern.” - Unescaped special characters. A literal semicolon in the password without a backslash will end the field early. Most generators handle this for you. If you are crafting the string in a Python script, watch for it.
- The image is too small or too dense. A 100×100 pixel WiFi QR with a 64-character WPA3 password is going to be unreadable at arm’s length. Make it bigger, raise the error correction level, or — better — use a shorter password on the network you are sharing.
- Old Android. Android 9 and below do not have a built-in QR scanner that handles the WiFi format. Google Lens does, if it is installed.
A small but worthwhile suggestion
Almost every modern router can broadcast a separate guest SSID with its own password, isolated from the main network so guest devices cannot see your printer, your NAS, or whatever else lives on the LAN. Generate the WiFi QR for the guest network. Keep your real one in your password manager. This is one of those router features that has been around forever and that approximately nobody turns on.
Logos, colours, rounded corners
You can put a logo in the middle, change the colours, round the corners. The QR specification has enough error correction to tolerate up to about 30% damage and still scan. The catch is that contrast matters more than design. A pale yellow on white is going to fail half the time. If you are branding one of these for a business and printing two hundred of them, test on three different phones first — including at least one Android — before you commit to a print run.
The generator on this site handles colour and logo overlays. Keep contrast high, keep the logo under roughly 20% of the code area, and use the highest error correction level (H) when you are adding a logo.
If you make one of these for the door, I would honestly love to know whether your guests use it or politely ask for the password anyway. Mine still ask, mostly out of habit.
If you want to know who is behind this site or how the generator works under the hood, the about page covers it.