Error 404 en WordPress

El error 404 en WordPress es uno de los más frecuentes y también uno de los más confusos, porque puede aparecer en páginas que existen perfectamente en la base de datos pero que el servidor no encuentra. A diferencia del error 500 que indica un fallo interno, o del error 503 que indica sobrecarga, el 404 significa específicamente que el servidor no puede encontrar el recurso solicitado en esa URL.

En esta guía te explico todas las causas posibles, ordenadas de más a menos frecuente, y cómo resolver cada una.

Qué significa exactamente el error 404 en WordPress

HTTP 404 significa Not Found — el servidor respondió correctamente pero no encontró ningún contenido en esa URL. El servidor web está funcionando, WordPress está cargando, pero la URL solicitada no coincide con ningún recurso conocido.

Es importante distinguir dos tipos de 404 en WordPress:

404 real: la página genuinamente no existe — fue eliminada, nunca se creó, o la URL está mal escrita.

404 falso: la página existe en la base de datos de WordPress pero WordPress no puede encontrarla porque hay un problema con los permalinks, el .htaccess o la configuración del servidor. Este es el caso más habitual y el más frustrante, porque ves la entrada en el admin pero al intentar verla obtienes 404.

Causas más frecuentes del error 404 en WordPress

1. Estructura de permalinks rota (la causa más habitual)

WordPress usa URLs «amigables» como tudominio.com/mi-articulo/ en lugar de tudominio.com/?p=123. Para que esto funcione, el servidor necesita que el archivo .htaccess tenga las reglas de reescritura correctas de WordPress.

Si el .htaccess está corrupto, vacío, ausente o con reglas incorrectas, WordPress no puede traducir las URLs amigables a los identificadores internos y devuelve un 404 para todo el contenido excepto la portada.

Señales de que es este problema:

  • La portada carga bien pero todas las páginas internas dan 404
  • El panel de administración funciona pero las entradas y páginas no cargan
  • El 404 apareció tras una migración, cambio de hosting o restauración de backup

Solución: regenerar los permalinks desde WordPress sin tocar ningún archivo:

  1. Accede al panel de administración de WordPress
  2. Ve a Ajustes → Enlaces permanentes
  3. Sin cambiar nada, haz clic en Guardar cambios

Este proceso regenera automáticamente el .htaccess con las reglas correctas. En la mayoría de casos resuelve el problema en segundos.

Si después de guardar el problema persiste, verifica que el archivo .htaccess se ha actualizado. Desde el gestor de archivos de cPanel o por FTP, abre /public_html/.htaccess y comprueba que contiene algo similar a esto:

apache

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Si el archivo está vacío o no contiene estas líneas, pégalas manualmente.

2. Módulo mod_rewrite desactivado en el servidor

Las reglas del .htaccess de WordPress requieren que el módulo mod_rewrite esté activo en Apache (o el equivalente en LiteSpeed). Si está desactivado, WordPress no puede reescribir las URLs y todas las páginas internas dan 404.

En hosting compartido con cPanel este módulo siempre está activo. En un VPS con Apache que configuras tú mismo, puede estar desactivado:

bash

# Activar mod_rewrite en Ubuntu con Apache
sudo a2enmod rewrite
sudo systemctl restart apache2

También necesitas que la directiva AllowOverride esté configurada como All en el virtualhost de Apache para que el .htaccess tenga efecto:

apache

<Directory /var/www/html>
    AllowOverride All
</Directory>

3. WordPress instalado en un subdirectorio

Si WordPress está instalado en un subdirectorio (tudominio.com/wordpress/) pero configurado para servirse desde el dominio raíz (tudominio.com), la configuración de permalinks puede romperse.

En Ajustes → General, las URLs deben estar configuradas correctamente:

  • Dirección de WordPress (URL): https://tudominio.com/wordpress (donde están los archivos)
  • Dirección del sitio (URL): https://tudominio.com (la URL pública)

Si ambas apuntan al mismo lugar o hay inconsistencias, los permalinks fallan. El .htaccess en la raíz del dominio debe tener reglas específicas para esta configuración:

apache

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteRule ^(.*)$ /wordpress/$1 [L]

4. Migración de hosting o cambio de dominio sin actualizar URLs

Tras migrar WordPress a un nuevo servidor o cambiar el dominio, las URLs guardadas en la base de datos siguen apuntando al dominio anterior. Esto provoca 404 en contenido específico (imágenes, enlaces internos) y a veces en páginas enteras.

Cómo verificarlo:
Accede a phpMyAdmin desde cPanel → abre la base de datos de WordPress → tabla wp_options → busca los registros siteurl y home. Si contienen el dominio antiguo, ahí está el problema.

Cómo solucionarlo:

Opción A — Desde phpMyAdmin:

sql

UPDATE wp_options SET option_value = 'https://tudominio-nuevo.com' 
WHERE option_name = 'siteurl';

UPDATE wp_options SET option_value = 'https://tudominio-nuevo.com' 
WHERE option_name = 'home';

