WordPress

Error 404 en páginas internas de WordPress: cómo solucionarlo

Captura de pantalla de un editor de código mostrando ajustes de WordPress y el archivo htaccess para solucionar errores 404

El error 404 en las páginas internas de WordPress suele aparecer tras modificar la estructura de los enlaces permanentes o al mover el sitio a un nuevo servidor. Significa que el servidor web no sabe interpretar las URLs amigables y no encuentra los archivos solicitados. La solución más probable consiste en vaciar las reglas de reescritura desde el panel de administración o actualizar manualmente el archivo .htaccess.

Qué significa el error

Cuando navegas por la página de inicio de tu web todo funciona correctamente, pero al hacer clic en cualquier artículo o categoría aparece un mensaje de error 404 indicando que la página no existe. Este problema afecta directamente a las páginas internas y suele manifestarse justo después de cambiar los ajustes de enlaces permanentes o tras restaurar una copia de seguridad. El núcleo de WordPress funciona, pero la comunicación entre el servidor web y la estructura de URLs se ha roto.

Causas más habituales

  • Modificación reciente de la estructura de enlaces permanentes en el panel de administración.
  • Falta de permisos de escritura en el archivo .htaccess del directorio raíz.
  • Módulo de reescritura de URLs (como mod_rewrite en Apache) desactivado en el servidor.
  • Problemas de configuración en archivos de configuración de Nginx si no se usa Apache.
  • Conflictos temporales con plugins de caché o seguridad que bloquean las reglas del servidor.

Antes de empezar

Atención: Antes de modificar archivos del servidor o tocar el archivo .htaccess, realiza una copia de seguridad completa de tu sitio web y de tu base de datos. Necesitarás acceso de administrador al panel de control de WordPress y acceso por FTP o al gestor de archivos de tu alojamiento web para realizar las modificaciones necesarias en el servidor.

Solución 1: Regenerar los enlaces permanentes desde el panel

  1. Inicia sesión en tu panel de administración de WordPress con una cuenta de administrador.
  2. Dirígete al menú lateral izquierdo y haz clic en Ajustes y luego en Enlaces permanentes.
  3. No modifiques ninguna opción; simplemente desplázate hasta el final de la página.
  4. Haz clic en el botón azul Guardar cambios.
  5. Comprueba una página interna en una pestaña de incógnito de tu navegador.

Este método funciona porque obliga a WordPress a sobrescribir y limpiar las reglas internas de enrutamiento y a regenerar el archivo .htaccess de forma automática en el servidor.

Solución 2: Editar y actualizar el archivo .htaccess manualmente

  1. Accede al panel de control de tu alojamiento o conéctate mediante un cliente FTP.
  2. Localiza la carpeta raíz de tu instalación de WordPress, habitualmente llamada public_html o www.
  3. Busca el archivo llamado .htaccess. Si no lo ves, activa la opción para mostrar archivos ocultos en tu gestor de archivos o cliente FTP.
  4. Haz clic derecho sobre el archivo .htaccess y selecciona editar o descárgalo a tu ordenador para modificarlo con un editor de texto plano.
  5. Reemplaza el contenido actual por el código estándar de WordPress que incluye las reglas de reescritura para Apache:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
  6. Guarda los cambios y sube el archivo de nuevo a la raíz del servidor manteniendo el nombre exacto.

Esta solución es eficaz porque restablece las reglas básicas que permiten a Apache redirigir todo el tráfico de las URLs amigables hacia el archivo principal index.php de WordPress.

Solución 3: Comprobar los permisos del archivo .htaccess

  1. Accede al gestor de archivos de tu proveedor de hosting o conéctate por FTP.
  2. Localiza el archivo .htaccess en la carpeta raíz de WordPress.
  3. Haz clic derecho sobre él y selecciona la opción de permisos de archivo o CHMOD.
  4. Asegúrate de que los valores numéricos de permisos estén establecidos en 644 o 664.
  5. Guarda los cambios y vuelve a comprobar si las páginas internas cargan correctamente.

Si los permisos son demasiado estrictos (como 444), WordPress no tiene capacidad para escribir en el archivo y actualizar las reglas cuando modificas los enlaces permanentes, lo que genera el error 404.

