URL QR Code Generator
Turn a link into a QR code.
Paste your URL below and the code updates as you type. Style it, then download it in the format your printer actually wants. No account, no watermark, and nothing stored unless you save it yourself.
Customize
Scanning opens the phone's default maps app centered on this point.
The end time must be after the start time.
Leave the date blank to preview with a sample event. Defaults to a 1-hour event if no end time is set.
This content is too long to encode in a QR code. Shorten it before downloading or saving. Why there's a limit.
Colors Templates, code and background, eyes
Quick color templatesReady-made pairs that fill in the code and background colors below. A starting point, not a limit; change either afterwards. 30 ready-made pairs
Pick a preset to fill in the dot and background colors below, or skip this and choose your own.
Light backgroundsLight dots read fine on dark backgrounds on screen, but most scanners are tuned for dark-on-light -- test before printing at volume. Scan reliability tips.
No background means no contrast check. Place this on a light, solid area; a dark or busy backdrop will stop it scanning. Scan reliability tips.
These colors are close in tone and may be hard for some scanners to read. Consider more contrast. Choosing colors that scan.
Shape & style Dots, corners, eyes, roundness
Logo Your artwork, or one of ours
Manage these under Assets in your profile.
Use only artwork you have the right to use. A logo you add is yours to clear: trademarks and copyright belong to whoever owns them.
Drawn for this product, so there is nothing to clear. These are yours to use.
Create a free account to save this logo and reuse it on any code.
This logo isn’t in your library, so saving this code won’t keep it, and the code will reopen without it. Save the logo above first.
We tested this against a real scanner: codes start failing between 16% and 20% of the area, so 15% is the safe ceiling. How we measured it.
Advanced Frames and captions, minimum size, download size
Preview
Nice one. Want to keep this design?
Create a free account and this exact style, colors, shapes and logo, is one click away next time. Free accounts also get 2 dynamic QR codes you can repoint after they are printed.
Dynamic QR codes redirect to a web address, so they're available for the URL and WhatsApp types. Other types encode their content directly and can't be repointed later.
Made in your browser. Nothing is sent to us unless you save it to your account. Check it yourself
Open your browser's developer tools and switch to the Network tab, then build a code.
You will see this page load its own files: a stylesheet, two typefaces from Google Fonts, and our analytics. Like most sites, this one loads those. What you will not see is a request carrying the link you typed, the contents of your code, or the image itself, because the code is drawn here on your device and there is nowhere for it to be sent.
Your URL's length decides whether the print job works
This is the single most useful thing to know about link codes, and it is invisible until something fails in the field. Every character of the URL is encoded into the pattern, so the address you paste directly sets how fine the grid is, and a fine grid needs a bigger printed size to stay readable.
The difference is not marginal. A short redirect might produce a 25×25 grid. The same destination with campaign parameters bolted on needs 53×53. Printed at the same width, that more than halves the size of every individual module, and small modules are what scanners fail on first, especially on matte stock, at an angle, or in bad light.
So strip the URL down to what's needed. Drop the tracking parameters, drop www. if your site works without it, drop trailing slashes and session junk. If you can see the difference in the preview above as you edit, so can a phone camera.
See why dense codes fail for what's physically happening when a code doesn't scan.
You still need campaign tracking. Don't put it in the pattern.
The reason people paste 200-character URLs into QR generators is UTM tags, and the instinct is right: you should know which poster worked. The mistake is encoding them, because that pushes the density cost onto the printed artifact for a benefit that has nothing to do with printing.
A dynamic code solves this properly: the printed pattern holds a short redirect, and the campaign parameters live on the destination, which you can change whenever you like. Your analytics see exactly what they saw before. The code stays coarse, robust, and cheap to print small. You also get scan counts, which a static code can never give you, because a static code never contacts anyone.
Dynamic codes are available on every signed-in plan, including the free one.
Include the scheme
Type or paste the full address including https://. Without a scheme, scanners disagree: some infer a web address correctly, some display the raw text and do nothing at all, and you find out which after it is printed on five thousand flyers.
Use https rather than http. Both encode identically, but browsers increasingly interrupt plain HTTP with a security warning, and a warning screen is a poor first impression for something someone just scanned off a poster.
Where a link code earns its place
Anywhere the action you want is "look at this specific page" and typing is the obstacle: posters, packaging, table talkers, business cards, vehicle livery, print ads, product manuals, review cards, conference signage, shelf edging.
The most common and most expensive mistake is pointing it at a homepage. If a poster is about one product, send people to that product. Every navigation step between the scan and the thing they were promised is somewhere to lose them, and they are standing in a corridor holding a phone, and they will not persevere.
Frequently asked questions
Is this free, and is there a watermark?
Free, and no watermark on any plan. You can generate and download without an account at all. Signing in adds a saved library, dynamic codes and scan analytics, but the codes themselves are never degraded to sell you an upgrade.
Does the code expire, or stop working if I stop using the site?
A static link code has the URL inside the printed pattern. It works forever with no dependency on us, or on anyone else, because scanning it never contacts a server. Dynamic codes are the deliberate exception. They route through our redirect so you can repoint them, which is the entire feature.
Can I point it at something that isn't a web page?
Yes. An app store listing, a PDF, a Google Maps place, a YouTube video and a payment link are all URLs, so they all work here. If what you want is a dialler, a mail draft or a Wi-Fi prompt, use the type built for it instead; those produce a proper native prompt rather than a browser hop.
Which download format should I send to a printer?
SVG, PDF and EPS are all vector, so they scale to any size with no quality loss. PNG is fine for screens and for anything you are placing at a known size. If a print shop asks for "vector artwork", that is what they mean.
Can I change where the code points after it's printed?
Only with a dynamic code, and only if you made it dynamic before printing. A static code's URL is part of the pattern, so there is nothing to update. If there is any chance the destination moves, that decision has to be made now, not later.