Have you ever noticed that some QR codes can still be scanned even when they are slightly scratched, dirty, or damaged? This is possible because QR codes have a built-in feature called QR code error correction.
This feature helps a QR code scanner recover encoded information when part of the code cannot be read correctly. It is especially useful for QR codes printed on product packaging, business cards, posters, labels, stickers, and other materials that may become damaged during everyday use.
When creating a QR code, you may see four error correction options: L, M, Q, and H. Each level provides a different amount of error recovery capability. Choosing the right level can help you balance reliability, data capacity, and the visual complexity of your QR code.
But what do these levels actually mean? Is a higher level always better? And which option should you choose when generating a QR code for a website?
In this guide, you will learn how QR code error correction works, understand all four levels, explore practical examples, and discover how to select the right setting when creating your own QR code.
What Is QR Code Error Correction?
QR code error correction is a built-in technology that allows a QR code to recover encoded information when some of its data cannot be read because of damage, dirt, or other reading problems.
A QR code does not simply store information without any protection. It also contains additional information that helps a compatible scanner detect and correct certain errors.
For example, imagine that you print a QR code on a product label. During transportation, a small part of the printed code becomes scratched. A scanner may still be able to read the code because its error correction system can recover some missing information.
This feature makes QR codes more reliable in real-world environments.
Error correction is particularly useful for:
- Printed business cards.
- Product labels and packaging.
- Outdoor advertisements.
- Stickers and promotional materials.
- Restaurant menus.
- Posters and flyers.
- Industrial identification labels.
- QR codes used in frequently handled materials.
However, error correction does not make a QR code indestructible. If too much information is damaged, the scanner may no longer be able to recover the original data.
How Does QR Code Error Correction Work?
QR code error correction uses a mathematical technique called Reed-Solomon error correction.
This technique adds extra recovery information to the original encoded data. When a QR code is scanned, the reader uses this additional information to help identify and correct certain errors.
Let’s understand the process in simple terms.
1. Original Data Is Encoded
First, the QR codes images generator converts your information into a format that can be represented by the QR code.
For example, you might enter a website address:
The generator encodes this URL into a pattern of small black and white squares called modules.
2. Additional Error Correction Data Is Added
The generator adds extra codewords using the Reed-Solomon method.
These additional codewords provide recovery information that can help reconstruct parts of the original encoded data if they become unreadable.
A codeword is a unit of data used in the QR code structure. In a standard QR code, one codeword contains 8 bits.
3. The QR Code Is Generated
After the original data and error correction information are combined, the QR code pattern is generated.
The selected error correction level influences how much additional recovery information is included.
4. A Scanner Reads the QR Code
When someone scans the code, the reader analyzes its pattern and attempts to decode the stored information.
If some parts are damaged or incorrectly detected, the error correction system may recover the missing information.
5. The Original Information Is Recovered
If the damage is within the code’s recovery capability, the scanner can reconstruct the encoded data and display the destination URL or other information.
This is why a partially damaged QR code may still work.
According to DENSO WAVE, QR code error correction is based on Reed-Solomon coding, a mathematical technique also used in other data storage and communication applications.
You can explore the technical explanation in the official DENSO WAVE QR Code Error Correction documentation.
What Are the Four QR Code Error Correction Levels?
QR codes provide four standard error correction levels:
- Level L
- Level M
- Level Q
- Level H
Each level provides a different approximate recovery capability.
| Error correction level | Approximate recovery capability |
|---|---|
| L (Low) | 7% |
| M (Medium) | 15% |
| Q (Quartile) | 25% |
| H (High) | 30% |
These percentages refer to the approximate recoverability of codewords, not a guaranteed percentage of the visible QR code area that can be covered or removed.
For example, selecting Level H does not mean you can cover 30% of the visible QR code with a logo and expect it to scan successfully.
The actual result depends on the type and location of damage, QR code structure, data distribution, and scanner conditions.
Let’s explore each level.
1. Level L: Low Error Correction
Level L provides approximately 7% error correction capability.
It includes a smaller amount of recovery information compared with the other levels.
This can be useful when the QR code is expected to remain clean and undamaged.
When Should You Use Level L?
Level L may be appropriate for:
- QR codes displayed on clean digital screens.
- Website QR codes used in controlled environments.
- Short URLs with limited data.
- Materials that are unlikely to become scratched or dirty.
- Applications where keeping the QR pattern less dense is important.
Advantages of Level L
- Requires less error correction information.
- Can provide more room for original data.
- May produce a less dense QR code than higher levels for the same content and QR version.
- Can be suitable for clean and controlled environments.
Limitations of Level L
Its recovery capability is lower than the other levels.
If the QR code becomes dirty, scratched, or partially damaged, it may be less capable of recovering the original information.
Example: Suppose you display a website QR code on a clean computer screen during a presentation. The code is not likely to be physically damaged, so Level L may be sufficient.
However, you should still test the generated code before using it.
2. Level M: Medium Error Correction
Level M provides approximately 15% error correction capability.
It is a commonly used option for general-purpose QR codes.
It offers a balance between recovery capability and the amount of data that can be stored in a QR code.
When Should You Use Level M?
Level M can be a practical choice for:
- Business cards.
- Flyers and brochures.
- Website QR codes.
- Printed promotional materials.
- Restaurant menus.
- General marketing campaigns.
- Everyday digital and print applications.
Advantages of Level M
- Provides more recovery capability than Level L.
- Offers a practical balance for many everyday applications.
- Works well as a general starting point.
- Is suitable for many ordinary QR code use cases.
Limitations of Level M
It does not provide as much recovery capability as Level Q or H.
If the code is used in an environment where heavy dirt, damage, or physical wear is expected, a higher level may be worth considering.
Example: Imagine you are printing a QR code on a business card that customers may carry in their wallets. The card may experience normal handling, so Level M can be a reasonable starting choice.
3. Level Q: Quartile Error Correction
Level Q provides approximately 25% error correction capability.
It includes more recovery information than Levels L and M.
This makes it useful in environments where QR codes may experience more physical wear or contamination.
When Should You Use Level Q?
Level Q may be suitable for:
- Outdoor QR code stickers.
- Product labels.
- Warehouse identification.
- Industrial materials.
- Printed codes exposed to frequent handling.
- Applications where additional recovery capability is desirable.
Advantages of Level Q
- Provides more recovery capability than Levels L and M.
- Can be useful for QR codes exposed to dirt or physical wear.
- Offers additional protection for certain demanding applications.
Limitations of Level Q
More error correction information can reduce the amount of space available for the original data at a given QR code version.
As a result, the code may need more modules or a larger QR version for the same information.
Example: Suppose a business places QR codes on equipment labels in a workshop. These labels may become dirty during normal use. Level Q could be considered, followed by testing under actual conditions.
4. Level H: High Error Correction
Level H provides approximately 30% error correction capability.
It is the highest of the four standard QR code error correction levels.
It provides the greatest approximate recovery capability, but it also uses more space for error correction information.
When Should You Use Level H?
Level H may be useful for:
- QR codes used in demanding environments.
- Labels that may become damaged.
- Certain industrial applications.
- QR codes where additional recovery capability is important.
- Carefully tested designs that include a central graphic or logo.
Advantages of Level H
- Provides the highest recovery capability among the four standard levels.
- Can help recover information when a code is partially damaged.
- May be useful in environments with greater physical wear.
Limitations of Level H
- Uses more error correction information.
- May reduce the available data capacity for a given QR version.
- Can result in a denser pattern or require a larger QR version.
- Does not guarantee that a heavily covered or damaged code will scan.
Example: A QR code printed on an industrial label may be exposed to difficult conditions. Level H may be worth testing if additional recovery capability is required.
However, selecting Level H alone does not guarantee successful scanning.
QR Code Error Correction Levels Compared
The following table summarizes the differences between all four levels.
| Feature | Level L | Level M | Level Q | Level H |
|---|---|---|---|---|
| Approximate recovery | 7% | 15% | 25% | 30% |
| Recovery capability | Lowest | Moderate | High | Highest |
| Extra recovery data | Least | More than L | More than M | Most |
| Suitable environment | Clean | General use | More demanding | Highly demanding |
| Data capacity at the same version | Generally highest | Lower than L | Lower than M | Generally lowest |
Important: The amount of data a QR code can store depends on its version, character encoding, and error correction level. The table describes the general relationship, not a guarantee about the physical size of every generated code.
Does Higher QR Code Error Correction Always Mean Better?
No. A higher error correction level is not automatically the best choice for every QR code.
Although higher levels provide more recovery capability, they also require additional error correction data.
This can affect the amount of original information that fits into a QR code of a particular version.
For example, if you encode a short website URL, several levels may work well. If you encode a much longer URL or a larger amount of information, selecting a higher level may require a larger QR version.
The best choice depends on three important factors:
1. Where the QR Code Will Be Used
Consider the environment.
A QR code displayed on a clean digital screen may not need the same recovery capability as a sticker placed on outdoor equipment.
2. How Much Information You Are Encoding
A short URL generally requires less data than a long URL containing many parameters.
When the data amount increases, the QR code may need more modules.
3. How Much Physical Wear Is Expected
A QR code printed on a document stored safely may face less damage than one printed on packaging or a frequently handled label.
Choose a level that suits the actual use case rather than automatically selecting the highest option.
Does QR Code Error Correction Make a QR Code Bigger?
It can affect the QR code’s size and complexity, but the relationship needs a little explanation.
A QR code has a limited capacity at each version.
When you select a higher error correction level, more codewords are used for recovery information. This leaves less capacity for the original data at that version.
If the original information does not fit, the generator may need to use a higher QR code version.
Higher QR versions contain more modules.
For example:
- Version 1 contains 21 × 21 modules.
- Version 2 contains 25 × 25 modules.
- Version 3 contains 29 × 29 modules.
- Version 4 contains 33 × 33 modules.
Each higher standard QR code version adds four modules to each side.
This is why a higher error correction level can sometimes produce a denser or larger QR code for the same information.
However, the final image dimensions are also controlled by the generator’s output size settings.
A 512 × 512 pixel QR code can have different module densities depending on its version and encoded content.
For more information, see the official QR Code Version and Information Capacity guide.
What Is the Relationship Between Error Correction and QR Code Size?
QR code size and error correction are related, but they are not the same setting.
Error correction level determines how much recovery information is included.
Image size determines the output dimensions of the generated QR code.
For example, a QR generator may allow you to select 512 × 512 pixels. This controls the image dimensions, but it does not mean the QR code automatically has a higher error correction level.
Consider these two settings:
- QR code size: 512 × 512 pixels.
- Error correction: Level M.
The first setting controls the output dimensions. The second controls the recovery capability.
Both settings should be selected according to your intended use.
If you are preparing a code for printing, you should also check its physical dimensions, module clarity, contrast, and scanning distance.
Can You Cover Part of a QR Code With a Logo?
You may have seen QR codes with logos or graphics in the center.
Some QR codes can remain readable when a small part of their pattern is obscured, partly because of their error correction capability.
However, adding a logo is not automatically safe just because you select Level H.
There are several reasons:
- Damage to different areas can affect scanning differently.
- Some QR code areas contain important structural patterns.
- A large logo can obscure too much encoded information.
- A low-quality image may reduce readability.
- Different scanning applications may behave differently.
If you are creating a branded QR code, use a generator that explicitly supports logo placement and test the finished code on multiple devices.
Do not assume that a standard color or size customization option includes logo support.
How to Choose the Right QR Code Error Correction Level
Choosing the right level does not have to be complicated.
Start by identifying where the QR code will be used.
Here is a practical guide:
| Your use case | Suggested starting level |
|---|---|
| Clean digital screen | L or M |
| Website QR code | M |
| Business card | M |
| Flyer or brochure | M |
| Outdoor sticker | Q |
| Frequently handled label | Q or H |
| Demanding industrial environment | Q or H |
These are starting suggestions, not universal rules. The final choice should be tested using the actual QR code, material, printing method, and scanning conditions.
A Simple Decision-Making Method
Ask yourself these questions:
- Will the QR code be displayed digitally or printed?
- Will it be exposed to dirt, scratches, or frequent handling?
- Does it contain a short URL or a long amount of information?
- Will it be printed at a small size?
- Can you test the final code before distribution?
If the code is for ordinary website sharing, Level M is a sensible starting point.
If the code will be exposed to more demanding conditions, consider Q or H and test the result.
How to Select Error Correction in Viralee QR Codes images Generator
If you want to create a QR code for your website, you can use the QR Codes images.
The tool provides an error correction selection option along with other QR code customization settings.
Follow these steps:
Step 1: Open the QR Codes images Generator
Visit the Viralee QR Codes images Generator page.
Step 2: Enter Your Website URL
Copy your website address and paste it into the URL input field.
For example:
Make sure the URL is correct and opens the intended webpage.
Step 3: Select the QR Code Size
Choose an available output size.
For example, you can select 512 × 512 pixels if it suits your intended digital use.
For printing, check the final physical dimensions and test the code before producing multiple copies.
Step 4: Choose an Error Correction Level
Use the error correction selector to choose the available level that matches your intended environment.
For a normal website QR code, Level M can be a reasonable starting point.
If you expect more physical wear, consider testing Q or H.
Step 5: Customize the Colors
Select a suitable foreground color and background color.
Use strong contrast so that the QR pattern remains easy to recognize.
You can also read our guide on How to Change QR Code Colors.
Step 6: Adjust the Margin
Make sure the QR code has enough blank space around its edges.
Avoid placing text or decorative elements too close to the pattern.
Step 7: Generate and Preview the QR Code
Generate the code and inspect the preview.
Check that it is complete, properly aligned, and visually clear.
Step 8: Download or Copy the QR Code
Viralee provides the following download options:
- PNG
- SVG
Choose the format that suits your intended use.
Step 9: Test the Final QR Code
Scan the downloaded code using a smartphone.
Confirm that it opens the correct website.
If you plan to print the code, test a physical copy at the intended size.
Common QR Code Error Correction Mistakes
Selecting an error correction level is important, but other mistakes can also affect QR code reliability.
Here are some problems to avoid.
1. Assuming Level H Is Always Best
A higher level offers more recovery capability, but it can reduce data capacity at a given QR version.
Choose the level based on the environment and test the result.
2. Thinking 30% Means You Can Cover 30% of the QR Code
This is one of the most common misunderstandings.
The recovery percentages refer to codeword recoverability, not a guaranteed percentage of visible QR code area.
Do not use the percentage as permission to cover part of the pattern.
3. Using Poor Color Contrast
A QR code with similar foreground and background colors may be difficult to scan.
Use a clear contrast between the pattern and background.
4. Removing the Quiet Zone
The quiet zone is the blank area around a QR code.
Removing it or placing other objects too close to the pattern can interfere with recognition.
5. Printing the QR Code Too Small
A QR code may look clear on a computer screen but become difficult to scan after being printed at a very small size.
Test the physical print before distribution.
6. Ignoring the Encoded Data Length
A long URL can produce a more complex QR code than a short URL.
Use the shortest appropriate destination URL without removing information required for the link to work.
7. Not Testing the Final File
Always test the downloaded PNG, PDF, or SVG file rather than relying only on the generator preview.
Image editing, compression, resizing, and printing can affect the final result.
How to Test Whether Your QR Code Is Working
After generating a QR code, test it before sharing it publicly.
Follow this checklist:
- Scan the code using your smartphone camera.
- Confirm that the correct URL appears.
- Open the destination webpage.
- Test the downloaded file, not only the preview.
- Try another smartphone if possible.
- Check the code at its intended printed size.
- Test it under normal lighting conditions.
- Make sure the printed code has sufficient contrast.
- Confirm that the quiet zone is not cropped.
If the QR code fails to scan, generate a fresh version and check the URL, size, colors, margin, and error correction level.
Frequently Asked Questions
1. What is the best QR code error correction level?
There is no single best level for every situation. Level M is a practical starting point for many everyday uses. Level Q or H may be more appropriate for environments where the code could experience additional physical wear.
2. What does Level L mean in a QR code?
Level L is the lowest standard QR code error correction level. It provides approximately 7% codeword recovery capability and may be suitable for clean environments where additional physical protection is not essential.
3. What does Level M mean in a QR code?
Level M provides approximately 15% error correction capability. It is commonly used for general-purpose QR codes, including business cards, flyers, and website links.
4. What does Level Q mean in a QR code?
Level Q provides approximately 25% error correction capability. It can be considered for applications where QR codes may experience more dirt or physical wear.
5. What does Level H mean in a QR code?
Level H is the highest standard error correction level. It provides approximately 30% codeword recovery capability and may be useful for more demanding applications.
6. Can a damaged QR code still work?
Yes. A QR code may remain readable when part of its information is damaged, provided the damage is within the recovery capability of its error correction system.
However, severe damage can make a code unreadable.
7. Does QR code error correction use Reed-Solomon coding?
Yes. Standard QR codes use Reed-Solomon error correction to add recovery information that helps reconstruct data when some codewords cannot be read correctly.
8. Does higher error correction make a QR code larger?
It can. Higher error correction uses more recovery information, which leaves less capacity for the original data at a given QR version. The generator may need a higher version with more modules to store the same information.
9. Can error correction fix a blurry QR code?
Not necessarily. Error correction helps recover certain data errors, but it does not guarantee that a badly blurred, distorted, or low-resolution QR code can be scanned.
Use a clear export and avoid excessive image compression.
10. Should I use Level H for a website QR code?
Not automatically. For an ordinary website URL, Level M is a sensible starting point. Use a higher level only when the expected environment justifies it, and test the final code.
11. Can I change the error correction level after downloading a QR code?
The selected error correction level is part of the generated QR code structure. To use another level, you generally need to generate a new QR code with the desired setting.
12. Does QR code error correction protect against malicious links?
No. Error correction is designed to help recover encoded information when the code is damaged. It does not verify whether the destination URL is safe or trustworthy.
Always check the destination before opening an unfamiliar QR code.
Final Thoughts
QR code error correction is an important feature that helps QR codes remain readable when some of their encoded information becomes damaged or cannot be detected correctly.
The four standard levels—L, M, Q, and H—provide different recovery capabilities. Level L offers the lowest recovery capability, while Level H offers the highest.
However, selecting the highest level is not always necessary. The right choice depends on the amount of information, the QR code’s environment, and how much physical wear it may experience.
For an ordinary website QR code, Level M is a practical starting point. For labels, stickers, or more demanding environments, Q or H may be worth testing.
If you want to create and customize your own QR code, try the Viralee . Enter your website link, choose the available settings, generate your code, and test the final download before sharing it.
Pingback: Best QR Code Size for Printing and Digital Use 2027
Pingback: 15 Practical Ways to Use QR Codes for Small Businesses
Pingback: How to Create a Best QR Code for Business Cards in 2026
Pingback: Make QR Code From Link: 5 Best Free & Easy Step-by-Step