Introducción al problema de indexación en Magento 2
Uno de los dolores de cabeza más comunes para los administradores de tiendas en línea basadas en Magento 2 es el fallo en el proceso de indexación. Cuando los índices se quedan en estado processing o invalid, los cambios en precios, stock y atributos no se reflejan correctamente en el frontend, afectando directamente las conversiones y la experiencia de usuario.
Causas principales del error de indexación en Magento 2
- Procesos colgados en la base de datos debido a consultas anteriores interrumpidas.
- Falta de memoria RAM o límite de tiempo de ejecución (
max_execution_time) excedido en PHP. - Conflictos entre módulos de terceros al intentar actualizar los mismos datos simultáneamente.
- Tablas de indexación corruptas en la base de datos MySQL.
Método 1: Solucionar índices bloqueados desde la línea de comandos (SSH)
- Accede a tu servidor mediante SSH utilizando tus credenciales de acceso.
- Navega hasta el directorio raíz de tu instalación de Magento 2 utilizando el comando:
cd /var/www/html/tu-tienda-magento - Verifica el estado actual de los indexadores ejecutando:
bin/magento indexer:status - Si observas indexadores bloqueados, limpia los estados pendientes ejecutando:
bin/magento indexer:reset - Finalmente, fuerza la reindexación completa de todos los datos escribiendo:
bin/magento indexer:reindex
Método 2: Cambiar el modo de indexación y optimizar PHP
- Si el problema persiste debido a la alta carga en el servidor, cambia el modo de indexación para que se ejecute por cron en lugar de en tiempo real:
bin/magento indexer:set-mode schedule - Abre el archivo de configuración de PHP (
php.ini) y asegúrate de aumentar los límites de recursos para evitar cortes durante procesos pesados:memory_limit = 2Gymax_execution_time = 1800. - Reinicia tu servicio web y PHP-FPM para aplicar los cambios (ejemplo para Apache y PHP 8.1):
sudo systemctl restart php8.1-fpm.