Introducción
El sistema de indexación en Magento 2 es fundamental para garantizar que los datos de tu tienda online, como precios, stock y categorías, se muestren de manera rápida y eficiente en el frontend. Sin embargo, es común encontrarse con errores donde los indexadores se quedan en estado Processing o Reindex Required de forma permanente, afectando la experiencia de compra de tus usuarios y el rendimiento general del e-commerce.
Causas del Error de Indexación en Magento 2
Existen diversos motivos por los cuales el proceso de indexación puede fallar o bloquearse:
- Procesos colgados en la base de datos debido a consultas largas o interrumpidas.
- Falta de memoria RAM o límites de ejecución de PHP (
memory_limitymax_execution_time) insuficientes. - Conflictos con módulos de terceros que alteran las tablas
mview. - Bloqueos en el almacenamiento en caché o en la cola de RabbitMQ si se utiliza procesamiento asíncrono.
Método 1: Solucionar el bloqueo mediante la Línea de Comandos (CLI)
La forma más directa y efectiva de resolver problemas de indexación persistentes es reiniciar los procesos a través de SSH utilizando la consola de Magento.
- Conéctate a tu servidor mediante SSH y navega hasta el directorio raíz de tu instalación de Magento:
cd /var/www/html/tu-tienda-magento - Verifica el estado actual de los indexadores ejecutando:
bin/magento indexer:status - Si observas indexadores bloqueados en estado
Processing, mata los procesos colgados o vacía las tablas de estado ejecutando el siguiente comando para invalidar los índices:bin/magento indexer:reset - A continuación, ejecuta el proceso de reindexación manual forzado:
bin/magento indexer:reindex
Método 2: Limpiar las tablas mview y reiniciar el modo de indexación
Si el método anterior no surte efecto y el sistema sigue arrojando errores, es probable que las vistas materializadas (mview) de Magento se hayan corrompido.
- Accede a tu gestor de base de datos (phpMyAdmin o consola MySQL).
- Revisa y vacía las tablas relacionadas con las vistas si es necesario, o cambia el modo de indexación a 'Salva por lotes' (Schedule) o 'Actualizar al guardar' (Save) ejecutando en la consola:
bin/magento indexer:set-mode schedule - Limpiar la caché de la aplicación para eliminar datos residuales corruptos:
bin/magento cache:cleanybin/magento cache:flush - Vuelve a cambiar al modo interactivo si lo prefieres ejecutando:
bin/magento indexer:set-mode realtimey repite la reindexación.