El error 404 en las páginas de categorías de Magento 2 indica que el servidor no encuentra el recurso solicitado, generalmente debido a una desincronización en las rutas o índices de la base de datos. La solución más probable implica regenerar los índices y limpiar la caché del sistema para restablecer la comunicación correcta entre la URL y la entidad de la categoría.
Qué significa el error
El error 404 Not Found aparece cuando intentas acceder a una categoría de productos y el servidor responde que la página no existe. Esto ocurre específicamente en el frontend de la tienda. Afecta directamente a la experiencia de usuario y al posicionamiento SEO, ya que los clientes no pueden navegar por el catálogo. Es un problema común tras migraciones, actualizaciones de versión o cambios masivos en la estructura de categorías.
Causas más habituales
- Índices de Magento desactualizados o corruptos.
- Caché del sistema o de Varnish desactualizada.
- Configuración incorrecta de las URL Rewrites en la base de datos.
- Permisos de archivos o carpetas mal configurados tras una actualización.
- Categorías desactivadas o no asignadas correctamente al Store View.
Antes de empezar
Realiza siempre una copia de seguridad completa de tu base de datos y de los archivos del servidor antes de ejecutar cualquier comando. Necesitarás acceso SSH con privilegios de usuario para ejecutar los comandos de Magento CLI. Asegúrate de conocer tu versión de Magento 2, ya que las rutas de los comandos pueden variar ligeramente en versiones anteriores a la 2.4.x.
Solución 1: Reindexación completa
A menudo, el error 404 ocurre porque el índice de categorías no está sincronizado con la base de datos. Magento utiliza índices para optimizar las consultas; si estos fallan, las rutas no se resuelven.
- Accede a tu servidor vía SSH y dirígete a la raíz de tu instalación de Magento utilizando el comando correspondiente a tu entorno, por ejemplo:
cd /var/www/html/magento2 - Ejecuta el siguiente comando para comprobar el estado actual de los indexadores y detectar cuáles están pendientes:
bin/magento indexer:status - Ejecuta el comando para reindexar todo el sistema de forma completa:
bin/magento indexer:reindex - Limpia la caché inmediatamente después para asegurar que los cambios se propagan a la capa de presentación:
bin/magento cache:clean
Este proceso fuerza a Magento a reconstruir las tablas de búsqueda, lo que suele reparar los enlaces rotos de las categorías al actualizar las tablas catalog_category_product y sus relaciones asociadas.
Solución 2: Regeneración de URL Rewrites
Las URL Rewrites son las reglas que traducen una URL amigable (como /ropa/camisetas) a la ruta interna de Magento. Si estas entradas se eliminan o corrompen, el servidor devolverá un 404.
- Entra en el panel de administración de Magento con tus credenciales de superadministrador.
- Navega a Marketing > SEO & Search > URL Rewrites para comprobar si la regla de la categoría afectada aparece listada y con estado activo.
- Si utilizas un enfoque de base de datos, puedes regenerar las URLs usando un script o módulo de terceros, o bien guardar manualmente la categoría desde el panel de administración.
- Accede a Catálogo > Categorías, busca la categoría que da error, modifica cualquier campo menor (como añadir un espacio en la descripción) y pulsa en el botón 'Save'.
- Limpia los datos de la caché de configuración y URL Rewrites ejecutando:
bin/magento cache:clean config full_page
Al guardar la categoría, Magento ejecuta los eventos necesarios para recrear la entrada en la tabla url_rewrite, solventando el error de ruta y actualizando las redirecciones permanentes o temporales.
Solución 3: Verificación de Store View y estado de categoría
A veces, la categoría existe pero no está asociada correctamente al Store View actual o está deshabilitada a nivel de vista de tienda.
- Entra en Catálogo > Categorías desde el menú lateral del panel de administración.
- Selecciona la categoría exacta que muestra el error 404 en el árbol de navegación.
- Verifica en la parte superior que la vista de tienda seleccionada sea la correcta y que la opción 'Enable Category' esté marcada explícitamente como 'Yes'.
- Revisa la pestaña 'Search Engine Optimization' y asegúrate de que el campo 'URL Key' contenga valores válidos sin espacios ni caracteres especiales extraños.
- Comprueba la pestaña 'Search Engine Optimization' y valida que la redirección por cambios de clave URL no esté generando un bucle.
Al corregir la asignación de la vista de tienda, permites que Magento encuentre la categoría dentro del contexto comercial exacto que el usuario está visitando.
Solución 4: Limpieza de caché de Varnish o FPC
Si utilizas Varnish o Full Page Cache (FPC), el servidor puede estar sirviendo una versión antigua de la página, incluso si el problema ya se ha resuelto en la base de datos.
- Limpia la caché de Varnish ejecutando el comando de purga correspondiente en el servidor:
varnishadm ban req.url ~ / - Limpia la caché interna de Magento desde la línea de comandos de la aplicación:
bin/magento cache:flush - Reinicia el servicio de Varnish si persisten los problemas de persistencia en memoria:
systemctl restart varnish - Verifica el estado del servicio Nginx o Apache para confirmar que responde correctamente tras el reinicio de la caché:
systemctl status nginx
Esto elimina cualquier rastro de la página 404 almacenada en memoria RAM, obligando al servidor web a realizar una nueva consulta fresca a la base de datos MySQL.
Solución 5: Comprobación de permisos de archivos y carpetas
Un error común tras despliegues por Git o actualizaciones de módulos son los permisos incorrectos que impiden a Magento leer los controladores de rutas.
- Accede por SSH a la raíz de tu instalación de Magento.
- Aplica los permisos correctos a las carpetas var, generated, pub/static y pub/media con los siguientes comandos estándar:
find var generated pub/static pub/media app/etc -type f -exec chmod 660 {} + - Aplica permisos de ejecución correctos a los directorios:
find var generated pub/static pub/media app/etc -type d -exec chmod 2770 {} + - Asegúrate de que el propietario de los archivos sea el usuario del servidor web (por ejemplo, www-data):
chown -R www-data:www-data .
Esto soluciona bloqueos de lectura que impiden al intérprete PHP compilar las clases encargadas de renderizar las páginas de categorías.
Solución 6: Validación del archivo .htaccess o configuración de Nginx
Si las reglas de reescritura del servidor web no están bien configuradas, ninguna URL amigable funcionará y todas las categorías devolverán 404.
- Si usas Apache, asegúrate de que el módulo mod_rewrite esté activo ejecutando:
a2enmod rewrite - Revisa que el archivo
.htaccessesté presente en la raíz de Magento y contenga las directivas originales sin alteraciones de seguridad restrictivas. - Si usas Nginx, verifica que el archivo de configuración del host virtual incluya correctamente la directiva try_files:
try_files $uri $uri/ /index.php$is_args$args; - Reinicia el servidor web Apache para aplicar los cambios de módulos:
systemctl restart apache2
Una directiva try_files incorrecta impide que Magento reciba los parámetros de la URL, provocando que el enrutador interno falle al buscar la categoría solicitada.
Cómo comprobar que se ha solucionado
Accede a la página de la categoría desde un navegador en modo incógnito para evitar la caché local del navegador. Si la página carga correctamente y muestra el listado de productos, el problema está resuelto. Si el error persiste, revisa los logs de error de Magento situados en var/log/exception.log y var/log/system.log mediante el comando tail -n 50 var/log/exception.log. Si necesitas más ayuda con errores generales de navegación, consulta nuestra guía sobre Cómo Solucionar el Error 'Requested Page Not Found' en Magento 2 Paso a Paso.
Si nada de lo anterior funciona
Si tras los pasos anteriores sigues recibiendo el error 404, el problema podría estar en conflictos de módulos de terceros instalados vía Composer que sobrescriben el comportamiento del controlador Router de Magento. Revisa la lista de módulos activos ejecutando bin/magento module:status y desactiva temporalmente aquellos que afecten al catálogo. Revisa también si has instalado extensiones recientemente que modifiquen el enrutamiento. Si el problema persiste, es momento de analizar los logs del servidor web (Apache o Nginx) en busca de errores de permisos o denegaciones de acceso. Si el entorno es complejo, considera consultar la documentación técnica oficial de Adobe Commerce.
Preguntas frecuentes
¿Por qué el error 404 solo afecta a algunas categorías?
Generalmente ocurre porque los registros en la tabla url_rewrite de esas categorías específicas se han corrompido o eliminado, mientras que el resto de la base de datos permanece intacta. También puede deberse a que esas categorías fueron movidas o renombradas recientemente.
¿Es seguro borrar la tabla url_rewrite?
No directamente. Borrarla sin más dejará tu tienda sin navegación. Solo debe hacerse si tienes un plan de restauración y conoces el proceso de regeneración de rutas de Magento, ya que es una tabla crítica para el funcionamiento del frontend.
¿Pueden los permisos de archivos causar un 404?
Sí. Si el usuario del servidor web (como www-data) no tiene permisos de lectura sobre los archivos de Magento, el sistema no puede procesar la solicitud de la categoría y devuelve un error de acceso que el navegador interpreta como 404 o 403.
¿Debo ejecutar el comando de reindexación en horario de baja actividad?
Sí, es muy recomendable. La reindexación consume recursos significativos de CPU y base de datos, lo que puede ralentizar la tienda para los usuarios finales si se ejecuta durante las horas de mayor tráfico.
¿Cómo influye el archivo .htaccess en las URLs de Magento 2?
El archivo .htaccess contiene las reglas de reescritura que redirigen todas las peticiones hacia el archivo principal index.php de Magento. Si este archivo falta o tiene directivas bloqueadas, Apache no sabrá interpretar las URLs amigables de las categorías y devolverá un error 404.
¿Qué impacto tiene el error 404 en el SEO de mi tienda online?
Un error 404 en páginas de categorías interrumpe el rastreo de los bots de los motores de búsqueda como Googlebot, lo que puede provocar que esas URLs pierdan indexación y posicionamiento orgánico si el problema se prolonga en el tiempo.