How to Create a QR Code: A Step-by-Step Tutorial (2026)
You need a QR code that links to your website, shares your contact details, or points customers to a landing page. The fastest way to create one with no account or software needed: open Google Chrome or Microsoft Edge, navigate to any webpage, right-click anywhere on the page, and select Create QR Code for this page. Your browser generates a unique QR code for that URL on the spot. Click the download button, save the image, and you are done.
That browser trick handles the simplest case. When you need to customize the design with your company logo, change the foreground color, generate QR codes in bulk, choose between static qr codes and dynamic qr codes, or embed a qr code image into a printed flyer, you need more control than a browser gives you.
This guide covers how to create a qr code using every reliable method: your browser, free online qr code generator tools, design platforms for custom qr code creation, specialized generators for WiFi and vCards, and programmatic generation for developers using IronQR. Along the way it covers the difference between static and dynamic codes, how to customize qr code design, best practices before you print qr codes, and how to scan qr codes to verify they work.
What Is a QR Code and How Do QR Codes Work
A QR code (short for quick response code) is a two-dimensional matrix of black and white squares that stores information in a pattern a smartphone camera can read instantly. Denso Wave, a Japanese automotive manufacturer, invented the qr code in 1994, originally to track car parts on assembly lines. Today qr code types span URLs, plain text, email addresses, phone numbers, WiFi credentials, vCards, calendar events, and more.
When someone points a camera app or qr code scanner at a qr code, the device reads the pattern of squares, decodes the embedded data, and performs the corresponding action. For a URL qr code, the mobile phone opens the link. For a WiFi qr code, other mobile devices join the network automatically. For a vCard qr code, contact details are saved directly to the address book.
QR codes do not expire and qr codes valid as long as the link or content they point to remains active. A static qr code pointing to a live website will scan correctly years after it was generated. The difference between static and dynamic codes is about editability, not lifespan.
Static QR Codes vs Dynamic QR Codes
Understanding qr code types before you generate helps you avoid creating codes you will need to replace later.
Static qr codes encode data directly into the pattern of squares. Once generated, the content is fixed and cannot be changed. If the link breaks, or you need to update the destination, a new qr code must be generated and reprinted. Static qr are ideal for permanent content such as a company website, a product manual PDF, or contact details that rarely change. They are free to generate and have no scan limit.
Dynamic qr codes store a short redirect URL in the pattern instead of the final destination. The actual link is stored on a server and can be updated in real time without changing the printed qr code. Dynamic codes offer additional features such as scan data tracking, analytics, A/B testing different landing pages, and scheduled redirects. For teams who need all the features including real-time editing, scan dashboards, and campaign reporting, a dynamic qr code plan is worth the subscription cost. They are popular in mobile marketing campaigns where the desired content needs to change seasonally or where knowing how many scans occurred on a specific flyer is valuable.
Dynamic codes require an account with a qr code generator service and usually come with a subscription fee. For one-off personal uses, static codes are the simpler and completely free choice.
Method 1: Create a QR Code in Your Browser (No Tools Needed)
The simplest way to generate a qr code for a webpage is through a browser without installing software or creating accounts. Microsoft Edge and Google Chrome both have this built in.
In Google Chrome:
- Navigate to the webpage you want to link to.
-
Click the three dots in the address bar and hover on 'Cast, Save and Share' option
-
Select Create QR Code from the dropdown menu.
- A qr code image appears. Click the Download button to save it as a PNG file.
In Microsoft Edge:
- Navigate to the webpage.
- Right-click anywhere on the page.
- Select Create QR Code for this page.
- Scan the preview with your phone to confirm it works, then click Download.
In the screenshot below, the Chrome share menu is open with the Create QR Code option highlighted, and the generated qr code appears in a small panel to the right of the address bar ready for download.

Add image alt text

