Any web address — opens straight in the phone browser. The most scanned QR type by far.

Include https:// so the code opens as a link. For plain text that is not a link, use the Text tab.

Colors
Shape
Module style

The three corner squares always stay square — scanners lock onto them first.

Quiet zone1 modules

Fine at 1 for screens. Raise it to 4 before printing — that is the specification minimum, and too little margin is the most common print failure.

Logo

Drop one image here or click to select

PNG, JPG, WebP, SVG — screenshots, logos, or icons

Export
Example — fill in the form to generate your code
Nothing to encode yet
  • URL

SVG is vector — use it for anything printed. PNG is the right choice for screens.

How to generate a QR code

  1. Paste the URL you want the code to open. Include https:// so phones treat it as a link rather than plain text.
  2. Pick your colors. Keep the foreground dark and the background light — scanners rely on that contrast, not on the specific hue.
  3. Optionally upload a logo. Error correction is raised to level H automatically so the code still scans with the center covered.
  4. Choose a module style — square is the most reliable, rounded and dots trade a little scan margin for a softer look.
  5. Download as PNG for screens and messaging, or as SVG for anything that will be printed.

Free forever, unlimited scans, no watermark

Every code this generator produces is yours outright. There is no account to create, no trial that runs out and no plan to upgrade to — the free tier is the only tier, because there is nothing to bill for.

This generator
Sign-up requiredNo — the tool works before you have an account, and there is no account
Expiry dateNone. The code cannot stop working
Scan limitUnlimited — nobody is counting, because nothing phones home
WatermarkNone on any export
Commercial useFree. The QR standard is open (ISO/IEC 18004) and its patent rights were waived
Vector outputSVG included, at any resolution you need for print
Your dataNever leaves the browser tab

Those claims are worth checking rather than trusting. Most of them follow from one architectural fact — there is no server in this product — and you can verify it yourself in about ten seconds, as described two sections below.

Static vs dynamic QR codes — why this one never expires

This is the single most important distinction in the whole category, and the one most generators are quietest about. It decides whether your printed code still works in five years.

Static (what this tool makes)Dynamic
What is encodedYour actual destinationA short link to a third-party redirect
Depends on a serviceNoYes — that company must stay in business
Stops working if the plan lapsesNeverYes, typically within days
Destination editable after printingNoYes
Scan analyticsNoYes
CostFreeAlmost always a subscription
Code densityGrows with your URL lengthAlways short

A dynamic code is genuinely useful when the destination will change or you need scan counts — a campaign landing page, a menu that gets replaced each season. You are paying for a redirect service, and that is a fair trade as long as you keep paying.

A static code is the right default for everything else. Signage, packaging, business cards, equipment labels, anything printed once and expected to last: the destination is baked into the pattern, so there is no middleman that can vanish, rebrand, get acquired or decide your free tier is over. If you need the editability later, put a short URL you control in the static code and change what sits behind it — that gives you the same flexibility without renting it.

Everything happens in your browser — nothing is uploaded

This generator has no backend. The URL you type, the logo you pick and the finished code never leave your device — there is no server to send them to. Open your browser DevTools, switch to the Network tab and generate a code: you will see no requests at all. The page keeps working with the network disconnected.

That matters more than it sounds. Most free QR services route your link through their own domain so they can count scans, and a dynamic QR code stops working the moment that service shuts down, changes its pricing, or decides your account has expired. The codes generated here are static: the destination is encoded directly into the pattern, so the code works forever and depends on nobody.

JavaScript
// The whole pipeline, start to finish
const { create } = await import('qrcode')
const qr = create('https://example.com', { errorCorrectionLevel: 'M' })

// qr.modules.size — matrix side in modules
// qr.modules.data — Uint8Array, 1 = dark module

const ctx = canvas.getContext('2d')
for (let row = 0; row < qr.modules.size; row++) {
  for (let col = 0; col < qr.modules.size; col++) {
    if (qr.modules.data[row * qr.modules.size + col] !== 1) continue
    ctx.fillRect(offset + col * m, offset + row * m, m, m)
  }
}

