Search for a free QR code generator and you'll find dozens of them. Most work the same way: you get a free QR code, but the scans route through their servers. When you don't upgrade, the scans stop working or you get a watermark on the image.
A QR code that expires isn't a QR code. It's a rental.
Three Use Cases Where QR Codes Actually Help
Not every business needs a QR code. These are the situations where they solve a real problem:
Menus and in-person materials. Restaurants and retailers can link customers directly to a URL — updated menu, current pricing, product page — without reprinting anything. When the content changes, the URL updates. The QR code on the table stays the same.
Events and check-ins. A QR code on a ticket or email confirmation can link to directions, a schedule, or a check-in form. Attendees scan it on arrival rather than searching for a link.
Print-to-URL bridging. Flyers, business cards, packaging, and signage have one problem: you can't click them. A QR code solves this. A business card with a QR code pointing to your portfolio or booking page converts a piece of paper into an actionable link.
In each case, the value comes from the QR code reliably pointing to the right place. That's why a code that routes through a freemium service's servers is a problem — you don't control the routing.
What Goes Wrong With Freemium Generators
The business model of most QR code generators depends on a specific outcome: your scans work for free up to a limit, then stop unless you pay.
This creates two risks:
Expiring scans. If you've printed 500 flyers or put a QR code on a physical product and the service decides to restrict free accounts, every one of those codes breaks simultaneously. Your customers see an error page.
Watermarks on the image. Some services add a small logo or text to the downloaded image. On a professional print piece, this looks exactly as bad as it sounds.
The alternative is a generator that doesn't route scans through its own servers at all. The QR code encodes the URL directly — when someone scans it, their phone reads the URL from the code itself and opens it. No third party involved, no server to go offline, no expiration.
How to Generate One
The QR Code Generator on this site works entirely in your browser. Enter any URL or text, choose a size, and download a PNG. The code encodes the data directly — there's no account, no scan tracking, and nothing that can expire.
Recommended settings for different use cases:
- For print (flyers, cards, signage): 512px. Print at a minimum of 1×1 inch. The larger the physical size, the easier it scans from a distance.
- For screens (presentations, emails, digital displays): 256px is sufficient and sharp on most displays.
- For small print (business cards): 256px, printed at 0.75×0.75 inch minimum. Test the scan before printing the full run.
Making It Scan Reliably
QR codes fail in print more often than people expect. The most common reasons:
Low contrast. A dark code on a dark background, or a light code on a light background, reduces scanner accuracy. Black on white is the most reliable combination. If you're working with a colored background, test thoroughly before committing to a print run.
Too much encoded data. A short URL encodes as a simpler, larger pattern that scans faster and from farther away. If your URL is long, use a URL shortener first. A QR code pointing to yourbusiness.com/m scans more reliably than one pointing to yourbusiness.com/products/category/item?utm_source=flyer&utm_medium=print.
Insufficient quiet zone. The white border around a QR code (the "quiet zone") is part of the spec, not decoration. If your design crops it, scanners may fail. Keep at least 4 modules of white space on all sides.
Low print quality. A QR code printed on a low-quality inkjet at draft settings may not scan at all. Test on the actual printer and material before finalizing the design.
Static vs. Dynamic QR Codes: The Real Difference
Most QR code tutorials treat "dynamic" as a premium feature worth paying for. In practice, the distinction matters mostly to the services selling the upgrade — not to you.
Static QR codes encode the destination URL directly into the pattern. When a phone scans it, the camera reads the URL from the code itself and navigates there. No server is involved. The code works as long as the destination URL works. It never expires unless you let the domain or page lapse.
Dynamic QR codes encode a short redirect URL pointing to the service's server. When a phone scans it, the phone hits the service's server, which then redirects to your actual destination. This allows the destination to be changed without regenerating the code — but it also means the code stops working if the service is down, discontinues free tiers, or gets acquired.
The use case for dynamic codes is narrow: you genuinely need to change the destination URL after the code is already printed and distributed. A menu restaurant that reprints materials seasonally does not need dynamic codes — they reprint anyway. A code embedded in a product that ships and cannot be recalled might.
For the vast majority of business uses — flyers, cards, signage, presentations — a static code is the right choice. It costs nothing, lasts forever, and has no dependency on a third-party service staying operational.
QR Codes for Data Beyond URLs
QR codes are not limited to URLs. The format supports several other data types that phones handle automatically:
Phone numbers — Encode as tel:+15551234567. Scanning opens the dialer with the number pre-filled.
Email addresses — Encode as mailto:you@example.com. Scanning opens the mail app with the address in the To field.
SMS — Encode as smsto:+15551234567:Your message here. Scanning opens the messages app.
Wi-Fi credentials — Encode as WIFI:T:WPA;S:NetworkName;P:password;;. Scanning connects the device to the network without typing the password. Useful for guest networks in offices and hotels.
Contact cards (vCard) — A structured format that adds a contact to the phone's address book when scanned. Useful on business cards.
For most of these, test the scan on iOS and Android before printing — the handling of non-URL formats is more consistent on iOS than on older Android builds.
Keep a Deployment Log
If you're generating multiple QR codes — for different locations, campaigns, or products — keep a simple record of what each code points to and where it's deployed. A URL that looks obvious today is easy to forget six months later when you're reprinting materials.
The Markdown Notes editor is a fast way to maintain this log: one entry per code, with the URL, the placement, and the date generated. Plain text, no account, and it persists in your browser — nothing is sent to a server.
Frequently Asked Questions
Do QR codes expire?
Static QR codes — like the ones generated here — encode the URL directly into the pattern. They never expire because there is no third-party server involved. The phone reads the URL from the code itself and opens it. Dynamic QR codes, offered by most freemium services, route scans through a redirect server that can be disabled or paywalled.
Does the QR Code Generator store my data or track scans?
No. The QR code is generated entirely in your browser. The URL or text you enter is encoded directly into the image and never sent to any server. There is also no scan tracking — when someone scans the code, their phone goes directly to the destination without passing through any intermediary.
What size should a QR code be for print?
For flyers, business cards, and signage, use 512px and print at a minimum physical size of 1×1 inch. Larger is more reliable — a bigger code scans from further away and is more forgiving of low-contrast backgrounds. For screen use only (presentations, emails), 256px is sufficient.
Can I track how many times my QR code is scanned?
Not with a static QR code. Static codes encode the destination directly, so there is nothing to intercept and count. For scan tracking, you need a dynamic QR code service or a URL shortener with analytics. Keep in mind that dynamic codes route through a third-party server and can be disabled if the service changes its terms.
Why won't my QR code scan reliably?
The four most common causes: insufficient contrast (dark code on a dark background), the quiet zone (white border) being cropped by your design, too much data encoded in the URL making the pattern too dense, and low print quality. Test on the actual print material before committing to a run.
Quick Checklist
- [ ] URL is correct and tested before encoding
- [ ] Long URL shortened if necessary
- [ ] Appropriate size chosen for the medium (512px for print, 256px for screens)
- [ ] High contrast — dark code on light background
- [ ] Quiet zone intact — not cropped by the design
- [ ] Scanned successfully on at least two different phones before use
- [ ] Printed a test copy on the actual material and scanned it
If it scans reliably in testing, it will scan reliably in the field.