Opción B — Con el plugin Better Search Replace:
Busca https://dominio-antiguo.com y reemplaza por https://dominio-nuevo.com en toda la base de datos. Es la opción más segura porque maneja correctamente los datos serializados.

Opción C — Con WP-CLI desde SSH:

bash

wp search-replace 'https://dominio-antiguo.com' 'https://dominio-nuevo.com' --all-tables

El artículo sobre cómo migrar tu web a BlumHost cubre el proceso completo de migración para evitar estos problemas.

5. Plugin o tema que interfiere con los permalinks

Algunos plugins modifican las reglas de reescritura de WordPress y pueden crear conflictos que resultan en 404. Los más propensos a esto son:

  • Plugins de SEO (Yoast, RankMath) que modifican las URLs
  • Plugins de membresía y acceso restringido
  • Plugins de multilenguaje (WPML, Polylang)
  • Plugins de redirecciones
  • Temas que registran custom post types o taxonomías con slugs conflictivos

Cómo diagnosticarlo:

  1. Desactiva todos los plugins temporalmente (renombrando la carpeta plugins desde FTP)
  2. Regenera los permalinks en Ajustes → Enlaces permanentes
  3. Si el 404 desaparece, reactiva los plugins uno a uno hasta encontrar el culpable
  4. Cambia el plugin problemático o busca una configuración compatible

6. Custom Post Types o Taxonomías sin flush de rewrite rules

Si eres desarrollador o usas un tema que registra Custom Post Types (CPT) o taxonomías personalizadas, WordPress necesita actualizar sus reglas de reescritura cuando se añaden. Si esto no ocurre, las URLs de esos CPT dan 404.

Solución: simplemente ve a Ajustes → Enlaces permanentes y guarda (sin cambiar nada). Esto fuerza el flush de las reglas de reescritura.

En código PHP, puedes forzarlo explícitamente:

php

flush_rewrite_rules();

Aunque en producción es mejor hacer esto solo cuando sea necesario (al activar/desactivar plugins o temas) porque es una operación costosa.

7. Página eliminada sin redirección

Si eliminaste una entrada o página que tenía tráfico o backlinks, las visitas a esa URL obtendrán un 404 real. Google lo registrará y con el tiempo puede afectar al crawl budget y al posicionamiento de las páginas relacionadas.

La solución correcta no es restaurar la página sino configurar una redirección 301 hacia el contenido más relevante:

El plugin Redirection (gratuito) es el más usado para gestionar estas redirecciones. Desde Herramientas → Redirection, añade una regla:

  • URL de origen: /url-de-la-pagina-eliminada
  • URL de destino: /url-de-contenido-relacionado
  • Tipo: 301 (permanente)

Alternativamente, puedes añadirlo directamente al .htaccess:

apache

Redirect 301 /url-antigua https://tudominio.com/url-nueva

8. Problema con las URL de adjuntos (attachments)

WordPress crea páginas de adjunto para cada imagen y archivo que subes. Si el tema no tiene plantilla para estas páginas o hay conflictos, pueden dar 404.

Una solución habitual es redirigir automáticamente las páginas de adjunto al archivo directamente. Añade esto al functions.php de tu tema hijo:

php

function redirigir_attachments() {
    if (is_attachment()) {
        global $post;
        if ($post && $post->post_parent) {
            wp_redirect(get_permalink($post->post_parent), 301);
        } else {
            wp_redirect(home_url(), 301);
        }
        exit;
    }
}
add_action('template_redirect', 'redirigir_attachments');

O activa la opción equivalente en tu plugin de SEO — tanto Yoast como RankMath tienen esta opción disponible en su configuración.

9. Problema con el archivo wp-config.php tras una migración

Después de migrar WordPress, si el wp-config.php tiene la constante WP_HOME o WP_SITEURL definidas con el dominio antiguo, sobrescriben los valores de la base de datos:

php

// Si tienes esto en wp-config.php con el dominio antiguo → 404
define('WP_HOME', 'https://dominio-antiguo.com');
define('WP_SITEURL', 'https://dominio-antiguo.com');

Actualiza estas constantes con el nuevo dominio o elimínalas si prefieres gestionarlo desde la base de datos.

Cómo encontrar todos los 404 de tu web

Saber qué URLs dan 404 en tu web es importante tanto para SEO como para experiencia de usuario.

Desde Google Search Console

En Search Console → IndexaciónPáginas → filtra por «No encontrada (404)». Verás todas las URLs que Google ha intentado rastrear y ha recibido un 404.

Desde los logs de acceso de cPanel

Como se explica en el artículo sobre logs de cPanel, puedes filtrar el access log para encontrar todas las peticiones que devuelven 404:

bash

grep " 404 " ~/logs/tudominio.com-access_log | awk '{print $7}' | sort | uniq -c | sort -rn | head -30

Este comando muestra las 30 URLs con más errores 404, ordenadas por frecuencia.

Con el plugin Redirection

El plugin Redirection tiene un módulo de registro de 404 que captura en tiempo real todas las URLs que dan error en tu web. Desde Herramientas → Redirection → Registros → 404s puedes ver el histórico y crear redirecciones directamente desde esa pantalla.

