Skip to content

Runs entirely in your browser. Nothing you paste leaves this page.

Free / No sign-up

QR code generator: free, static, no expiry.

Make QR codes for URLs, text, Wi-Fi, vCards and email with your own colours, error correction, quiet zone and a centre logo. Download PNG or SVG. No sign-up, no tracking redirect.

QR content type

Error correction recovers 15%

Error correction level

Centre logo

Version 5 · 37×37 modules · 73 bytes

Codes are static: the content is in the pattern, so they never expire and there is no redirect or tracking. Test with two phones before printing, and keep at least 4 modules of quiet zone.

How to use it.

  1. 01

    Pick what the code should do: open a URL, show text, join Wi-Fi, save a contact or start an email, then fill in the fields.

  2. 02

    Set the error correction level, colours, quiet zone and PNG size, and add a centre logo if you want one (the level switches to H).

  3. 03

    Download PNG for documents and screens or SVG for print, then scan it with two different phones before you publish.

What it does.

Everything this tool handles, all of it inside your browser tab.

  • URL, text, Wi-Fi (WPA/WEP/open, hidden networks), vCard 3.0 and email codes
  • Error correction levels L, M, Q and H, with the smallest version chosen automatically
  • Custom module and background colours, with warnings for low-contrast or inverted pairs
  • Adjustable quiet zone from 0 to 8 modules
  • Optional centre logo with a cleared, padded area and level H forced on
  • PNG download at a size you choose, with crisp, whole-pixel modules
  • SVG download and copy for print and design tools
  • Static codes: no redirect, no expiry, no scan limits, no tracking
  • Runs entirely in your browser; the encoder loads only on this page

Worked examples.

  • Guest Wi-Fi code for an office

    WIFI:T:WPA;S:Nexzem Guest;P:correct-horse-battery;;
    
    Version 4 · 33×33 modules · level M

    Phones offer to join the network when the camera sees this code. Use a guest network, because the password is readable by anyone who decodes it.

  • Trackable flyer link without a redirect

    https://example.com/menu?utm_source=flyer&utm_medium=qr&utm_campaign=autumn

    UTM parameters credit visits to the flyer in your analytics. Shorter URLs make sparser codes, so drop parameters you do not report on.

  • Contact card for a business card

    BEGIN:VCARD
    VERSION:3.0
    N:Rao;Asha;;;
    FN:Asha Rao
    ORG:Nexzem Technologies
    TEL;TYPE=CELL:+91 98765 43210
    EMAIL:asha@example.com
    END:VCARD

    Scanning offers to save the contact. Each extra field adds modules; on a 5 cm card keep it to name, company, phone, email and website.

  • Logo in the middle of the code

    Logo: 22% of the width
    Error correction: H (30%)
    Cleared area: logo + 1 module margin

    The logo hides real modules, so the code relies on error correction to rebuild them. Keep the logo small and test on several phones.

  • Print size from scanning distance

    Table tent, read at 30 cm  → at least 3 cm wide
    Shop window, read at 2 m   → at least 20 cm wide
    Plus a 4-module quiet zone on every side

    A width of about one tenth of the distance is a reliable starting point. Dense codes need more.

How a QR code stores your data

A QR code is a grid of dark and light squares called modules, defined by the ISO/IEC 18004 standard. The three large squares in the corners are finder patterns that let a camera locate and straighten the code; smaller alignment patterns and timing lines help it read a code printed on a curved or tilted surface. The rest of the grid holds your data plus error correction codewords.

Codes come in 40 sizes called versions. Version 1 is 21×21 modules and each version adds 4 modules per side, up to 177×177 for version 40. This generator picks the smallest version that fits your content at the error correction level you choose, so a short URL makes a sparse code that scans quickly, while a long vCard makes a dense one. The largest code holds 2,953 bytes of binary data, but anything near that limit is hard to scan from a phone.

The data is encoded in the most compact mode available: numeric, alphanumeric (upper-case letters, digits and a few symbols) or byte mode for everything else, including UTF-8 text with accents and emoji. The encoder used here is lean-qr, a small open-source library that is loaded only on this page and runs in your browser.

Static vs dynamic QR codes

Every code from this tool is static: the URL or text is in the pattern itself. Nothing sits between the scan and your content, so the code works forever, has no scan limit, and no third party sees who scanned it. The trade-off is that you cannot change the destination after printing.

Dynamic QR codes from paid services encode a short redirect URL on the provider's domain. That lets you change the target and count scans, but the code stops working if the subscription lapses or the provider shuts down, and every scan passes through their servers. A middle path many teams use: encode a URL on your own domain, such as example.com/menu, and redirect it yourself. You keep the flexibility and you never depend on a vendor.

For measurement without a redirect, add UTM parameters to the URL, such as ?utm_source=flyer&utm_medium=qr, and your analytics tool will attribute visits to the printed piece. Our guides on QR code ordering for restaurants and QR menus for cafes show where static codes earn their keep.

Error correction levels L, M, Q and H

