Home Developer & Utility Tools

QR code generator

Turn any text or URL into a downloadable QR code.

Generated locally — text is not sent to our servers. Scans cleanly with any standard QR reader.

About this tool

A QR code packs short text — most often a URL, a Wi-Fi join string, a vCard contact, or a phone number — into a black-and-white grid that any modern phone camera decodes in a fraction of a second. Paste whatever you want to encode, choose an error-correction level, optionally set the foreground and background colours, and download the result as a crisp PNG raster or a scalable SVG. The whole thing runs in your browser, so the text you encode — including a Wi-Fi password or a private link — never leaves your device.

The one setting worth understanding is error correction. QR codes store redundant data so they still scan when part of the pattern is dirty, scratched, or hidden behind a logo. The four levels (L, M, Q, H) recover roughly 7%, 15%, 25%, and 30% of damage respectively — but that redundancy costs space, so a higher level renders the same content as a denser grid of smaller squares. For a screen or a clean print, L or M is plenty; for a sticker that'll get scuffed or a code with a logo in the middle, choose Q or H.

Most "it won't scan" problems are print resolution, not the code itself: a QR needs a quiet margin around it and enough physical size that each square survives the printer. Export the SVG for anything going to print, keep the contrast high (dark on light, never the reverse), and don't shrink it below about 2 cm square. Nothing you type is uploaded or logged.

How to use this tool

  1. Type or paste your text or URL

    The QR updates live as you type — no submit button. Plain text, URLs, Wi-Fi credentials, vCards, and SMS payloads are all just text underneath; type whatever you need encoded.

  2. Pick an error-correction level

    L for the shortest codes, H for maximum scan reliability — useful when the printed code will be small or partially damaged. The QR resizes automatically; higher correction means more modules at the same data length.

  3. Download as PNG

    The file saves at a print-quality resolution. Drop it into a slide deck, a poster, a business-card layout, or a sticker template — the resolution holds up to A4 print.

Frequently asked questions

What does "error correction" do?

Extra redundancy baked into the pattern that lets the code still decode when part of it is damaged — useful if you're putting a logo in the middle, printing on something that might get scuffed, or covering it with stickers. Higher correction means a denser, slightly harder-to-scan pattern.

Why is the QR code blurry when I print it?

PNG downloads are raster and look soft at large print sizes. For posters and signage, use the SVG download — it's vector and scales to any size without losing sharpness.

Can QR codes be scanned by older phones?

Any modern smartphone camera (iOS 11+, Android with Google Lens or most default camera apps) scans them natively. For older devices a dedicated scanner app may be needed. All standard encodings are used so any spec-compliant reader works.

Why does a longer URL make the QR look denser?

More data = more modules (the little squares). Each additional character bumps the QR up to the next version, which has a finer grid. A 30-character URL gives a clean, readable code; a 300-character one gives a postage-stamp Rorschach test.

Which error-correction level should I use?

Level M (15% recovery) is the standard default for most cases. Use H (30%) for printed codes that will get damaged (stickers in a coffee shop, business cards), or for codes smaller than 2 cm wide. L (7%) for screen-only codes where size matters.

Troubleshooting

The printed code won't scan

Almost always size or resolution. Export the SVG for print so it stays sharp at any scale, keep a clear "quiet zone" margin around the code, and don't print it smaller than about 2 cm square. A QR squeezed into a tiny corner of a flyer loses the fine modules.

My coloured QR code won't scan

Contrast. Scanners expect a dark pattern on a light background; light-on-dark or two similar tones can fail. Keep a genuinely dark foreground on a genuinely light background and avoid gradients.

A long URL makes a dense code that fails on older phones

More text means more modules packed into the same square, and older cameras struggle to resolve them. Shorten the link (a redirect or URL shortener helps), drop to error-correction level L or M, or print the code larger.

Adding a logo in the middle breaks the code

The logo is covering data modules. Use error-correction level H, which can recover about 30% damage, and keep the logo to roughly a quarter of the code's area or less so enough of the pattern survives.