Add image alt text
When this method works best: Quick one-off URL qr codes where no customization is needed. The generated qr codes are standard black-on-white with no logo or color options. For anything branded or customized, use Method 2 or 3.
Method 2: Use a Free QR Code Generator Online
Free qr code generator websites let you create qr codes for URLs, text, email, phone numbers, WiFi credentials, and vCards without any software. Most allow you to download your qr code in PNG, JPEG, SVG files, or PDF format. You can search for examples of each type directly on the generator site before committing to a design.
QR Code Monkey (qrcode-monkey.com): One of the most popular free qr code generator tools. It supports full color customization, logo uploads, and svg files output alongside PNG.
- Go to qrcode-monkey.com.
- Choose your qr code type from the left panel: URL, Text, Email, Phone, WiFi, and more.
- Enter content in the input field. For a URL qr code, paste your full URL including https://.
- Customize colors, add a logo, or adjust the design in the panel below.
- Click Create QR Code.
- Click the Download button to save your qr code image in your chosen format.
QR Code Generator (qr-code-generator.com): A free qr code generator with both static and dynamic qr code options. The free tier supports static qr codes with basic customization. Dynamic codes and advanced analytics require a paid plan.
GoQR (goqr.me): A fast, no-frills free qr code generator. Enter your URL or text, download the qr code image in PNG or SVG, and you're done. No signup required for the free version.
In the screenshot below, QR Code Monkey is open in a browser with a URL entered in the input field and the generated qr code previewed on the right side of the page.

Add image alt text
Downloading in the right format: Once a qr code is generated, it can be downloaded in various formats such as PNG, JPEG, or PDF, allowing for easy sharing and printing. The qr code download option on most generators also lets you choose resolution before saving. Most qr code generators support PNG for digital use and SVG for print. SVG files are vector-based and scale to any size without losing sharpness, making them the right choice for print qr codes on flyers, banners, and packaging. PNG is fine for digital use on websites and presentations. A qr code generated at high resolution will produce more scans over its lifetime because it remains clear at any print size, on any material, and from any reasonable scan distance. For commercial purposes such as product packaging or point-of-sale displays, always export at the highest resolution available and verify the output on physical print before finalizing.
Method 3: Create a Custom QR Code with Logo and Colors
A custom qr code with your brand colors and company logo increases customer engagement because it looks intentional rather than generic. For a code-based approach, the IronQR create QR code image guide shows how to add logos and custom colors programmatically in C#. Here is how to customize a qr code properly using a generator.
Adding a logo:
- In your chosen qr code generator, look for a logo or image upload section.
- Upload a PNG or SVG version of your logo. Square logos work best.
- The generator places the logo in the center of the qr code pattern.
- Verify the qr code still scans correctly after adding the logo. Adding a logo covers part of the pattern, so the generator uses error correction to maintain readability.
Changing colors: Using contrasting colors for the foreground and background of a qr code is essential to ensure that it remains scannable. Dark foreground on light background always works. Light foreground on dark background can work but needs to be tested carefully. Never use foreground and background colors with similar brightness as the camera app will struggle to distinguish the squares.
Choosing the foreground color: Keep the foreground color dark enough to provide enough contrast against the background. Dark blue, dark green, dark red, and black all work reliably. Avoid yellow, light grey, or pastel tones for the foreground as these create insufficient contrast and produce qr codes that scan inconsistently.
In the screenshot below, a custom qr code with a dark navy foreground color and a small company logo in the center is displayed. The qr code has been verified by scanning it with a smartphone camera app and the destination URL appeared correctly.

