Los niveles de corrección de errores del código QR son la cantidad de datos redundantes que lleva un código para que un escáner pueda reconstruir lo que está manchado, rayado o tapado por un logotipo. Hay cuatro: L, M, Q y H, que recuperan aproximadamente el 7 %, el 15 %, el 25 % y el 30 % del código. Elige M para la mayoría de las pantallas y los enlaces cortos, y H cuando un logotipo o un trato brusco vayan a comerse parte del código. El precio de cada escalón es la densidad: más módulos, cuadrados más pequeños con el mismo ancho impreso.
Ese equilibrio es donde empiezan la mayoría de las historias de "mi código QR no se escanea", y por eso este tutorial trabaja con recuentos reales de módulos en lugar de agitar las manos. Si todavía no has creado un código, cómo crear un código QR es el lugar donde empezar; este artículo trata de elegir el nivel cuando ya lo tienes.
Qué hace realmente la corrección de errores en un código QR
Un código QR almacena tus datos como bytes llamados palabras de código. Junto a ellos almacena palabras de código adicionales calculadas con la corrección de errores Reed-Solomon, la misma familia de matemáticas que se usa en los CD. Cuando un escáner lee un código dañado, usa esas palabras de código adicionales para deducir cuáles de las palabras de código de datos son erróneas y qué deberían haber sido.
El nivel que elijas decide cuántas palabras de código adicionales hay. Denso Wave, que inventó el formato, describe la función de corrección de errores como cuatro niveles y señala que subir el nivel mejora la recuperación pero aumenta la cantidad de datos y, con ello, el tamaño del símbolo. Las cifras de recuperación siguientes son las que figuran en ISO/IEC 18004 y que se repiten en la entrada de Wikipedia sobre el código QR.
- Nivel L (Low, bajo): se puede restaurar alrededor del 7 % de las palabras de código.
- Nivel M (Medium, medio): alrededor del 15 %.
- Nivel Q (Quartile, cuartil): alrededor del 25 %.
- Nivel H (High, alto): alrededor del 30 %.
Fíjate en la palabra "alrededor". El porcentaje cuenta palabras de código, no una mancha de tinta. Piénsalo como un presupuesto de reparación, no como una garantía frente al daño.
El equilibrio de la densidad: por qué más alto no siempre es más seguro
La redundancia tiene que vivir en algún sitio. Un nivel más alto empuja tus datos a un símbolo más grande. Los códigos QR vienen en versiones del 1 al 40, y la longitud del lado es 17 + 4 x versión módulos: la versión 1 es de 21 x 21 y la versión 40 de 177 x 177, según la tabla de versiones y capacidad de Denso Wave. El codificador elige la versión más pequeña cuya capacidad, en el nivel que has elegido, acoge tus datos.
Para las URL, esos datos son texto en modo byte. La versión 2 admite 32 bytes en L, 26 en M, 20 en Q y 14 en H. La versión 8 admite 192, 152, 108 y 84. La versión 11 admite 321, 251, 177 y 137.
El coste se ve en la versión 8: 192 bytes en L, 84 en H. La misma cuadrícula, menos de la mitad del espacio para tu URL, porque el resto es paridad.
Por qué un código más denso se escanea peor
Un teléfono tiene que resolver cada módulo. Imprime el código con 3 cm de ancho y una cuadrícula de 33 módulos da módulos de aproximadamente 0,9 mm; una cuadrícula de 61 módulos da aproximadamente 0,5 mm. La misma cámara, la misma luz, la misma mano temblorosa. La mitad del margen. Las reglas de tamaño de qué tamaño debe tener un código QR suponen que trabajas con un tamaño de módulo razonable, y la densidad es lo que rompe en silencio esa suposición.
Ejemplo práctico: una URL en cada nivel
Este es el experimento que hago siempre que alguien me dice que "lo ponga en H sin más". Tomé una URL de campaña rastreada de 126 caracteres: un dominio, una ruta y los parámetros utm_source, utm_medium, utm_campaign y utm_content. Después tomé un enlace corto de 25 caracteres, https://s.elido.me/qr7kP2, como ejemplo ilustrativo. Ambos están en modo byte. Codifiqué cada uno en los cuatro niveles con un codificador estándar, y la tabla de capacidad anterior predice el resultado.
| Nivel | Recuperación | URL de 126 caracteres | Enlace corto de 25 caracteres |
|---|---|---|---|
| L | ~7 % | V6, 41 x 41 | V2, 25 x 25 |
| M | ~15 % | V8, 49 x 49 | V2, 25 x 25 |
| Q | ~25 % | V9, 53 x 53 | V3, 29 x 29 |
| H | ~30 % | V11, 61 x 61 | V4, 33 x 33 |
Destacan dos cosas. Primero, la URL larga crece de 41 a 61 módulos por lado al pasar de L a H, que son 1681 a 3721 módulos, unas 2,2 veces el área. Segundo, y esto es lo que nadie menciona: el enlace corto en el nivel más fuerte, H (33 x 33), sigue siendo más pequeño que la URL larga en el nivel más débil, L (41 x 41).
La carga útil importa más que el nivel. Puedes comprar el presupuesto máximo de reparación del 30 % para un enlace corto y acabar con un código más disperso y más grueso que el código "eficiente" de nivel L para la URL larga.
Cuándo elegir H, y cuándo es mejor L o M
Ajusta el nivel a lo que de verdad le va a pasar al código. La cautela en general no es una especificación.
Elige H (o Q) cuando
- Un logotipo o una marca está en el centro. Oculta módulos que el escáner debe reconstruir.
- El código se imprime en un embalaje, un folleto en un bolsillo, una pegatina, una mesa que se limpia o cualquier cosa al aire libre.
- La superficie es rugosa o curva y no puedes controlar el acabado.
- No es posible volver a escanear, como un código en un producto ya enviado.
El artículo de ayuda sobre códigos QR de Elido dice lo mismo: mantén un logotipo por debajo del 20 % del área del código, y cambia a H cuando lo superes o imprimas con un logotipo.
Elige L o M cuando
- El código aparece en una pantalla: una diapositiva, una página web, una confirmación de pago.
- La URL es corta y nada la va a tapar ni rayar.
- El espacio es escaso y el código debe seguir siendo pequeño, así que cada módulo cuenta.
M es el valor por defecto práctico. Denso Wave dice que es el nivel que se elige con más frecuencia, y nuestro artículo sobre el código QR que no se escanea plantea lo mismo desde el lado del servicio de asistencia: H es el valor por defecto equivocado para un código sencillo, porque la densidad que añade causa más escaneos fallidos que el daño del que protege.
Una advertencia sobre los logotipos: la corrección de errores repara módulos que faltan, no arregla un contraste deficiente, el desenfoque ni un margen recortado. Las reglas de diseño para gastar el presupuesto en un logotipo están en diseño de códigos QR de marca, incluido por qué los tres cuadrados de las esquinas se dejan intactos.
Los enlaces cortos mantienen el código disperso (y los códigos QR dinámicos los usan)
El ejemplo práctico da una regla que puedes aplicar hoy: reduce la carga útil antes de subir el nivel. Un código QR dinámico hace exactamente eso. En lugar de codificar el destino completo, codifica un enlace corto, y el enlace corto redirige a donde tú indiques.
Codificar un enlace corto tiene tres efectos sobre la fiabilidad:
- La cuadrícula se mantiene en una versión baja, así que los módulos siguen siendo grandes a cualquier tamaño de impresión.
- Puedes permitirte el nivel Q o H para un logotipo o el desgaste de la impresión sin que el código se hinche.
- Los parámetros de seguimiento viven en el destino, no en el patrón, así que cambiar una etiqueta de campaña nunca obliga a generar un código nuevo y más denso.
Hay un cuarto beneficio que no tiene nada que ver con la densidad: como el código apunta a un enlace corto, puedes redirigirlo más tarde sin reimprimir, y obtienes los recuentos de escaneos gratis. Con un código estático, el destino está grabado en el patrón, así que la única forma de corregir un error tipográfico es volver a imprimir.
Si quieres probarlo con tus propios enlaces, el generador de códigos QR te permite fijar el nivel por código, con M como punto de partida, y los detalles de los planes están en la página de precios. Crea uno en M y otro en H a partir del mismo enlace corto, imprímelos a 3 cm y compáralos. Apostaría a que te cuesta distinguirlos a simple vista, y ese es el punto.
Una lista de comprobación breve antes de imprimir
Ejecútala en orden.
- Acorta primero la URL; deja los parámetros de seguimiento en el destino.
- Elige el nivel a partir de la tabla: M para pantallas e impresión sencilla, Q o H para logotipos y desgaste.
- Comprueba la versión que eligió tu generador. Pasada aproximadamente la versión 10 para una URL, pregúntate por qué la carga útil es tan larga.
- Respeta la zona de silencio: al menos cuatro módulos de borde en blanco por cada lado.
- Imprime al tamaño final y escanéalo con dos teléfonos distintos con luz normal.
El paso 5 detecta lo que ninguna tabla predice. Un logotipo que parecía pequeño en pantalla puede cubrir más módulos de los que imaginas.
Lee la serie cornerstone
Este artículo forma parte del clúster de tutoriales, y su cornerstone es cómo crear un código QR. Para las reglas de tamaño y distancia que deciden si tu tamaño de módulo es suficientemente grande, consulta qué tamaño debe tener un código QR.
Relacionado en el blog
Preguntas frecuentes
¿Cuál es el mejor nivel de corrección de errores para un código QR?
El nivel M es el valor por defecto sensato: recupera alrededor del 15 % del código y mantiene la cuadrícula pequeña. Denso Wave, el inventor del formato, dice que M es el nivel que se elige con más frecuencia. Pasa a Q o H cuando el código lleve un logotipo o vaya a imprimirse en algo que se roza, se dobla o se deja a la intemperie.
¿Qué significa una corrección de errores del 30 % en un código QR?
Significa que un código de nivel H todavía puede decodificarse cuando hasta aproximadamente el 30 % de sus palabras de código de datos son ilegibles o están ocultas. El código almacena datos de paridad Reed-Solomon adicionales, y el escáner los usa para reconstruir lo que falta. Es un techo de daño reparable, no una promesa de que cualquier 30 % de la superficie pueda perderse.
¿Un nivel de corrección de errores más alto hace que un código QR sea más difícil de escanear?
Indirectamente, sí. Los niveles más altos añaden datos de paridad, así que la misma URL necesita una versión mayor con más módulos, y más pequeños. Con el mismo ancho impreso, los módulos más pequeños son más difíciles de resolver para la cámara de un teléfono. La solución es una carga útil más corta, no un nivel más bajo en un código que necesita la protección.
¿Necesito el nivel H para poner un logotipo en un código QR?
Usa H, o al menos Q, para cualquier código con un logotipo en el centro. El logotipo oculta módulos, y el escáner los trata como un daño que hay que reparar. Mantén el logotipo muy por debajo de una cuarta parte del área del código y lejos de los tres cuadrados de las esquinas, para que el desgaste de la impresión aún tenga margen.
¿Se puede escanear un código QR dañado?
A menudo, sí, dentro del límite del nivel. Un código rayado, manchado o parcialmente tapado se decodifica si el área perdida queda dentro de lo que su nivel puede reparar y los cuadrados de las esquinas están intactos. Un código de nivel L tolera alrededor de un 7 % de daño, y uno de nivel H alrededor de un 30 %.
¿Cuál es el nivel de corrección de errores por defecto de un código QR?
El estándar no fija un valor por defecto único; cada generador elige el suyo, y M es la opción más común. El área de pruebas de QR de Elido empieza en M, con L, Q y H disponibles desde el mismo control.
Prueba Elido
Pega una URL, obtén un enlace corto
Sin registro. El enlace vive 30 días. Crea una cuenta para conservarlo.
Gratis, sin registro · 2 por día