Scanning on iPhone and Android — no app needed

A recurring worry when printing codes is whether people will need to install something. They will not. Both mobile platforms have read QR codes from the stock camera for years, and a dedicated scanner app has been unnecessary since roughly 2019.

iPhone and iPad

  • iOS 11 and later — open the Camera app and point it at the code. A notification banner appears at the top; tap it to act
  • Control Center — a Code Scanner button can be added in Settings → Control Center, which skips the banner entirely
  • Photos app — since iOS 15, Live Text reads codes inside a screenshot or a saved photo
  • The common failure is not technical: the banner disappears after a few seconds and people assume the code did not work

Android

  • Android 9 and later — the stock camera reads codes on most devices, with Google Lens as the fallback on some manufacturer skins
  • Google Lens — built into the Google app, Photos and Assistant, and reads codes from saved images too
  • Samsung, Xiaomi and OnePlus all expose it slightly differently, which is why a short "scan with your camera" caption under a printed code removes a lot of hesitation

Test before you print

Print or display the code at the actual final size, then scan it with two different phones — ideally one iPhone and one Android — from the distance people will really stand at. Nearly every failed QR campaign would have been caught by this one-minute check, because a code that scans perfectly at 100% zoom on a monitor can be unreadable at 2 cm on matte paper.

QR versions and capacity — why longer links make denser codes

A QR code is not a fixed grid. It has 40 versions, from a 21×21 matrix up to 177×177, and the encoder picks the smallest one that fits your data at the chosen error-correction level. More characters means a higher version, which means more modules squeezed into the same physical square — and smaller modules are harder for a camera to resolve.

VersionMatrixBytes at level MPractical use
121×2114A very short link or code
225×2526A typical short URL
537×37106A URL with a few parameters
1057×57311A short vCard
2097×971 062A full vCard with address
40177×1772 331Maximum — hard to scan from print

The practical takeaway: shorten the URL before you generate the code, not after. A link under 40 characters lands around version 2 or 3, giving you fat, forgiving modules that scan from across a room. The same destination behind a 200-character tracking URL produces a dense version 10 code that needs the phone held close and steady.

Error correction — how much damage a code survives

Every QR code carries redundant data so it still reads when part of the pattern is dirty, torn, or covered. There are four levels, and picking one is a trade between resilience and density.

LevelRecoverableEffect on sizeWhen to use it
L~7%Smallest codeClean digital display, long payload
M~15%Slightly largerDefault — screens and ordinary printing
Q~25%Noticeably largerPrinted on textured or curved surfaces
H~30%Largest codeRequired when a logo covers the center

Level H is what makes center logos possible at all. Covering roughly a fifth of the matrix destroys modules, and only the 30% redundancy of level H reliably absorbs that loss. This tool switches to H automatically as soon as you add a logo, so you cannot accidentally ship a code that scans on your monitor and fails on a printed flyer.

Color, contrast and the mistakes that break scanning

A scanner does not see color. It converts the camera image to greyscale and looks for a contrast edge, which is why the rule is about luminance, not hue. A dark blue code on white scans perfectly. A yellow code on white does not, even though a human sees the pattern clearly.

Safe choices

  • Dark foreground, light background — the contrast ratio should be at least 4:1, and higher is always better
  • Keep the quiet zone — the empty margin around the code is part of the specification, not decoration. Four modules is the minimum
  • Leave the three corner squares square — those finder patterns are what a scanner locks onto first. This tool keeps them square even in dots mode for exactly that reason

What breaks codes in the wild

  • Inverted codes — light modules on a dark background. Some scanners handle it, many do not. Not worth the risk on printed material
  • Low-contrast pairs — grey on white, yellow on cream, pastel on pastel
  • Cropping the margin to make the code fit a layout — this is the single most common print failure
  • Printing too small — below about 2 cm even a low-version code becomes unreliable at arm's length

PNG or SVG — which export to use

Both exports come from the same matrix, so they are pixel-for-pixel equivalent in geometry. The difference is what happens when someone resizes them.

