URL QR Code Generator — Free, No Signup
Turn any URL into a scannable QR code — no account required, no expiration, no watermark. Customize the colors, embed your logo, and download as PNG, SVG, or a print-ready PDF. Everything runs in your browser; we never see your link.
How it works
- Enter your URL. Paste any web address into the URL field. The QR preview updates instantly as you type.
- Customize the look. Pick foreground and background colors, upload a logo, and adjust the error-correction level. Logo uploads auto-bump error correction to H so the code stays scannable.
- Download your QR code. Click PNG, SVG, or PDF to save the file. No signup, no watermark, no expiration — the image is yours.
Frequently asked questions
Is this really free?
Yes. No signup, no document caps, no watermark, no paid tier. GhostQR is supported by an optional tip jar — never by charging for your QR code.
Do you upload my URL to a server?
No. Every QR code is generated in your browser using the qrcode library. We have no upload endpoint — open the Network tab and confirm no request carries your URL.
Does the QR code expire?
Never. The QR code is a plain image file you download and keep. It is not hosted on our servers and has no TTL.
What URL formats work?
Any string works — https://, http://, bare domains, deep links, app URLs. QR readers typically expect a full URL with protocol, so include https:// for best compatibility.
Can I print the QR code?
Yes. The PDF download creates a 4"×4" page optimized for printing. The SVG download is vector-based and prints crisply at any size.
Will my logo make the QR unreadable?
GhostQR automatically sets error correction to High (H) when you add a logo. H-level codes can recover from up to 30% data damage — plenty of headroom for a centered logo at 25-30% of the code area.
Related tools
- WiFi QR Code Generator — Share Your Network
- vCard QR Code Generator — Share Contact Info
- Email QR Code Generator — Pre-fill mailto
Every GhostQR tool runs entirely in your browser. Your file is never uploaded — there is no upload endpoint to send it to.