# Core Web Vitals PrestaShop: seguimiento CrUX y diagnóstico por módulo (dfcoreweb)

> DataFirefly Core Web Vitals trae a su back office las mediciones de rendimiento que viven realmente sus visitantes de Chrome (informe CrUX de Google), por separado para cada tipo de…

- Página: <https://www.datafirefly.com/es/documentation/dfcoreweb/>
- Idioma: es
- Actualizado el: 2026-10-16
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/dfcoreweb/index.md), [en](https://www.datafirefly.com/en/documentation/dfcoreweb/index.md), [de](https://www.datafirefly.com/de/documentation/dfcoreweb/index.md), [it](https://www.datafirefly.com/it/documentation/dfcoreweb/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfcoreweb/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfcoreweb/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfcoreweb/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

DataFirefly Core Web Vitals trae a su back office las mediciones de rendimiento que viven realmente sus visitantes de Chrome (informe CrUX de Google), por separado para cada tipo de página: inicio, categoría, ficha de producto, carrito, página CMS y dominio completo. Conserva el historial, avisa por correo cuando una métrica empeora, compara su tienda con sus competidores y explica, con un diagnóstico de PageSpeed Insights, qué módulo, archivo del tema o servicio de terceros ralentiza una página.

Esta documentación cubre la versión **1.2.0**, compatible con PrestaShop **8.0 a 9.x** y PHP **8.1+** con la extensión cURL. Módulo exclusivamente de back office: ningún hook de front office, ningún script del lado del visitante, ninguna dependencia de Composer.

## Requisito previo: la clave API de Google

El módulo usa dos API gratuitas de Google con la misma clave: Chrome UX Report (mediciones reales) y PageSpeed Insights (pestaña Diagnóstico).

1. Abra **Google Cloud Console** y cree un proyecto, o elija uno existente.
2. En **APIs y servicios > Biblioteca**, habilite **Chrome UX Report API**.
3. En la misma biblioteca, habilite **PageSpeed Insights API**.
4. En **APIs y servicios > Credenciales**, haga clic en **Crear credenciales > Clave de API** y copie la clave (empieza por `AIzaSy`).

No aplique una restricción por referente HTTP a esta clave: las llamadas salen del servidor de la tienda, no de un navegador. En cambio, sí puede restringirla por API (Chrome UX Report y PageSpeed Insights).

No se pide tarjeta bancaria. La cuota de CrUX es de 150 solicitudes por minuto; una sincronización consume unas veinte, más una por competidor y por dispositivo medido.

## Instalación y actualización

1. Abra **Módulos > Gestor de módulos** y haga clic en **Subir un módulo**.
2. Suelte el archivo `dfcoreweb.zip`.
3. Haga clic en **Configurar**: llegará al panel del módulo.

La instalación crea 5 tablas y un menú **Core Web Vitals** en **Mejorar**, con 5 páginas: Panel, Recomendaciones, Historial, Diagnóstico y Configuración.

### Actualización desde la versión 1.0.0

Instale el nuevo ZIP encima del anterior, sin desinstalar. La actualización reorganiza el menú, repara las mediciones guardadas por la 1.0.0 (en ella, las métricas ausentes se almacenaban como 0), añade las nuevas tablas y elimina los archivos antiguos.

La actualización crea un token aleatorio para la tarea programada: la URL de cron anterior deja de funcionar. Copie la nueva desde la pestaña **Configuración** en su programador de tareas.

## Configuración

### Clave API

Pegue la clave y haga clic en **Guardar y probar**. El módulo consulta CrUX para el dominio de la tienda y muestra uno de estos resultados:

- **Clave válida: CrUX devuelve datos**: todo está listo.
- **Clave válida. CrUX aún no tiene suficiente tráfico de Chrome** para el dominio: la clave funciona, algunas páginas muy visitadas pueden devolver mediciones igualmente y el Diagnóstico sigue disponible.
- **Google ha rechazado la clave API**: compruebe la clave y que Chrome UX Report API esté habilitada en el proyecto.
- **El servidor de la tienda no consigue conectar con los servidores de Google**: consulte la resolución de problemas al final de la página.

### Dispositivos medidos

- **Móvil**: activado por defecto, es el que Google usa para evaluar la experiencia de página.
- **Ordenador**: activado por defecto.
- **Tableta**: desactivado por defecto, CrUX rara vez tiene suficientes datos en este segmento.

Siempre queda al menos un dispositivo activo: si desmarca todos, se reactiva Móvil.

### Páginas medidas

La página de inicio, el carrito y el dominio completo se miden siempre. Para los demás tipos, deje el campo vacío para la selección automática o introduzca identificadores separados por comas:

- **ID de productos**: vacío = los 3 productos más vendidos de los últimos 90 días (pedidos validados de la tienda) o, en su defecto, los 3 productos más recientes.
- **ID de categorías**: vacío = las 3 categorías con más productos activos, sin contar las categorías raíz e inicio.
- **ID de páginas CMS**: vacío = no se mide ninguna página CMS.

Elija páginas muy visitadas. CrUX no publica nada por debajo de cierto volumen de visitas de Chrome: una página poco visitada se quedará en «Tráfico de Chrome insuficiente», pero siempre podrá analizarla en la pestaña Diagnóstico.

### Competidores

Introduzca hasta 5 dominios, uno por línea (`competidor.es` o `https://www.competidor.com`). Como las mediciones de CrUX son públicas, el módulo mide el dominio completo de cada competidor sin instalar nada en sus sitios. Los competidores no intervienen en las alertas ni en las recomendaciones.

### Sincronización automática

- **Permitir la URL de sincronización**: activa la tarea programada descrita más abajo.
- **Importar el historial semanal de CrUX**: recupera hasta 40 semanas de mediciones pasadas para cada página y después las actualiza una vez por semana.
- **Análisis de laboratorio automático**: la tarea programada analiza una página al día con PageSpeed Insights (móvil), de modo que cada página se revisa aproximadamente una vez por semana.
- **Conservación del historial**: 365 días por defecto, de 30 a 3650. Las mediciones, análisis y eventos más antiguos se eliminan en cada sincronización.

### Alertas de regresión

- **Enviar un correo cuando una métrica empeore**: activa las alertas.
- **Destinatario**: vacío = dirección de correo de la tienda.
- **Umbral de empeoramiento**: 15 % por defecto, de 5 a 100 %.

En cada sincronización, el LCP, el INP, el CLS y el TTFB de cada página y dispositivo se comparan con su media de los 7 días anteriores (al menos 3 mediciones). Se envía una alerta cuando la subida supera el umbral **y** el valor ya no está en la zona verde de Google. Todas las regresiones de una sincronización caben en un único correo, y la misma página no vuelve a generar una alerta para la misma métrica antes de 7 días. El botón **Enviar un correo de prueba** comprueba la dirección y la configuración de correo de la tienda.

### Panel de PrestaShop

La opción **Mostrar un resumen móvil** añade a la página de inicio del back office un bloque con el LCP, el INP y el CLS móviles por tipo de página y su estado.

## La tarea programada

La pestaña Configuración muestra la URL que debe llamarse una vez al día y una línea crontab lista para copiar:

```
17 6 * * * curl -fsS "https://su-tienda.com/module/dfcoreweb/cron?token=SU_TOKEN" > /dev/null
```

En un alojamiento compartido, use el programador de tareas de su panel de control o un servicio como cron-job.org. Cada llamada:

1. actualiza la lista de páginas medidas (productos más vendidos, categorías);
2. consulta CrUX para cada página, dispositivo y competidor;
3. envía el correo de alerta si es necesario;
4. importa el historial semanal cuando corresponde;
5. lanza el análisis de laboratorio del día;
6. elimina los datos más antiguos que el periodo de conservación.

La URL responde en JSON con un código **200** cuando todo ha ido bien y **502** en caso de fallo, para que su servicio de cron pueda avisarle. Un token incorrecto recibe un código 403. La tarea funciona aunque la tienda esté en mantenimiento y se niega a ejecutarse dos veces a la vez para una misma tienda (bloqueo de 15 minutos).

Basta con una ejecución al día: CrUX agrega 28 días y solo se actualiza una vez al día. El botón **Nuevo token** invalida la URL actual; en multitienda, cada tienda tiene su propia URL.

El panel le avisa si la tarea nunca se ha llamado o si no ha habido ninguna sincronización desde hace más de 3 días. El botón **Sincronizar ahora** lanza una recogida inmediata, útil justo después de la instalación.

## El panel

Un mosaico por tipo de página muestra, para cada dispositivo, las cinco métricas en el **percentil 75** sobre 28 días móviles, con los colores de los umbrales de Google:

- **LCP** (visualización del contenido principal): bueno hasta 2,5 s, malo por encima de 4 s.
- **INP** (capacidad de respuesta a las interacciones): bueno hasta 200 ms, malo por encima de 500 ms.
- **CLS** (estabilidad visual): bueno hasta 0,1, malo por encima de 0,25.
- **FCP** (primera visualización): bueno hasta 1,8 s, malo por encima de 3 s.
- **TTFB** (tiempo de respuesta del servidor): bueno hasta 0,8 s, malo por encima de 1,8 s.

La insignia **Aprobado** o **Suspendido** sigue la regla de Google: LCP, INP y CLS en la zona verde (el INP no se tiene en cuenta cuando CrUX no lo publica, algo frecuente en el carrito). Bajo cada valor, una flecha indica la evolución respecto a hace 4 semanas: roja cuando la métrica empeora, verde cuando mejora. Cuando un tipo de página agrupa varias URL, el mosaico muestra su media.

Más abajo, la **Comparación con sus competidores** clasifica su dominio y los de sus competidores por LCP, para cada dispositivo. La tabla **URL medidas** detalla cada página con sus mediciones, su última puntuación de PageSpeed (columna Laboratorio) y dos accesos directos: su historial y su diagnóstico.

## Recomendaciones

Cada métrica fuera de la zona verde genera una recomendación. Las recomendaciones con la misma causa se agrupan en una sola tarjeta, que enumera las páginas afectadas con su valor (por ejemplo, el TTFB en la página de inicio, las categorías y las fichas de producto). Cada tarjeta indica:

- la gravedad: **Crítica** (zona roja), **Por corregir** (zona naranja) o **Consejo**;
- la causa probable en este tipo de página de PrestaShop y los pasos para corregirla;
- un orden de magnitud del impacto, tomado de estudios públicos y presentado como una estimación;
- enlaces a las pantallas correspondientes (Rendimiento, Configuración de imágenes, Posiciones de los módulos, Reglas del carrito) y al Diagnóstico.

**Ignorar 30 días** oculta la tarjeta para todas sus páginas. Vuelve a aparecer si se ve afectada una página nueva, y un enlace en la parte superior de la página muestra las recomendaciones ignoradas para volver a mostrarlas.

## Historial

Elija el tipo de página, la URL (o la media de todas las URL del tipo), el dispositivo y el periodo (30, 90, 180 o 365 días). Se muestran seis curvas: LCP, INP, CLS, TTFB, FCP y la proporción de URL que aprueban la evaluación, con los umbrales de Google en líneas de puntos.

Antes de la primera sincronización, cada punto corresponde a una semana importada del historial CrUX; después, un punto por sincronización. Cada punto cubre los 28 días anteriores: un cambio tarda unas 4 semanas en reflejarse por completo.

### Eventos

Las instalaciones y desinstalaciones de módulos se anotan automáticamente y aparecen con líneas de puntos en las curvas. Añada sus propias marcas con una fecha y una descripción (actualización del tema, cambio de alojamiento, campaña) para relacionar una variación con su causa. Al pasar el ratón sobre un punto se muestran los eventos cercanos.

El botón **Exportar CSV** descarga la selección mostrada, con el origen de cada punto (semanal o diario).

## Diagnóstico de una página

Elija una página medida y el dispositivo (Móvil u Ordenador) y haga clic en **Lanzar el análisis**. Google carga la página desde sus servidores y el resultado llega en 20 a 60 segundos. Queda guardado: al cambiar de página o de dispositivo se muestra el último análisis sin lanzar otro.

La puntuación y los valores de laboratorio varían unos puntos de un análisis a otro. Google clasifica las páginas con las mediciones reales, no con esta puntuación. El **TBT** es el equivalente de laboratorio del INP. Las mediciones reales de la página se recuerdan bajo los valores de laboratorio cuando existen.

### Puntuación y captura

La puntuación de rendimiento (sobre 100), los valores de LCP, TBT, CLS, FCP, Speed Index y TTFB, el peso total, el número de solicitudes y la captura de lo que mostró Google.

### Elemento LCP

El elemento que determina el LCP (imagen, banner, título) con su código HTML, y el reparto de su tiempo en cuatro fases: respuesta del servidor, espera antes de la descarga, descarga del recurso y retraso de renderizado. Un consejo corresponde a la fase más larga, por ejemplo precargar la imagen cuando el navegador la descubre tarde, o quitar `loading="lazy"` cuando la imagen LCP se carga en diferido.

### Lo que pesa en la página

Cada archivo cargado se atribuye a su origen según su ruta:

- **Módulo**: archivos bajo `/modules/nombre_del_modulo/`, mostrados con el nombre del módulo;
- **Tema**: archivos bajo `/themes/nombre/`;
- **Tienda**: archivos del núcleo de PrestaShop, imágenes de la tienda y la página HTML con los scripts escritos directamente en ella;
- **Tercero**: cualquier otro dominio, con el nombre que le da Google cuando lo reconoce (Google Tag Manager, Facebook, herramientas de chat...).

Para cada origen: tiempo de CPU (ejecución del JavaScript durante la carga, la primera causa de un INP alto), peso de JS, CSS y otros archivos, JavaScript sin usar y número de solicitudes. La tabla se ordena por tiempo de CPU.

Si la caché inteligente (CCC) está activada, PrestaShop combina los archivos de los módulos en los del tema y el detalle por módulo desaparece. El Diagnóstico lo indica: desactive el CCC durante un análisis en **Parámetros avanzados > Rendimiento**, vuelva a lanzarlo y después reactívelo.

### Archivos bloqueantes y problemas detectados

La lista de archivos que bloquean la visualización, cada uno con su módulo u origen, y los problemas detectados por Google (caché, formato de las imágenes, JavaScript sin usar...), ordenados por ahorro estimado, con una pista para PrestaShop en cada uno. Los textos de Google aparecen en el idioma del back office.

### Análisis anteriores

La tabla de los últimos análisis de la página (puntuación, LCP, TBT, CLS, peso, o el error encontrado) permite comprobar el efecto de una corrección.

### Análisis automático

Con la opción **Análisis de laboratorio automático**, la tarea programada analiza cada día la página cuyo último análisis móvil es el más antiguo, si tiene más de 7 días. Para una tienda sin mediciones CrUX por página, es la única medición que evoluciona en el tiempo.

Si la tienda está en mantenimiento, Google analiza la página de mantenimiento. El Diagnóstico lo indica encima del botón.

## El estado «Tráfico de Chrome insuficiente»

CrUX solo publica una medición si suficientes visitantes de Chrome han cargado la URL en 28 días. Si no es así, el módulo guarda este estado sin error y la sincronización continúa. En ese caso, apóyese en el **dominio completo**, que alcanza el umbral con más facilidad, y en la pestaña **Diagnóstico** para las páginas afectadas.

## Privacidad

Solo se envían a Google las URL públicas medidas y los dominios competidores que usted introduce. Ningún dato de clientes sale de la tienda. Todas las mediciones, análisis y eventos permanecen en su base de datos PrestaShop; cada análisis conserva un resumen y la captura de la página (unos 50 KB) durante el mismo periodo de conservación. Chart.js va incluido en el módulo: ningún CDN, ninguna telemetría.

## Resolución de problemas

- **«Google ha rechazado la clave API»**: clave mal copiada, Chrome UX Report API no habilitada en el proyecto o restricción por referente HTTP en la clave.
- **«La API PageSpeed Insights no está activada»** (pestaña Diagnóstico): habilite **PageSpeed Insights API** en la biblioteca del mismo proyecto de Google Cloud.
- **«El servidor de la tienda no consigue conectar con los servidores de Google»**: el proveedor de alojamiento bloquea las conexiones salientes. Pídale que permita el HTTPS saliente hacia `googleapis.com`. La sincronización se detiene tras dos fallos en lugar de esperar en cada página.
- **«Cuota de la API Chrome UX Report superada»**: la sincronización se reanudará en la próxima ejecución de la tarea. Para PageSpeed (**«Cuota de PageSpeed Insights superada»**), vuelva a intentarlo un minuto después.
- **«Ya hay una sincronización en curso para esta tienda»**: espere unos minutos y vuelva a intentarlo.
- **La URL de cron responde 403**: el token ya no es válido (nuevo token o actualización desde la 1.0.0). Vuelva a copiar la URL de la pestaña Configuración.
- **El correo de prueba no llega**: compruebe la dirección y **Parámetros avanzados > E-mail**.
- **El Diagnóstico no detalla los módulos**: desactive el CCC durante un análisis (véase más arriba).
- **El menú no aparece**: vacíe la caché en **Parámetros avanzados > Rendimiento** y compruebe los permisos del perfil de empleado sobre las pestañas del módulo.

## Desinstalación

La desinstalación elimina las 5 tablas del módulo, su configuración y sus pestañas tras una confirmación. El historial se pierde definitivamente: expórtelo en CSV desde la pestaña Historial si quiere conservarlo.