PNGSVG
Scales without quality lossNo — fixed pixel gridYes — vector geometry
Best forWebsites, email, chat, slidesPrint, stickers, signage, packaging
Opens everywhereYesYes, but some old tools need conversion
File sizeGrows with dimensionsConstant, usually smaller
Editable in design toolsNoYes — Illustrator, Figma, Inkscape

The rule of thumb: anything that will be printed should be SVG. A printer works at 300 DPI or more, so a 512 px PNG blown up to a poster becomes visibly soft-edged, and soft edges are exactly what confuses a scanner. Vector output has no such ceiling — the same file works on a business card and a billboard.

Frequently Asked Questions

Is this QR code generator really free?
Yes. There is no signup, no watermark, no scan limit and no paid tier. The tool runs entirely in your browser, so it costs nothing to operate beyond hosting a static page.
Do my QR codes expire?
No. These are static QR codes — the destination is encoded directly into the pattern. There is no redirect service in the middle that could shut down, so a printed code keeps working indefinitely.
Is my data uploaded anywhere?
No. There is no backend. The URL you enter, any logo you upload and the generated image are processed entirely on your device. You can verify this by opening DevTools and watching the Network tab — there are no requests.
Can I use these QR codes commercially?
Yes, at no cost. The QR Code specification is an open ISO standard (ISO/IEC 18004) and Denso Wave has waived its patent rights for use of the standard. Codes you generate here carry no watermark and are yours to use in any commercial context.
Is there a limit on how many times a QR code can be scanned?
No. Scans are unlimited, and that is not a generous policy — it is a consequence of how static codes work. Nothing contacts a server when someone scans, so there is no counter anywhere and no threshold to cross.
Do people need an app to scan my QR code?
No. The stock camera reads QR codes on iOS 11 and later and on Android 9 and later, which covers effectively every phone in use. A dedicated scanner app has been unnecessary since around 2019, though some Android skins route the result through Google Lens.
Why does my QR code stop scanning when I add a logo?
A logo destroys the modules it covers. This tool raises error correction to level H automatically when you add one, which recovers up to 30% of lost data, and it punches the covered modules out rather than painting over them. If it still fails, the logo is likely too large — keep it under about a fifth of the code area.
What size should I print a QR code?
A practical minimum is 2 × 2 cm for a short URL scanned from arm's length. The general rule is that scanning distance should be about ten times the code width, so a code read from 1 metre away needs to be roughly 10 cm across. Longer payloads produce denser codes and need more size.
Can I change the colors of a QR code?
Yes, but the constraint is contrast rather than color. Scanners convert the image to greyscale, so the foreground must be significantly darker than the background — aim for a contrast ratio of at least 4:1. Dark navy, deep green or maroon on white all work; yellow or pastel foregrounds do not.
What is the quiet zone and why does it matter?
The quiet zone is the blank margin around the code, specified as at least four modules wide. It tells the scanner where the pattern ends. Cropping it to fit a tight layout is the most common reason a code that worked on screen fails in print.
How much data can a single QR code hold?
The maximum is 2 953 bytes at error correction level L, which drops to 1 273 bytes at level H. In practice you should stay far below that — codes near the limit reach version 40, a 177×177 grid that is very difficult to scan from printed material.
What is the difference between static and dynamic QR codes?
A static code encodes the destination directly and works forever. A dynamic code encodes a link to a third-party redirect service, which can then change the destination and count scans — but the code stops working if that service disappears or your subscription lapses. This tool generates static codes only.
Why choose SVG over PNG?
SVG is vector, so it scales to any size without softening the module edges. Anything destined for print — stickers, packaging, signage, business cards — should use SVG. PNG is the better choice for screens, email and messaging apps.
Do rounded or dot module styles affect scanning?
Slightly. Rounded and dot styles shrink the effective dark area of each module, which reduces the margin for error on a low-quality camera or a poor print. This tool keeps the three corner finder patterns square in every style, since those are what scanners detect first. For critical print work, square modules remain the safest choice.