Free Static QR Code Generator
This QR code generator makes a code for a website, Wi-Fi network, email, phone number or plain text. These are static codes with no service behind them, which means no account, no tracking, and nothing that can expire or be switched off.
On this page
Build your QR code
Include https:// so every scanner opens it as a link rather than a search.
Add campaign tracking (UTM)
Only useful if you read these in analytics. Each one you fill in makes the code denser.
Anyone who scans this joins the network. Use it for a guest network, not your main one.
Include the country code so it works from anywhere.
Add a logo
Stays on your device. The image is drawn into the canvas in your browser and is never uploaded.
Recovery at level H tops out near 30% of the code, but 20% is the safe working limit once print tolerance and wear are accounted for.
Keeps the logo edge from blending into the dark modules. Leave this on unless the logo already has a solid background.
Size, colour and error correction
Higher correction survives more damage but packs more modules into the same space, so print it larger.
The QR specification calls for at least 4 modules of blank space on all sides.
Dark code on a light background. Inverting the colours stops many scanners reading it.
Preview
What was checked
Verify any code by test scanning a printed sample before a production run. Provided as is, and used at your own risk. See the terms.
These codes cannot expire
A static QR code carries its data inside the pattern itself. Scanning it does not call this site or any other, which is why it keeps working with no account, no subscription and nothing to renew.
The tradeoff is that the destination is fixed. Change the web address and you print a new code. Services that let you edit the destination later use a dynamic code, which stores a redirect link instead. Those are genuinely useful, but the redirect is a service you are depending on, and if it lapses every printed code stops working.
Putting a logo on a QR code
A logo works by covering part of the code and letting error correction rebuild what it hides. That is a real budget, not a free allowance, and spending too much of it is the usual reason a branded code scans on the designer's phone and fails on a customer's.
Set error correction to H first
Level H recovers roughly 30% of the code. Levels L and M recover about 7% and 15%, which leaves no headroom once a logo is in place. This tool locks the level to H automatically the moment you add a logo, and unlocks it again when you remove one.
Stay under 20% coverage
The widely quoted ceiling is 30%, matching level H's recovery capacity. Treat it as a limit you never approach rather than a target. Print tolerance, ink spread, wear and scanner variation all consume part of the same budget, so the practical working limit is around 20%. Published guidance puts scan reliability at roughly 98% with up to a fifth of the code obscured at level H. This tool caps the slider at 25% and warns above 20%.
Keep the corners clear
The three large squares in the corners are the finder patterns, and the scanner uses them to locate and orient the code before it reads anything. A logo that touches one breaks recognition outright, and no amount of error correction helps. Centre placement at a sensible size keeps well clear of them.
Test it before you print
This is the one step nobody can skip. Scan the finished code with more than one phone, at the size you will actually print it, before committing to a run. A branded code that fails is worse than a plain one that works.
Printing a QR code that scans
The most common failures are physical rather than digital.
Size
A rough working rule used across the industry is the 10 to 1 ratio: the code should be about one tenth of the distance it will be scanned from. A code read at arm's length, roughly 300mm, wants to be around 30mm across. A poster read from three metres needs roughly 300mm. Print smaller than about 20mm and phone cameras start struggling regardless of resolution.
Contrast and inversion
Dark modules on a light background. Light-on-dark inverted codes are read by some scanners and not others, and a code that works on your phone may fail on the next one. Keep the contrast high.
Quiet zone
The QR specification requires at least four modules of blank space on all four sides. Artwork or a border crowding that margin is a frequent cause of failure even when the code itself is perfect.
Scale, not "fit to page"
Browser and printer scaling silently shrinks codes. Use the print button above, which includes a 50mm ruler you can measure against the printed sheet. If the ruler is not 50mm, the print was scaled and the size you chose is not the size you got.
A note on trust
A QR code hides its destination until the phone has already started loading it, which is exactly what makes tampering effective. If you are printing codes that the public will scan, print the web address in plain text beside the code so people can check where it goes, and make the code hard to cover with a sticker.
Sources
Every specification figure on this page traces to one of the following. Nothing is stated here that could not be checked against them.
- QR Code specification, four-module quiet zone and the L, M, Q and H error correction levels
- Current QR design guidance on logo coverage limits, consensus practice rather than a standard
- bwip-js, MIT-licensed barcode encoder implementing the ISO/IEC symbologies
Last reviewed 6 September 2026
This generator is built and maintained by Cedrick Reese at Ready Utilities. Encoding is handled by bwip-js, an MIT-licensed library implementing the ISO/IEC symbology specifications, at a pinned version so output does not change without review. The Wi-Fi, email, phone and SMS payloads follow the standard QR data formats those scanners expect. The four-module quiet zone requirement comes from the QR specification, and the error correction percentages are the nominal recovery levels defined for levels L, M, Q and H. The 10 to 1 sizing ratio is a widely used industry rule of thumb rather than a published specification, and is described as such. The logo guidance follows the same distinction: the roughly 30% recovery figure for level H is defined by the QR specification, while the 20% working limit for logo coverage is the consensus practical figure across current design guidance, not a standard, and is presented that way.
Common questions
Do these QR codes expire?
No. They are static images with the data encoded in the pattern itself. There is no service behind them, no account, and nothing to renew. They keep working as long as whatever they point to still exists.
What is the difference between a static and a dynamic QR code?
A static code carries the data directly, so it never expires but the destination cannot be changed. A dynamic code carries a short redirect link owned by a service, so the destination can be edited later and scans can be counted, but the code depends on that service continuing to run.
Can I use these QR codes commercially?
Yes. No account, no attribution, no licence fee and no restriction on commercial use, including on packaging, signage and printed materials.
How big should a QR code be?
A common working rule is one tenth of the scanning distance. Around 30mm for something read at arm's length, larger for signage read from further away. Below roughly 20mm, phone cameras begin to struggle.
Can I put my logo on the QR code?
Yes. Upload it under "Add a logo" and the error correction level is locked to H automatically, since that is what makes a covered code still readable. Keep coverage at or below 20% of the code area and test the result on more than one phone before printing.
How large can the logo be?
Level H recovers about 30% of the code, which is the theoretical ceiling. The practical working limit is around 20%, because print tolerance, wear and scanner variation all draw on the same budget. This tool caps the slider at 25% and warns you above 20%.
Is my logo uploaded anywhere?
No. The image is read and drawn into the canvas entirely in your browser. It is never sent to this site or anywhere else.
Is my data sent anywhere?
No. The code is drawn in your browser. Anything you type, including a Wi-Fi password, never leaves your device.