Todo lo que querrías saber antes de instalar.
Una mirada detallada a cómo funciona Verificador de Enlaces Rotos PrestaShop 8 y 9 — Enlaces Muertos e Imágenes Faltantes, por qué lo construimos así y la lógica detrás de las características anteriores.
Un enlace muerto cuesta dos veces
Cuesta primero en posicionamiento: Google sigue los enlaces de tus descripciones, y una descripción de producto que apunta a tres 404 envía una señal de contenido descuidado. Cuesta una segunda vez en conversión, cuando un cliente pulsa la guía de tallas desde una ficha de producto y cae en una página de error justo en el momento en que dudaba. El problema es que estos enlaces no se rompen el día en que los escribes. Se rompen seis meses después, cuando un socio rehace su web o se renombra una página CMS, y nadie se da cuenta.
Dos problemas distintos, dos métodos de detección
Un enlace muerto se detecta por petición HTTP: el módulo llama a la URL y lee el código de respuesta. Un archivo de imagen ausente no se detecta así. Cuando una imagen de producto está referenciada en la tabla image pero el archivo ha desaparecido de la carpeta img/p, la petición HTTP puede devolver perfectamente una página sustituta con un 200. Por eso el módulo lee directamente el sistema de archivos para cada imagen de producto, categoría, marca, proveedor y tienda, y para los archivos adjuntos. Es la única forma de encontrar las imágenes que se muestran como un recuadro vacío sin que nada aparezca en los registros.
Lo que el módulo lee en tu catálogo
Descripciones y descripciones cortas de productos, mensajes de disponibilidad, descripciones de categorías y de categorías CMS, contenido de páginas CMS, descripciones de marcas, proveedores y tiendas, y los bloques de enlaces del pie de página gestionados por ps_linklist. En cada uno de esos campos extrae los enlaces a href, las imágenes img src con sus variantes de carga diferida y sus srcset, además de las etiquetas source, video, audio, iframe, embed, object, link y script, y las imágenes de fondo declaradas en estilo inline. Los mailto, tel, anclajes sueltos y data URI se descartan de entrada, igual que los restos de Smarty o de shortcode que a veces sobreviven en una descripción copiada y pegada.
Cómo aguanta el análisis en un catálogo grande
El análisis se desarrolla en dos fases. La recolección recorre los contenidos y extrae las URL. La verificación las consulta. Cada fase avanza en tramos de unos segundos gestionados por AJAX desde el navegador, con un cursor guardado en base de datos después de cada tramo. Nada depende de max_execution_time, y cerrar la pestaña a mitad de camino no pierde el trabajo ya hecho. Dos optimizaciones hacen el resto: las URL se deduplican por huella durante el análisis, así que una URL presente 400 veces se comprueba una sola vez, y las URL locales que apuntan a un archivo estático presente en disco se validan leyendo el sistema de archivos, sin ninguna petición de red.
Del resultado a la corrección
Una tabla de resultados ordenada por gravedad lista cada URL con su estado, su código HTTP, su mensaje de error, su destino de redirección cuando lo hay y su número de usos. Al abrir una fila aparece la lista de ubicaciones: tipo de fuente, nombre del elemento, campo afectado, idioma y texto de anclaje. Cada ubicación tiene su botón de edición que abre la ficha de producto, la categoría o la página CMS en el sitio correcto. También puedes volver a comprobar una URL aislada tras corregirla, sin relanzar el análisis completo.
Qué significan los estados
El estado correcto cubre las respuestas 2xx y los archivos locales presentes en disco. Una advertencia cubre las redirecciones, los códigos 401 y 403, y los 429 de limitación de tasa: el recurso existe, pero algo merece un vistazo. El estado muerto cubre los 404, 410, el resto de 4xx, los 5xx, los tiempos de espera agotados, los errores DNS y las conexiones rechazadas. Los estados ignorado y no comprobado corresponden a tus exclusiones y a las categorías de URL que has desactivado en los ajustes.
Excluir lo que no debe aparecer
Muchos dominios responden 403 a los robots sin que el enlace esté roto, sobre todo detrás de un cortafuegos de aplicación. El módulo ya los clasifica como advertencia y no como enlace muerto, pero puedes ir más lejos con una lista de exclusiones: un patrón por línea, en texto simple para una coincidencia por subcadena, con comodines, o como expresión regular con un prefijo. Una URL también puede pasar a la lista de ignorados con un clic desde la tabla, lo que la mantiene fuera de los resultados de los análisis siguientes.
Instalación y desinstalación
Sin dependencias externas, sin Composer, sin modificar el tema. Sube el ZIP desde el gestor de módulos e instálalo: se crean cuatro tablas y aparece una pestaña en Catálogo. El módulo no añade ningún hook de front-office y no toca la visualización de la tienda, solo trabaja desde el back-office. Al desinstalar se eliminan las cuatro tablas, la pestaña y la configuración.
No hay valoraciones aún.