Add image alt text
Minimum size for printing: The minimum size for a qr code should be at least 0.4 inches by 0.4 inches to ensure it can be scanned easily from a short distance, with an ideal size being around 3 to 4 inches squared for printed materials like flyers and posters.
Method 4: Generate Specialized QR Codes (WiFi, vCard, Landing Page)
Dedicated sites can be used for specialized needs like sharing WiFi credentials, vCards, or tracking scan data. Each qr code type encodes its content differently.
WiFi QR Code: A WiFi qr code lets other mobile devices join a network by scanning instead of typing a password. Most free qr code generator sites support this.
- Select WiFi as the content type.
- Enter the network name (SSID), password, and security type (WPA/WPA2 or WEP).
- Generate and download the qr code.
- Place it near your router or on a welcome card so guests can scan and connect with a mobile phone.
vCard QR Code: Encodes your contact details (name, email, phone, address, website) in a format smartphones can import directly to their contacts app.
- Select vCard or Contact as the content type.
- Fill in all the contact fields you want to share.
- Generate the qr code. Scanning it on any modern smartphone adds the contact automatically.
Landing Page QR Code: For campaigns where you want to direct traffic to a specific landing page and track how many scans occurred, use a dynamic qr code. Services like Bitly and QR Code Generator Pro let you create a dynamic qr code pointing to a landing page and provide a scan dashboard.
In the screenshot below, a WiFi qr code is shown next to the network name and password fields that were used to generate it. A smartphone is shown scanning it with the "Join network" prompt appearing