Cómo afectan los 404 al SEO

Un 404 puntual en una URL sin importancia no tiene impacto significativo. Pero los 404 masivos o en URLs con backlinks sí afectan:

Pérdida de link juice: si páginas externas enlazan a una URL que da 404, ese enlace no transfiere autoridad a ninguna página de tu dominio. Con una redirección 301 al contenido relevante, recuperas parte de ese valor.

Crawl budget: si Google encuentra muchos 404 en tu web, puede reducir la frecuencia con la que rastrea el resto de páginas, lo que ralentiza la indexación de contenido nuevo.

Experiencia de usuario: los usuarios que llegan a un 404 desde buscadores o redes sociales abandonan la web. Esto aumenta la tasa de rebote y puede afectar indirectamente al posicionamiento.

La conexión entre velocidad, errores y SEO está explicada en profundidad en el artículo sobre cómo afecta el hosting al posicionamiento web.

Personalizar la página 404 de WordPress

Una página 404 bien diseñada retiene al usuario ofreciéndole alternativas en lugar de simplemente mostrar un mensaje de error. La mayoría de temas de WordPress incluyen una plantilla 404.php.

Para personalizar la tuya, crea o edita el archivo 404.php en tu tema hijo (wp-content/themes/tu-tema-hijo/404.php). Incluye:

  • Un mensaje claro que explica que la página no existe
  • Un buscador interno
  • Enlace a la portada
  • Categorías o entradas recientes
  • CTA principal de tu negocio

Desde el punto de vista técnico, asegúrate de que WordPress devuelve el código HTTP 404 correcto — no un 200. Algunos temas mal desarrollados sirven la página 404 con código HTTP 200, lo que confunde a Google. Verifica con:

bash

curl -o /dev/null -s -w "%{http_code}" https://tudominio.com/url-que-no-existe

Debe devolver 404, no 200.

Checklist de diagnóstico rápido para error 404 en WordPress

Si tu web da 404 y no sabes por qué, sigue este orden:

  • Regenerar permalinks en Ajustes → Enlaces permanentes → Guardar
  • Verificar que el .htaccess existe y tiene las reglas de WordPress
  • Comprobar siteurl y home en la tabla wp_options de la base de datos
  • Revisar si hay constantes WP_HOME o WP_SITEURL en el wp-config.php
  • Desactivar plugins temporalmente para identificar conflictos
  • Verificar que mod_rewrite está activo (en VPS con Apache propio)
  • Revisar el error log en cPanel → Métricas → Errores
  • Comprobar que no hay redirecciones en bucle en el .htaccess

Para revisar el error log, el artículo sobre logs de cPanel explica dónde encontrarlos y cómo interpretarlos. Si el 404 apareció justo después de una actualización de WordPress o de un plugin, el artículo sobre pantalla en blanco de WordPress tiene los pasos para aislar el problema.

👉 Hosting WordPress en España


Preguntas frecuentes

¿Por qué mi portada carga bien pero todas las páginas internas dan 404?
Es casi siempre un problema de permalinks o .htaccess. Ve a Ajustes → Enlaces permanentes y guarda sin cambiar nada. Si no se resuelve, verifica que el .htaccess contiene las reglas de WordPress.

¿El error 404 puede aparecer solo en algunas páginas y no en otras?
Sí. Si solo afecta a un tipo de contenido (entradas pero no páginas, o un custom post type específico), el problema suele ser un plugin que registra ese tipo de contenido y no ha hecho flush de las rewrite rules.

¿Cómo sé si el 404 es real o falso?
Un 404 falso ocurre en páginas que existen en el admin de WordPress pero no cargan en el frontend. Entra al admin, busca la entrada o página y verifica que está publicada. Si existe y da 404 en el frontend, es un problema de permalinks o configuración.

¿Debo crear redirecciones para todos los 404?
Solo para los que importan: páginas con tráfico, páginas con backlinks externos o páginas que los usuarios buscan activamente. Los 404 de URLs aleatorias generadas por bots o scanners de seguridad no necesitan redirección.

¿Puede el hosting causar errores 404 en WordPress?
Indirectamente sí. Si el servidor no tiene mod_rewrite activo o la configuración no permite que el .htaccess funcione, WordPress no puede procesar las URLs amigables. En hosting compartido con cPanel esto raramente es el problema. En VPS mal configurados es más frecuente.

¿El error 404 afecta al SEO?
Un 404 puntual no tiene impacto significativo. Los 404 masivos, especialmente en páginas con backlinks o con historial de tráfico, sí pueden afectar al crawl budget y a la autoridad del dominio. Configura redirecciones 301 para las URLs importantes que hayan cambiado o desaparecido.

Miguel Taboada

Ingeniero en Telecomunicaciones e Informática. Creé BlumHost para ofrecer un hosting distinto a los demás, que ofrezca la mejor atención al cliente, al menor precio y con la mejor calidad.

Ver todas las entradas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *