Guide
How to Create a Wi-Fi QR Code for Guests
A WiFi QR code lets anyone with a smartphone join your network by pointing the camera at a printed code instead of typing the password. Done well, it eliminates the front-desk question that consumes 30+ minutes of staff time per day at a busy cafe, removes the typo-driven friction at the reception of a 40-room hotel, and ends the awkward password-on-a-whiteboard look at events. Done badly, it leaks your business network credentials to anyone with a QR decoder, breaks on half the phones in the room because the encryption type is wrong, or stops working the next time you rotate the password without anyone realizing why. This guide covers the format spec (what your QR actually encodes), the security boundary that determines whether a WiFi QR is safe to print at all, encryption-type rules including the WPA3 gap most generators silently ignore, special-character escaping for SSIDs and passwords, the static-vs-dynamic decision tied to your password rotation cadence, device compatibility across iOS and Android, print size and placement patterns for hospitality and retail, and a debug checklist for when scans silently fail.
What a WiFi QR actually encodes
A WiFi QR encodes a single text string in a standard format: WIFI:T:WPA;S:NetworkName;P:Password;H:false;;. The scanner parses the string and either prompts to join the network (iOS, current Android) or shows a "Connect to NetworkName?" dialog (older Android with a third-party scanner).
The format is governed by an informal standard originally documented by ZXing (the open-source QR library) and adopted by Apple and Google in their native camera apps. The parser reads four fields:
- T = authentication type:
WPA(covers WPA, WPA2, and most WPA3 deployments),WEP(legacy, insecure),nopass(open network),SAE(WPA3 personal, the spec-correct value). - S = SSID, the network name exactly as it appears in WiFi settings, case-sensitive.
- P = password, in plaintext. Empty for
nopassnetworks. - H = hidden network flag,
trueif the SSID is not broadcast, omitted orfalseotherwise.
The string is encoded directly into the QR module pattern, identical to any other text QR. No vendor server, no internet round-trip, no app required. The scanning phone parses the string locally and hands the credentials to the WiFi subsystem.
This is why a printed WiFi QR works offline, instantly, and continues working even if the QR generator that created it shuts down — the data lives in the QR itself, not on a vendor server.
One consequence: anyone with a QR decoder app can extract the raw string and read the password in plaintext. The QR doesn't obscure the password; it just transports it. Plan for that — covered in the security section below. See the best WiFi QR generators listicle for the per-vendor handling of these fields.
Set up a separate guest network first
This is non-negotiable. A WiFi QR makes the encoded password trivially extractable by anyone who can decode a QR — which, in 2026, is anyone with a phone. If the QR encodes your primary business network credentials, you've handed admin-network access to every person who scans the code, every photo of the code on Instagram, every screenshot in a guest's camera roll.
A separate guest network with its own SSID and password, isolated from internal systems, is the right architecture for any QR-based WiFi sharing.
What "isolated" means. The guest network should not have route access to your POS, inventory database, employee workstations, security cameras, or admin panels. Most modern routers (Ubiquiti, Aruba, ASUS, Netgear, TP-Link prosumer line) handle this via VLAN isolation in the guest network configuration. Enable it.
Bandwidth control. Cap guest network bandwidth to avoid one heavy user (4K video stream, large file download) degrading the connection for your POS or VoIP. 10–25 Mbps per device is a typical cap for a cafe or hotel; higher for premium hospitality.
Captive portal vs open join. A captive portal (the splash page with terms and email capture) layers on top of the WiFi QR — the guest scans, joins the network, then sees the portal on their first HTTP request. Hospitality and retail commonly run both. The QR removes the password-typing friction; the portal handles the legal terms and email capture.
Password discipline. Rotate the guest password on a defined schedule — 30 days for high-traffic venues, 90 days for low-traffic offices. The password lives on a printed code; treating it as static-forever invites long-tail security incidents (former employee shares the password publicly, photo of the QR ends up on a competitor's recon list).
Audit trail. Most guest network controllers log the MAC addresses that join. Keep the logs; they're sometimes needed for incident response. The QR code security risks article covers the broader attack surface for QR-based credential sharing.
Tips
- Run a dedicated guest VLAN isolated from your POS, inventory, and admin systems
- Cap guest bandwidth at 10–25 Mbps per device to protect your business traffic
- Rotate the guest password every 30 days (high traffic) or 90 days (low traffic)
Pick the right encryption type
The T field determines which authentication method the phone uses to join. Get it wrong and the join fails silently on some devices, even when the password is correct.
WPA / WPA2 — the safe default for most deployments. Use T:WPA (no version suffix) for any network running WPA, WPA2, or WPA2/WPA3 transition mode. iOS and Android camera apps treat WPA as the generic value and handshake on whichever protocol the router actually offers. This is what 95%+ of small-business WiFi QRs should use.
WPA3 — the spec-compliant value vs the practical value. The official spec for WPA3 personal authentication is T:SAE (Simultaneous Authentication of Equals). The catch: most QR generators emit T:WPA even on pure-WPA3 networks, because iOS and most Android builds accept WPA as a wildcard. A handful of strict parsers (some Linux WiFi managers, certain corporate device builds) reject WPA on a pure-WPA3 network and require SAE explicitly.
If your network is mixed WPA2/WPA3 (the default on most modern routers), use WPA. If your network is pure WPA3 with no WPA2 fallback, you have a choice — emit WPA and accept the rare edge-case failure on strict parsers, or emit SAE and accept that older devices may not recognize the value at all. The pragmatic call for hospitality is WPA with WPA3 transition mode enabled on the router.
WEP — replace your router. T:WEP is supported by the format but WEP itself is cryptographically broken — has been since 2004. If your router still uses WEP, the right fix is replacing the router, not generating a QR.
Open networks — use nopass. T:nopass for open networks with no password. The P field is omitted or empty. Captive portals layer on top of nopass networks transparently.
Mixed-mode pitfalls. If your router is configured for "WPA/WPA2 mixed" but is actually running WPA only (some legacy enterprise gear), T:WPA works but T:WPA2 may fail on iOS. When in doubt, use the unsuffixed T:WPA.
Tips
- Use T:WPA as the safe default for any WPA2 or mixed WPA2/WPA3 network
- Use T:SAE only on pure-WPA3 networks that need strict spec compliance
- Never use T:WEP — replace the router instead
Get the SSID, password, and special-character escaping right
The S and P fields look simple — paste the SSID and password and you're done — but five subtle traps cause the majority of WiFi QR failures we see in real deployments.
SSID case sensitivity. "CafeWifi" and "cafewifi" are different networks. Copy the SSID from the router admin panel or the back-of-router sticker, not from memory. A capitalization mismatch produces a silent join failure — the phone reads the QR, parses the SSID, looks for that exact network name, and fails to find it.
Special-character escaping. The WIFI: format reserves five characters: backslash (\), semicolon (;), comma (,), colon (:), and double-quote ("). If any of these appear in your SSID or password, they must be escaped with a leading backslash.
The most common gotcha: SSIDs containing semicolons (rare but possible) or passwords containing semicolons (more common in long passphrase generators). Without escaping, the parser treats the semicolon as a field separator and truncates the password mid-string.
Hospitality example. A hotel password set to Welcome;2026! and encoded without escaping produces WIFI:T:WPA;S:HotelGuest;P:Welcome;2026!;;. The parser reads the password as Welcome and joins fail on every device. The fix: encode as P:Welcome\;2026!. Reputable generators handle this automatically; check by decoding the QR with a debug tool before printing at scale.
Password length and Unicode. WPA2 passwords are 8–63 ASCII characters or 64 hex digits. Unicode characters (emoji, accented characters, non-Latin scripts) in passwords work on most modern hardware but cause edge-case failures on older devices. Stick to printable ASCII for any QR-distributed password.
SSID Unicode and emoji. Some venues use emoji SSIDs ("☕ Coffee Bar"). The format supports them, iOS handles them gracefully, Android handling varies by manufacturer. Test on your audience's typical device before committing.
Hidden networks. If the SSID isn't broadcast, set H:true. Most generators expose this as a checkbox. Without the flag set, the phone may scan for the SSID and fail to find it (because it isn't broadcasting), producing a silent join failure even when all other fields are correct.
Trailing whitespace. A trailing space in the SSID or password (easy to introduce when copy-pasting from a CRM) is invisible in the form but breaks the join. Trim before encoding.
Test before scale-printing. Decode the QR with a debug tool (or a phone) and visually inspect the raw string. The minute cost of decoding once saves the reprint cost of 1,000 hotel room cards with a broken QR.
Tips
- Copy SSID character-for-character from the router admin panel, not from memory
- Escape backslash, semicolon, comma, colon, and double-quote with a leading backslash
- Set H:true if your SSID is hidden — without it the join silently fails
- Trim trailing whitespace from both SSID and password before encoding
Static vs dynamic for WiFi codes — the rotation cadence question
The static-vs-dynamic decision for WiFi QRs comes down to a single variable: how often does the password change?
Static is the right default for most WiFi QRs. The credentials are encoded directly into the QR pattern. No vendor server, no subscription, no internet required for the scan to work — which is the whole point of WiFi QRs (the scanning phone often has no internet until it joins the network you're sharing). When the password rotates, you regenerate the QR and reprint.
Static breaks down at high rotation cadence. A cafe rotating its guest password monthly across 12 table tents = 144 reprints per year. A 200-room hotel rotating quarterly = 800 reprints per year. At that volume, the print cost and operational coordination start to dominate.
Dynamic QR codes solve the rotation problem. A dynamic WiFi QR encodes a redirect URL rather than the credentials directly. The vendor server resolves the redirect to a credential payload, which the phone parses and uses to join.
The catch: dynamic WiFi QRs require the scanning phone to have internet access to hit the redirect server. For a hotel guest with no cellular signal, the dynamic QR fails — they need WiFi to scan the WiFi-join QR, which they can't get without joining the WiFi. Static handles this case; dynamic doesn't.
The hybrid pattern that actually works. Print a static QR with the current password for the offline-first scan, and post a separate dynamic QR (or short URL) on your website for guests who already have cellular and want the current credentials without checking signage. The static handles arrival; the dynamic handles in-stay updates.
Vendor lock-in considerations. A dynamic WiFi QR stops working if the vendor cancels the redirect or shuts down. For hospitality with long-life printed assets (room cards, table tents that last 1–3 years), static avoids the dependency. For high-rotation venues willing to accept the dependency, dynamic saves the reprint cost.
EZQR's $5/month Lite plan supports both — static for the always-works deployment and dynamic for high-rotation guest networks. The dynamic vs static guide covers the full trade-off matrix.
Tips
- Default to static unless your rotation cadence creates >50 reprints per year
- Static works offline — the scanning phone does not need internet to join
- Dynamic requires the scanning phone to have cellular signal to hit the redirect
Device compatibility — what scans natively, what needs an app
WiFi QR scanning splits cleanly across three device tiers.
Native camera scan — works out of the box. iOS 11+ (iPhone 5s and newer, shipping since 2017), Android 9+ on Google Pixel and Samsung Galaxy, Android 10+ on most other manufacturers. The user opens the camera app, points at the QR, taps the "Join NetworkName" notification. No app install, no third-party software.
This covers approximately 95% of phones in active use in 2026 (US/EU markets). For hospitality with international audiences, the coverage drops slightly — China-market phones (Huawei post-GMS, Xiaomi older builds) sometimes require an app for WiFi QR specifically while supporting URL QRs natively.
App-required tier. Older Android (8 and earlier), some China-market phones without Google Mobile Services, certain rugged industrial phones. The user needs Google Lens, the Samsung Camera app's QR mode, or a third-party scanner (Trend Micro QR Scanner, Kaspersky QR Scanner). Penetration of these phones in mainstream hospitality audiences is under 5%; for retail with broader demographics, plan for 5–10%.
The fallback that handles both. Print the password as readable text below or beside the QR. The fast scanners hit the QR; the older devices type the password. The cost is two extra lines of print; the benefit is zero excluded customers.
Captive portal interaction. A guest scans the QR, joins the network, and on their first HTTP request sees the captive portal. iOS auto-opens the portal in the camera-app's web view; Android (on most builds) opens it in the default browser. Both flows complete the portal terms acceptance and proceed to internet access.
Mac and Windows scanning. macOS Sonoma+ scans QRs through the camera or screenshot. Windows 11 supports QR scanning through the Camera app. WiFi-join via QR is iOS/Android territory; desktop scans of WiFi QRs require manual SSID/password entry.
Tips
- Plan for 5% of an audience to need a fallback typed password on older devices
- Always print the password as fallback text below or beside the QR
- macOS and Windows scan WiFi QRs but cannot auto-join — they show the credentials only
Print size, placement, and the fallback password
The 10:1 sizing rule applies the same way it does for any QR: code width = scanning distance / 10. WiFi QRs are scanned at predictable distances in well-defined contexts, which makes sizing tractable.
Reception desks and check-in counters. Guests scan at 30–50 cm reach. Minimum QR size 5 cm × 5 cm; comfortable 6–7 cm. The QR is large enough to scan from a phone held at arm's length without the guest leaning over the counter.
Hotel room cards. Scanned at 20–30 cm on a bedside table. Minimum 4 cm × 4 cm; comfortable 5 cm. The card is itself small (typically 9 × 5 cm), so the QR plus the brand assets and the scan-prompt text use most of the card real estate.
Cafe and restaurant table tents. Scanned at 30–60 cm seated. Minimum 4 cm × 4 cm; comfortable 5–6 cm. Multi-purpose tents (WiFi + menu + review) should use separate QRs per job rather than a single QR linking to a hub — per-job QRs convert at 2–3× the rate of shared navigation pages.
Wall signs near seating areas or lobbies. Scanned at 1–2 m. 10–15 cm minimum; 15–20 cm comfortable. Hospitality wall signs benefit from oversizing because the lighting is often lower than office spaces. See the size guide for the full distance formula.
Print quality matters more than for typical QRs. A WiFi QR has higher per-scan stakes than a menu QR — a failed scan means the guest gives up and asks the front desk, which defeats the purpose. Use matte lamination (glare-free), 300 DPI minimum print resolution, and substrate appropriate for the placement (waterproof for poolside, durable for high-touch reception counters).
The password as fallback text. Print "WiFi: NetworkName / Password: NetworkPassword" below or beside the QR in legible 10–12pt type. Three benefits: older phones that can't scan WiFi QRs work, the visual reassurance that the QR is "real" (some guests don't trust QR codes), and accessibility for guests with vision impairments using OCR rather than camera scan.
Adjacent CTA copy. "Scan to connect to WiFi — no app needed" outperforms a naked QR by 2–3× in hospitality client deployments. The CTA reduces the moment-of-decision friction that kills QR conversion. The QR code best practices guide covers the CTA-copy patterns that consistently outperform.
Tips
- Reception desk: 5 cm minimum, 6–7 cm comfortable
- Hotel room card: 4 cm minimum, 5 cm comfortable
- Cafe/restaurant table tent: 4 cm minimum, 5–6 cm comfortable
- Use matte lamination — glossy lamination creates glare under hospitality lighting
When the WiFi QR doesn't work — debug checklist
When deployed WiFi QRs fail, the failure is almost always one of seven causes. Run this checklist before suspecting the QR generator or the QR itself.
1. Encryption type mismatch. The QR encodes T:WPA2 but the router runs WPA3 only. Phone reads the QR, attempts WPA2 handshake, fails. Fix: change T to WPA (the wildcard) or SAE (the spec-correct WPA3 value). Verify in router admin panel which encryption is actually active.
2. SSID case mismatch. The QR encodes S:CafeWiFi but the router broadcasts S:cafewifi. The phone parses the QR, looks for the exact SSID, fails to find it. Fix: copy the SSID character-for-character from the router admin panel.
3. Hidden network flag missing. The router has SSID broadcast disabled, but the QR omits H:true. The phone parses the credentials, scans for the SSID in the broadcast list, fails. Fix: regenerate with the hidden network checkbox enabled.
4. Special character not escaped. The password contains a semicolon, comma, or backslash, and the QR encodes without escaping. The parser truncates the password at the unescaped delimiter. Fix: regenerate with proper escaping or change the password to plain ASCII without reserved characters.
5. Password changed at the router but the QR wasn't regenerated. Common in venues where IT and front-of-house operate separately. The router admin rotated the password Tuesday, the printed QR still encodes the Monday password. Fix: regenerate the QR and reprint. This is the case where dynamic QRs earn their subscription cost.
6. Trailing whitespace. An invisible space after the SSID or password in the generator form survives into the QR, breaks the join. Fix: regenerate with trimmed input.
7. Captive portal blocking the join detection. The phone joins the network, but the captive portal redirect intercepts the connectivity-check request, and iOS shows the network as "no internet" temporarily. Most current iOS builds handle this gracefully; older builds may show a "Failed to join" error that's actually a portal-detection issue, not a credential issue. Fix: configure the captive portal to allow the iOS/Android connectivity-check endpoints.
Diagnostic shortcut. Decode the QR with a debug tool (most QR generators expose this) or scan with the Trend Micro QR scanner app, which shows the raw decoded string. Compare the parsed string field-by-field against your router config. The mismatch surfaces immediately. The why QR code expired article covers adjacent failure patterns; the QR code stopped working guide covers the broader failure-mode taxonomy.
Tips
- Decode the QR raw string and compare field-by-field against the router config
- Test on at least one iOS and one Android device before scale-printing
- Keep a recovery printout of the password near the QR for staff-assisted fallback
Quick Tips
- Always run a separate guest VLAN — never encode your business network credentials
- Use T:WPA as the default; use T:SAE only on pure-WPA3 networks with strict parsers
- Escape backslash, semicolon, comma, colon, and double-quote in SSID and password
- Set H:true if your SSID is hidden — without it the join silently fails
- Default to static QRs; use dynamic only when rotation cadence drives >50 reprints/year
- Print at 5 cm minimum for reception desks; 4 cm minimum for room cards and table tents
- Always print the password as readable fallback text below the QR
- Use matte lamination to avoid glare under hospitality lighting
- Add explicit "Scan to connect to WiFi — no app needed" CTA copy adjacent to the code
- Test on both iOS and Android before scale-printing — formats parse differently across builds
Frequently Asked Questions
Do guests need a special app to scan a WiFi QR code?
No — for approximately 95% of phones in current use. iOS 11+ (iPhone 5s and newer, shipping since 2017) and Android 9+ on Google Pixel and Samsung Galaxy (Android 10+ on most other manufacturers) scan WiFi QRs natively through the camera app. The user points the camera at the code and taps the "Join NetworkName" notification. The remaining ~5% — older Android, some China-market phones, certain rugged industrial devices — need Google Lens, the Samsung Camera QR mode, or a third-party scanner. Always print the password as fallback text to handle this segment without excluding any customers.
Is the WiFi password visible in plaintext when guests scan?
The password is not displayed on screen during a normal scan — iOS and Android send the credentials directly to the WiFi subsystem and show only "Join NetworkName?" in the UI. But the QR encodes the password in plaintext inside the module pattern, and anyone with a QR decoder app can extract the raw string. The QR doesn't obscure the password; it just transports it. This is why a separate guest network (isolated from your business systems) is non-negotiable for any QR-based WiFi sharing.
What is the difference between T:WPA, T:WPA2, T:WPA3, and T:SAE?
`T:WPA` is the wildcard value — iOS and most Android builds accept it for any network running WPA, WPA2, or WPA2/WPA3 transition mode. This is the right default for 95%+ of small-business WiFi QRs. `T:WPA2` is technically supported but adds no value over `T:WPA` and breaks on a few legacy WPA-only enterprise networks. `T:WPA3` is not part of the standard format and fails parsing on most devices. `T:SAE` (Simultaneous Authentication of Equals) is the spec-correct value for pure-WPA3 networks — use it only when you need strict spec compliance with parsers like certain Linux WiFi managers or corporate device builds.
Can I use special characters in the SSID or password?
Yes, with escaping. The WIFI: format reserves five characters: backslash, semicolon, comma, colon, and double-quote. If any appear in your SSID or password, escape them with a leading backslash. A password of `Welcome;2026!` encoded without escaping produces a parser-truncated `Welcome` and silent join failures everywhere. Reputable generators escape automatically; check by decoding the QR and reviewing the raw string before scale-printing. Unicode characters (emoji, accented characters) work on most modern hardware but cause edge-case failures on older devices — stick to printable ASCII for QR-distributed passwords.
What happens if I change my WiFi password — do I have to reprint?
For static QRs, yes — regenerate the QR with the new password and reprint. For dynamic QRs (EZQR Lite plan, $5/month), update the credentials in the dashboard and the printed code keeps working. The trade-off: dynamic WiFi QRs require the scanning phone to have cellular signal to hit the redirect server. A hotel guest with no cell coverage can't scan a dynamic WiFi QR — they need WiFi to scan the WiFi-join QR, which they can't get without joining the WiFi. Static handles this case offline; dynamic doesn't. The hybrid pattern (static at the point of arrival, dynamic on your website for in-stay updates) handles both.
Why won't my WiFi QR work for a hidden network?
Most likely the `H:true` flag is missing. When the SSID is not broadcast, the phone parses the QR credentials, scans the visible network list for the SSID, doesn't find it (because it isn't broadcasting), and fails silently — even when the SSID, password, and encryption are all correct. The fix: regenerate the QR with the hidden network checkbox enabled. Most generators expose this as a single toggle. The resulting QR encodes `H:true`, which tells the phone to attempt the join directly without first looking in the broadcast list.
Can I add a logo to my WiFi QR code?
Yes, with one caveat. Adding a logo overlay covers some of the QR modules; the QR's error correction reads through the missing data and reconstructs the original payload. For WiFi QRs, use error correction H (30% recovery) when adding a logo — WiFi credentials are typically short payloads, so the QR has headroom for the higher error correction without growing the module count. Keep the logo to 15–20% of the QR area maximum and centered. See the [how to add a logo to a QR code guide](/blog/how-to-add-logo-to-qr-code) for the placement and contrast rules that keep scan rates high.
More Guides
How to Create a QR Code (Step-by-Step Guide)
Create a QR code in 60 seconds. Pick the content type, fill the form, customize colors and logo, download PNG or SVG. No signup needed for static codes. The full step-by-step with sizing, error correction, and post-generation testing.
QR Code Not Working? How to Fix Common Issues
QR code not scanning or leading to a dead page? Diagnose the failure in 5 minutes — contrast, size, quiet zone, URL, vendor cancellation, lamination wear, UV degradation. Step-by-step troubleshooting with real fixes.
Dynamic vs Static QR Codes: What Is the Difference?
The full trade-off between dynamic and static QR codes in 2026. How each one works under the hood, when each is the right pick, the pricing landscape, and the vendor cancellation trap that kills printed dynamic codes.
Related Articles
8 Best WiFi QR Code Generators in 2026 (Tested and Compared)
We tested 8 WiFi QR generators in 2026. Which ones emit spec-compliant WPA2 and WPA3 codes, which silently downgrade, and which kill your printed signage 30 days after you cancel.
QR Codes for Hotels: Stop Answering the Same Front Desk Questions
Deploy QR codes in hotel rooms for WiFi setup, room service ordering, and spa bookings. Reduce front desk calls.
QR Code Security Risks and Best Practices for 2026
QR phishing attacks are rising. Learn how to protect your business with HTTPS validation, dynamic codes, and scan monitoring.
Why Your QR Code Expired (and How to Fix It)
Your QR code stopped working because the generator's free trial ended. Here's how to recover and prevent it.
How to Add a Logo to Your QR Code
Add your logo to a QR code while keeping it scannable. Error correction, sizing rules, and step-by-step guide.
Related Industries
Hotel QR Codes for WiFi, Menus & Guest Info
Create QR codes for hotel WiFi, room service menus, guest feedback, and local guides. Stop answering WiFi questions. Free static codes available.
Restaurant QR Codes for Menus, WiFi & Reviews
Create QR codes for restaurant menus, WiFi access, and Google reviews. Update menus without reprinting. Free static codes, dynamic from $5/mo.
Free Event Management QR Codes — Tickets, Check-in & Schedules
Free QR codes for event management — tickets, attendee check-in, live schedules, WiFi, session feedback. Cut check-in lines and handle last-minute changes.
Retail QR Codes for Products & Packaging
Create QR codes for retail product packaging, loyalty programs, and digital coupons. Bridge in-store and online shopping. Free static codes available.
Related Tools
Written by
The EZQR editorial team writes practical guides on QR code strategy, print workflows, and how small businesses use scan-based technology. Posts are fact-checked against the ISO/IEC 18004 standard and updated when specs or market conditions change.
Ready to create your QR code?
Free, no watermarks. Generate and download in seconds.
Generate Free QR Code