Add image alt text
Method 5: Test Before You Print
Always scan your qr code with a phone to ensure it works before printing. This single step prevents the most common and most expensive QR code mistake: printing thousands of flyers with a broken code.
How to test:
- Open the camera app on your smartphone (or a dedicated qr code scanner app).
- Point it at the generated qr code on your screen.
- Wait for the link or content to appear as a notification or overlay.
- Tap the link and verify it opens the correct page.
Test on multiple devices: A qr code that scans on an iPhone may occasionally struggle on older Android phones if the contrast is too low or the image is too small. Test on at least two different mobile devices before printing.
Check the URL: When a URL qr code is scanned, verify the exact URL that appears matches your intended destination. Check for typos or missing https:// in the URL. A qr code linking to http://example.com and one linking to https://example.com are different codes pointing to different addresses.
Print a small test batch first: Before committing to a full print run, print a handful of flyers and scan them in the intended lighting conditions. Glossy paper can cause reflections that reduce scan reliability. Matte paper is generally more scannable.
Best Practices for QR Code Creation
Use high resolution files for print: Always download the highest resolution version your qr code generator offers. For print, use SVG if available, or PNG at 300 DPI minimum.
Maintain a quiet zone: QR codes require a white border (called the quiet zone) around all four sides. Never crop into the border. Most generators include it automatically but some design templates strip it when placing the qr code inside a graphic.
Keep enough contrast: Dark pattern on white or very light background. Never use a background image directly behind a qr code as it eliminates contrast and makes the code unscannable.
Label the qr code: Adding a short line of text below the qr code such as "Scan to visit our website" or "Scan for the menu" increases scan rates. People are more likely to scan qr codes when they know what to expect.
Consider scan distance: QR codes on a business card are scanned from a few inches. QR codes on a billboard are scanned from several feet. A qr code on a billboard needs to be printed much larger than the minimum size and should use a simpler, lower-density pattern.
QR Code Types at a Glance
| Content Type | Best use | Static or Dynamic | | --- | --- | --- | | URL | Website, landing page, social profile | Both | | Plain text | Instructions, short messages | Static | | WiFi credentials | Network sharing for guests | Static | | vCard | Business card, contact sharing | Static | | Email | Pre-filled email drafts | Static | | Phone number | Click-to-call on printed materials | Static | | App Store link | Drive app installs from flyers | Dynamic (for tracking) | | Campaign tracking | Mobile marketing with scan analytics | Dynamic |
For Developers: Generate QR Codes Programmatically with IronQR
If your application needs to generate qr codes automatically, whether for invoices, tickets, product labels, or user accounts, doing it manually through a web generator does not scale. IronQR is a .NET library that generates and reads qr codes in C# with a single method call. No coding required beyond installing the package, and no Microsoft Office or external dependencies needed.
Here's how to generate a basic qr code and a custom qr code with IronQR in C#:
using IronQr;
using IronSoftware.Drawing;
// Generate a basic URL QR code and save as PNG
QrCode myQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("url-qr-code.png");
// Generate a QR code with custom styling
QrOptions options = new QrOptions(QrErrorCorrectionLevel.High);
QrCode customQr = QrWriter.Write("https://ironsoftware.com/", options);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 500, // 500x500 pixels
Color = Color.DarkBlue, // Dark blue foreground
BackgroundColor = Color.White,
Logo = new QrLogo // Add company logo to center
{
Bitmap = AnyBitmap.FromFile("company-logo.png"),
Width = 100,
Height = 100
}
};
AnyBitmap styledQr = customQr.Save(style);
styledQr.SaveAs("custom-branded-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Generate a basic URL QR code and save as PNG
QrCode myQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("url-qr-code.png");
// Generate a QR code with custom styling
QrOptions options = new QrOptions(QrErrorCorrectionLevel.High);
QrCode customQr = QrWriter.Write("https://ironsoftware.com/", options);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 500, // 500x500 pixels
Color = Color.DarkBlue, // Dark blue foreground
BackgroundColor = Color.White,
Logo = new QrLogo // Add company logo to center
{
Bitmap = AnyBitmap.FromFile("company-logo.png"),
Width = 100,
Height = 100
}
};
AnyBitmap styledQr = customQr.Save(style);
styledQr.SaveAs("custom-branded-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Generate a basic URL QR code and save as PNG
Dim myQr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim qrImage As AnyBitmap = myQr.Save()
qrImage.SaveAs("url-qr-code.png")
' Generate a QR code with custom styling
Dim options As New QrOptions(QrErrorCorrectionLevel.High)
Dim customQr As QrCode = QrWriter.Write("https://ironsoftware.com/", options)
Dim style As New QrStyleOptions With {
.Dimensions = 500, ' 500x500 pixels
.Color = Color.DarkBlue, ' Dark blue foreground
.BackgroundColor = Color.White,
.Logo = New QrLogo With { ' Add company logo to center
.Bitmap = AnyBitmap.FromFile("company-logo.png"),
.Width = 100,
.Height = 100
}
}
Dim styledQr As AnyBitmap = customQr.Save(style)
styledQr.SaveAs("custom-branded-qr.png")
QrWriter.Write() accepts any string: URLs, plain text, WiFi credentials in the standard format, vCard strings, or any other content you want to encode. The QrErrorCorrectionLevel.High setting ensures the qr code remains scannable even if up to 30% of the pattern is obscured by a logo.
IronQR also reads qr codes from images, making it useful for applications that need to verify generated qr codes programmatically or process user-submitted qr code images. For the complete API reference, see the IronQR tutorials page and the create QR code image guide.
Getting started: Install via NuGet with Install-Package IronQR and start your free trial to test in your environment. IronQR runs on .NET 6+ and is compatible with Windows, Linux, macOS, Docker, Azure, and AWS.
Wrapping Up
Creating a QR code is a straightforward process regardless of your technical level. For a quick one-off code, your browser handles it in three clicks. For branded custom qr code creation with a company logo and specific foreground color, a free qr code generator like QR Code Monkey takes a few minutes and produces a high-resolution download. For ongoing campaigns where you need to gather feedback on scan rates and update the destination without reprinting, dynamic qr codes from a dedicated platform give you that flexibility. For developers who need to generate qr codes at scale inside a .NET application, IronQR handles generation, custom styling, and reading in a single library.
The two rules that matter most regardless of which method you use: always use enough contrast so the qr code scanner can read the pattern reliably, and always scan qr codes yourself on a real mobile phone before you print qr codes on any physical material. A QR code that does not scan is worse than no QR code at all. Get those two things right and your qr code will increase customer engagement every time it is placed in front of the right audience.




