Why will my barcode not scan?
Short answer
In nearly every case it is one of four causes: quiet zones too narrow, too little contrast, altered bar widths or a wrong check digit. All four can be checked before printing, and all four have a number you can pin them to.
| Rule | Value |
|---|---|
| Width | 37.29 mm |
| Height | 26.26 mm |
| Narrowest element | 0.33 mm |
| Quiet zones | 3.63 mm / 2.31 mm |
| Contrast | 60 % |
| A continuous scan band at the bottom stays fully covered, at least 60 percent of nominal height. | 60 % · 13.71 mm |
This table is calculated when the page is built, from the same rules that produce your code. It cannot go stale.
One: the quiet zones are gone
The most common case, and the most annoying, because the code itself is fine. 3.63 millimetres must stay clear on the left and 2.31 on the right. Neither text nor frame nor the edge of the label may intrude. Anyone who drops a barcode into a tight box and centres it loses them almost every time.
Two: the colour is wrong
Laser scanners read at around 660 nanometres, and in that light red looks like white. A red barcode is not faint to the scanner, it is absent. The same goes for orange and yellow. At least 60 percent contrast is required, measured in the red channel rather than in brightness.
Three: someone changed the bars
Non-uniform scaling, a blur filter, a bar nudged by hand: any change to bar width destroys the information. Width is the information, height is not. That is why a barcode may be cut down in height, as long as a continuous band of at least 60 percent of nominal height remains at the bottom, which for an EAN-13 means 13.71 millimetres.
Four: the check digit is wrong
The last digit of a GTIN is calculated from the ones before it. If it does not match, many point-of-sale systems reject the code even when the scanner reads it cleanly. One transposed digit while typing is enough. Barvio recalculates it and never corrects it silently, because a silently corrected number can point at somebody else's product.
And if all four are fine?
Then it is the print: too little resolution, ink spreading, glossy material dazzling the scanner, or a label stuck across an edge. Barvio checks every code at 3 sizes and again with simulated print blur, using 2 independent decoders. What passes that check tends to fail only on paper afterwards.
Last checked: 7 September 2026