¿Qué es un código QR estático?
Un código QR estático codifica la dirección de destino directamente dentro del código. El patrón de módulos blancos y negros contiene la URL completa —o la clave WiFi, el número de teléfono o el contacto vCard.
Suena sencillo, pero conlleva una desventaja decisiva: el código es inmutable. Si quieres cambiar la URL, tienes que imprimir un código nuevo.
Static: QR → "https://my-website.com/old-page"
↑ hardcoded
Cuándo tienen sentido los códigos estáticos
- Credenciales WiFi (cambian rara vez)
- vCard / información de contacto
- Productos con una URL de ficha técnica fija
- EU Digital Product Passport con un GS1 Digital Link fijo
- Entornos sin conexión que no requieren seguimiento
¿Qué es un código QR dinámico?
Un código QR dinámico codifica únicamente un enlace corto de redirección —por ejemplo https://qr3.app/r7f3Kx. Cuando alguien escanea este código, nuestro edge worker lo redirige a la URL de destino real en milisegundos.
Dynamic: QR → "https://qr3.app/r7f3Kx"
↓ (Cloudflare KV cache, < 5ms)
"https://my-website.com/new-page"
↑ changeable at any time
Ventajas de los códigos QR dinámicos
- URL de destino modificable — sin reimprimir cuando cambia la URL
- Analítica de escaneos — país, dispositivo, navegador, marca de tiempo
- Pruebas A/B — destinos distintos para grupos de campaña
- Geo-redirección — usuarios de DE → página en alemán
- Fecha de caducidad — el código se desactiva tras una fecha establecida
- Webhooks — notificación en tiempo real con cada escaneo
Comparación directa
| Estático | Dinámico | |
|---|---|---|
| Destino modificable | No | Sí |
| Analítica | No | Sí |
| Pantalla de escaneo (branding) | No | Opcional |
| Cumplimiento del RGPD | Sin problema | Sí (IP con hash) |
| Uso sin conexión | Sí | No |
| Tamaño de archivo | Menor | Mayor |
| Dependencia del servidor | Ninguna | Edge worker |
Recomendación práctica
Usa dinámico cuando:
- El código se imprime o se integra en materiales
- Necesitas saber con qué frecuencia y desde dónde se escanea
- Es posible que tengas que actualizar la URL de destino más adelante (menú, campaña, etc.)
Usa estático cuando:
- Los datos son inmutables (WiFi, vCard, GS1 DPP)
- No dispones de infraestructura de servidor
- Necesitas la máxima resolución / el menor tamaño de archivo
Implementación con qr3.app
import { QR3 } from "@qr3/sdk";
const client = new QR3(process.env.QR3_API_KEY);
// Dynamic QR code
const dynamic = await client.codes.create({
type: "url",
url: "https://my-website.com/menu",
title: "Summer Menu 2026",
is_dynamic: true, // default
});
// Static QR code (e.g. vCard)
const vcard = await client.codes.create({
type: "vcard",
vcard_first_name: "John",
vcard_last_name: "Doe",
vcard_organization: "Example Corp",
// is_dynamic is ignored for non-URL types
});
console.log(dynamic.data.redirect_url); // https://qr3.app/r7f3Kx
console.log(dynamic.data.image_svg_url); // https://qr3.app/v1/codes/r7f3Kx/qr.svg
Conclusión
Los códigos QR dinámicos son la opción adecuada para la mayoría de los casos de uso en impresión, marketing y retail. Los códigos estáticos conservan su lugar para aplicaciones técnicas y escenarios sin conexión. Con qr3.app puedes gestionar ambos tipos a través de la misma API y el mismo panel de control.