Why is my WiFi QR code not working?
Updated
Short answer
Check these in order. The network name must match exactly, capitals included. A network that does not broadcast its name must be marked hidden in the code. The security type must be right, and almost every modern router is WPA. Then rule out a 5 GHz-only band, a business login page, and a phone too old to read WiFi codes at all.
First, work out which half is broken
Two very different problems look the same from arm's length, and telling them apart cuts the work in half. Point a phone at the code and watch what happens. If no prompt appears at all, the phone is failing to read the image, and the fault is with the code as a picture: its size, contrast, focus or margin. If a prompt does appear, naming your network, but joining fails or hangs, then the image is fine and the details inside it are wrong.
A quick way to be certain: scan the code with any plain QR reader that shows raw text rather than acting on it. You should see a single line beginning WIFI: followed by your network name. If you can see that line, the code is readable and every remaining fix is about its contents.
| What happens when you scan | Where the fault is | Go to |
|---|---|---|
| Nothing at all, no prompt | The image cannot be read | The code will not scan |
| A prompt appears, joining fails | The details are wrong | The network name, Hidden networks |
| Joins, then no internet | The connection worked | It connects but there is no internet |
| Shows text starting WIFI: | The image is fine | The network name onwards |
The network name must match exactly
A network name, properly called an SSID, is case sensitive. "CafeWiFi", "cafewifi" and "Cafe WiFi" are three different networks as far as a phone is concerned, and a code carrying the wrong one will offer to join a network that does not exist. This is the single most common reason a code that looks right does not work.
Copy the name from a device already connected rather than from memory or from the label on the router, which is often out of date if anyone has ever renamed the network. Watch for a trailing space, which is invisible and fatal, and for characters that look alike: a capital I and a lowercase l, a zero and a capital O, or a hyphen and an en dash pasted in from a document.
Hidden networks need to be marked hidden
Some networks are configured not to broadcast their name. A phone cannot stumble across one, so it only looks for a hidden network when it is told the network is hidden. A code without that flag tells the phone to search for a network that, as far as the airwaves are concerned, is not there. The scan succeeds, the prompt appears, and the connection quietly times out.
If your network does not appear in the list of nearby networks on a device that has never joined it, it is hidden. Rebuild the code with "Hidden network" set to yes on the WiFi generator, and it will connect.
The security type has to be right
The code names the kind of security your network uses, and a mismatch stops the connection. Almost every router made in the last decade uses WPA2 or WPA3, both of which are covered by the WPA option. WEP is obsolete and only appears on very old equipment. An open network with no password needs the open option, and picking WPA for it will fail even though the password box is empty.
| Your network | Choose | Note |
|---|---|---|
| WPA2 or WPA3, the usual case | WPA/WPA2/WPA3 | Correct for virtually every modern router |
| WEP, on old equipment | WEP (older networks) | Rare, and worth replacing on security grounds |
| No password at all | No password (open network) | Leave the password box empty |
| A business login page after joining | No password (open network) | The code joins the network, the login still has to be done by hand |
| A username and a password | Not supported | Enterprise networks cannot be carried in a WiFi QR code |
Passwords, spaces and special characters
Passwords are case sensitive too, and the same lookalike characters cause the same trouble. A password copied from a chat message or a PDF can arrive with a space on the end, or with curly quotes in place of straight ones, and neither is visible once the field shows dots.
Punctuation itself is not a problem here. Semicolons, colons, commas, quotation marks and backslashes all have a special meaning inside the WiFi code format, and are escaped automatically when the code is built, so a password full of symbols works exactly as typed. If you have seen this fail elsewhere, that is why: some generators do not escape them, and the code silently truncates at the first semicolon.
Bands, guest networks and the router itself
- A 5 GHz or 6 GHz network that an older phone cannot see will never appear, whatever the code says. Many routers publish 2.4 GHz and 5 GHz under one name, but where they are split, point the code at the band every guest can reach.
- A guest network usually has its own name and its own password, separate from the main one. Codes get built from the main network details by mistake more often than anything else on this list.
- Some routers isolate guest devices from each other, which is fine for internet access but breaks printers and casting. That is a router setting, not a fault in the code.
- If the password has been changed since the code was printed, the code is simply out of date. A static QR code cannot be edited after printing, so it has to be regenerated and reprinted.
- A network at its device limit will refuse new connections while looking, from the phone, exactly like a wrong password.
Phones that cannot read WiFi codes
Reading a WiFi code and joining automatically is a feature of the phone, not of the code. iPhones have handled it in the Camera app since iOS 11, and Android since version 10. Older Android phones often scan the code happily and then show the raw WIFI: text, with no offer to join, because the camera app does not recognise the format. A separate QR scanner app usually fixes that, and on any phone the network can still be joined by hand from the text on screen.
Work phones can also be the obstacle. Devices managed by an employer are frequently prevented from joining networks that are not on an approved list, and the refusal looks identical to a bad password. If you are unsure whether the phone is reading the code at all, the guide on how to scan a QR code covers what each platform does.
When the code will not scan at all
If no prompt ever appears, treat it as a printing or display problem rather than a network one. WiFi codes are unusually dense, because a network name and a long password make for a lot of data, and a dense code needs more room than people expect.
- Print it larger. About 2 cm square is the minimum for close-up scanning, and a long password may need 3 cm or more.
- Keep the blank margin around the code. Cropping tight to the pattern, or setting the code in a box that touches it, is a very common cause of failure.
- Keep it dark on light, with strong contrast. Pale codes on coloured card are the usual casualty of a nicely designed table card.
- Avoid glossy laminate and curved surfaces, both of which defeat the camera rather than the code.
- Shorten what is in it. A shorter password produces a less dense code, and a guest network with a simple password is easier to scan than a long random one.
The size guide covers print dimensions in more detail, including how far away a code can be read from.
It connects but there is no internet
If the phone joins the network and then reports no internet, the QR code has done its job completely and the problem is beyond it. The usual causes are a captive portal waiting to be accepted in a browser, a guest network whose data allowance has run out, or an internet connection that is down for everyone. Check whether a device already on the network can browse before touching the code again.
Frequently asked questions
The image is fine and something inside it is wrong. In order of likelihood: the network name does not match exactly, including capitals; the network is hidden and the code does not say so; or the security type is wrong. An enterprise network that needs a username cannot be carried in a WiFi QR code at all.
Yes, but the code has to say the network is hidden, or the phone will not go looking for it. Set "Hidden network" to yes on the WiFi generator. Without it the prompt still appears and the connection times out.
Yes. Network names are case sensitive, so CafeWiFi and cafewifi are different networks. Copy the name from a device already connected rather than typing it from memory, and watch for a trailing space.
It can join the network, but not complete the login. Choose the open network option so the phone connects, then the captive portal still has to be accepted in a browser by hand. That is how most hotel and airport WiFi works.
Support depends on the phone. iOS has read WiFi codes in the Camera app since iOS 11 and Android since version 10. An older Android phone may show the raw WIFI: text instead of offering to join, and a work phone managed by an employer may be blocked from joining new networks entirely.
Not by itself. The details are encoded in the pattern and never expire. It stops working when the network name or password changes, and because a static code cannot be edited after printing, it has to be regenerated and reprinted.
Make a code
More guides
- Guide
Static vs Dynamic QR Codes
A static QR code holds its content in the pattern and never expires. A dynamic one points at a redirect you rent. How they differ, and which to choose.
Read the guide - Guide
QR Code Size Guide
How big to print a QR code: the 10:1 distance rule, a 2 cm minimum, the quiet zone, and how data and error correction change the size a code needs.
Read the guide - Guide
QR Code With a Logo
How to put a logo on a QR code and keep it scannable: how large it can be, what it must never cover, which error correction to use, and how to test one.
Read the guide - Guide
How to Scan a QR Code
Scan a QR code with the camera already on your phone: the steps for iPhone and Android, how to read a code on your own screen, and what to do if it fails.
Read the guide