Home › QR code
Utility tool

Free QR code generator — links, Wi-Fi, email and contact cards

Turn any link, Wi-Fi password, contact card or message into a permanent QR code. No accounts, no expiry, no ads injected when someone scans — download a clean PNG ready to print.

Perfect for
Restaurant & café menus Wi-Fi login cards Business cards (vCard) Product packaging Event posters & flyers
How to generate a QR code
1
Choose the typeA link, plain text, Wi-Fi network, contact card or an email address.
2
Enter the detailsPaste your URL or fill in the network / card fields shown.
3
Style itSet the size, error-correction level and a dark-on-light colour pair.
4
Generate & downloadPreview instantly and save a high-res PNG for print or web.

Content

Appearance

Keep the foreground dark and the background light. Low contrast is the number one reason codes fail to scan.

Result

Your QR code will appear here

How QR codes work, and why yours won't scan

Keep it dark-on-light and leave quiet spaceScanners look for strong contrast and a clear margin. Use a dark foreground on a white (not transparent) background, and print at least a few millimetres of empty border around the code.

A QR code stores data as a grid of dark and light squares. The three large squares in the corners tell the scanner where the code is and which way up it is; the rest is the actual data plus error correction — redundant information that lets the code stay readable even when part of it is dirty, damaged or covered.

Error correction is a trade-off. Higher levels (Q, H) let you cover up to 30% of the code — handy if you plan to place a logo in the middle — but they make the pattern denser, so you need a larger print size for the same scanning distance.

Capacity limits

Content typeMaximum capacity
Numeric only7,089 characters
Alphanumeric4,296 characters
Binary / UTF-8 text2,953 bytes (≈ 900–1,400 CJK characters)

The practical guidance is simple: the shorter the content, the simpler the pattern and the easier it scans. A long URL can nearly halve the reliable scanning distance compared with a short one.

Static vs dynamic codes

The codes made here are static: the data is written directly into the pattern, so the code never expires and never depends on a third-party service. Marketing platforms often issue dynamic codes that store a short link and redirect — convenient for editing the destination or tracking scans, but the code dies the moment you stop paying that provider. For business cards, packaging and signage, always use static.

Printing tip: leave a quiet zone of at least four module widths of clear margin around the code, and never stretch it out of proportion. A distorted code is an unscannable code.

Frequently asked questions

Is the QR code generator free?
Yes, free and without an account. Codes are generated in your browser and are not tied to any subscription, trial period or paid plan.
Do these QR codes expire?
No. The content is encoded directly into the pattern, with no redirect service in the middle. There is nothing that can expire, be rate-limited or start charging you later, and no dashboard you have to keep alive.
Will the QR code still work if this website goes offline?
Yes. The downloaded PNG is self-contained: a scanner reads the payload from the pattern itself and never contacts this site. Printing it on a product label or a poster is safe.
What can I put inside a QR code?
A website link, plain text, Wi-Fi credentials including the encryption type so guests join without typing a password, an email address, or a contact card with name, phone, email and company for one-tap saving.
How large should I print a QR code?
A practical rule is at least 2 by 2 cm for a code scanned from a phone at close range, and roughly one tenth of the scanning distance for signage — so a code read from 3 metres needs about 30 cm. Longer content produces a denser pattern and needs more space.
My code will not scan. What is wrong?
Almost always contrast or quiet space. Keep the foreground dark and the background white rather than transparent, avoid placing the code over a busy photo, and leave a clear margin around it. Raising the error correction level also helps if part of the code will be covered.