Solución 4: Verificar el módulo mod_rewrite en el servidor

  1. Contacta con el soporte técnico de tu alojamiento web si utilizas un servidor propio o VPS.
  2. Consulta si el módulo mod_rewrite de Apache se encuentra instalado y activado en el servidor web.
  3. Si usas un servidor Nginx, revisa el archivo de configuración del servidor para asegurarte de que incluye las reglas de reescritura compatibles con WordPress.
  4. Reinicia el servicio web del servidor tras aplicar cualquier cambio en la configuración global.

Sin el módulo de reescritura activo, el servidor web ignora por completo las instrucciones del archivo .htaccess y es incapaz de traducir las URLs limpias en peticiones válidas para WordPress.

Solución 5: Depurar conflictos con plugins de caché y seguridad

  1. Accede a la sección Plugins y luego a Plugins instalados en tu panel de administración.
  2. Desactiva temporalmente los complementos de caché, optimización o cortafuegos (firewall).
  3. Vuelve a la pantalla de Enlaces permanentes y haz clic en guardar cambios para regenerar las reglas.
  4. Prueba de nuevo una página interna. Si funciona, reactiva los plugins uno a uno para identificar cuál interfería con el archivo .htaccess.

Muchos plugins de seguridad bloquean la modificación del archivo .htaccess o añaden reglas personalizadas conflictivas que impiden el correcto direccionamiento de las peticiones HTTP.

Solución 6: Corregir directivas en la configuración de Nginx

  1. Accede al archivo de configuración de tu servidor Nginx (habitualmente ubicado en /etc/nginx/sites-available/tudominio).
  2. Asegúrate de incluir la directiva de reescritura dentro del bloque de servidor para WordPress:
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
  3. Guarda el archivo y comprueba la sintaxis ejecutando el comando sudo nginx -t en la terminal SSH.
  4. Reinicia Nginx con el comando sudo systemctl restart nginx.

A diferencia de Apache, Nginx no lee archivos .htaccess por defecto, por lo que estas reglas deben declararse directamente en el archivo de configuración global del servidor.

Cómo comprobar que se ha solucionado

Abre una ventana de navegación en modo incógnito para evitar problemas derivados de la caché del navegador. Entra en la página principal de tu sitio web y haz clic en tres o cuatro enlaces internos diferentes, como entradas del blog, páginas de contacto o categorías. Si todas cargan sin mostrar el código de error 404, el problema de enrutamiento se ha resuelto por completo. También puedes usar herramientas de inspección de red en el navegador para verificar que el código de estado HTTP devuelto es 200 OK.

Si nada de lo anterior funciona

Si has aplicado todas las soluciones y las páginas internas siguen dando error 404, revisa los archivos de registro de errores o error_log de tu servidor web en busca de fallos de sintaxis. También puedes revisar nuestra guía sobre cómo solucionar errores críticos si experimentas problemas adicionales: Error el sitio esta experimentando problemas tecnicos en WordPress. Si utilizas un servidor dedicado o VPS, contacta con tu proveedor de infraestructura para verificar la configuración global de Apache o Nginx.

Preguntas frecuentes

¿Por qué cambian los enlaces permanentes solos?

Los enlaces permanentes no cambian solos, pero algunos plugins de seguridad, actualizaciones del núcleo o migraciones de servidores pueden sobrescribir o corromper el archivo .htaccess de forma inesperada.

¿Pierdo posicionamiento SEO si mis páginas dan error 404?

Un error 404 temporal no afecta gravemente al SEO si se soluciona en pocas horas, pero si se prolonga durante días, los buscadores dejarán de indexar tus páginas internas.

¿Qué hago si no encuentro el archivo .htaccess?

Si no aparece en la carpeta raíz, créalo tú mismo con un editor de texto plano, añade el código estándar de WordPress y guárdalo exactamente con el nombre .htaccess.

¿Afecta este error a la administración de WordPress?

No, el panel de administración suele seguir funcionando con normalidad porque sus URLs no dependen del módulo de reescritura de la misma manera que las páginas públicas.

¿Puedo restaurar el archivo .htaccess desde una copia de seguridad?

Sí, si dispones de un respaldo reciente anterior al fallo, puedes restaurar únicamente el archivo .htaccess mediante FTP o el gestor de archivos para recuperar instantáneamente la estructura correcta de URLs.