QR codes use Reed-Solomon error correction, so a code can still be read when part of it is dirty, scratched or covered. Level L can recover about 7% of the codewords, M about 15%, Q about 25% and H about 30%. Higher levels need more modules for the same content, so the code becomes denser.

M is the sensible default for screens and clean print. Use Q or H for codes on packaging, outdoor signage or anything that gets handled. When you add a centre logo, this tool switches to H automatically, clears the modules behind the logo plus a one-module margin around it, and caps the logo at 28% of the width so the damage stays well inside what H can repair.

Size, contrast and the quiet zone

The standard asks for a quiet zone of at least 4 modules of background colour around the code. Scanners use that empty border to find the edges; a code printed flush against a busy photo or a coloured box often fails. The slider lets you go lower for screen layouts where you control the surroundings, but keep 4 for print.

Print size depends on scanning distance. A common rule of thumb is a code width of at least one tenth of the distance, so about 2 cm (0.8 in) works at arm's length and a poster read from 3 m needs about 30 cm. Dense codes need more space than sparse ones, which is another reason to keep URLs short.

Use dark modules on a light background with strong contrast. Many current phone cameras read inverted (light on dark) codes, but plenty of older scanners and payment apps do not, so the tool warns you about inverted or low-contrast colour pairs. You can check a pair precisely with the colour contrast checker.

Wi-Fi, vCard and email QR codes

A Wi-Fi code uses the WIFI: format that the built-in camera apps on iOS and Android understand: WIFI:T:WPA;S:network;P:password;;. Choose WPA for WPA, WPA2 and WPA3 networks. Special characters such as ; , : \ and " are escaped for you. Anyone who photographs the code can read the password, so use a guest network.

A vCard code holds a contact in vCard 3.0 format, the version phone contact apps import most reliably. Keep it to the fields people need, because every extra field makes the code denser. Email codes use a mailto: link with an optional subject and body, which opens the scanner's mail app with the message ready to send.

QR code safety: what to know before printing

QR phishing, sometimes called quishing, works because people cannot read a code before they scan it. Attackers paste their own stickers over legitimate codes on parking meters, menus and posters. If you put codes in public places, print the destination URL in plain text next to the code, use your own domain, and check periodically that nothing has been stuck on top.

PNG is right for documents, slides and the web. SVG is a vector file that stays sharp at any size, which is what printers and designers want for signage and packaging. Both downloads are generated in your browser from the same module grid, so they scan identically.

Designing a QR code people actually scan

A code on its own gives people no reason to scan it. Put a short call to action next to it that says what happens, such as "Scan to see the menu" or "Scan to join the guest Wi-Fi", and make sure the destination works well on a phone, because that is where every scan lands. A slow or desktop-only page wastes the effort of printing the code.

Brand colours are fine as long as the modules stay clearly darker than the background. Keep the finder patterns intact, avoid gradients and textures behind the code, and leave the quiet zone empty. For packaging and signage, export the SVG and give it to your printer at the final size rather than enlarging a small PNG, which blurs the module edges.

Questions, answered

Something else on your mind? Ask a consultant and get a reply within one business day.

Do these QR codes expire?

No. They are static codes: the content is stored in the pattern itself, so they keep working as long as the destination exists. There is no redirect service that could be switched off.

Is there a scan limit or any tracking?

No. Scans go straight to your URL or content. To measure visits, add UTM parameters to the URL and read them in your analytics.

What is the difference between static and dynamic QR codes?

A static code stores the final content. A dynamic code stores a short link on a provider's server that redirects to your content, so you can change the target later, but it depends on that provider staying online and paid.

Which error correction level should I use?

M (15%) suits screens and clean print. Use Q or H for packaging, outdoor use or codes with a logo. Higher levels make the code denser, so they need a larger print size.

Can I put my logo in the middle?

Yes. Add a logo and the tool forces level H, clears the modules behind it with a small margin, and limits the logo to 28% of the width. Always test the result on several phones.

PNG or SVG: which should I download?

PNG for web pages, documents and slides. SVG for print, signage and design tools, because it is a vector and stays sharp at any size.

How small can I print a QR code?

About 2 cm (0.8 in) for a short URL read at arm's length. A good rule is a width of at least one tenth of the scanning distance, plus the quiet zone.

Why will my QR code not scan?

The usual causes are low contrast, inverted colours, a missing quiet zone, a code that is too dense for its printed size, or a logo that covers too much. Shorten the content, use dark on light and keep 4 modules of border.

Does a Wi-Fi QR code work on iPhone and Android?

Yes. The built-in camera apps on current iOS and Android versions read the WIFI: format and offer to join the network.

Is it safe to put a password in a Wi-Fi QR code?

Anyone who scans or photographs the code can read the password, so use it for a guest network you are happy to share, not your main network.

Is what I type sent anywhere?

No. The code is generated by a JavaScript library running in this tab. Your URLs, passwords and contact details never leave your device.

More free tools.

All tools

Need tooling like this inside your product?

We build internal tools, developer platforms and APIs. Tell us what your team keeps doing by hand.