Saltar al contenido principal
WordPress

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

Tutorial paso a paso para arreglar el error 404 en publicaciones de WordPress. 5 soluciones probadas, de la más sencilla a la técnica.

Equipo Moshipp21 de marzo de 20268 min de lectura
Abstracción visual representando enlaces rotos y contenido no encontrado
Foto: Unsplash

Tu página de inicio funciona, pero cuando alguien entra a un post o página interna ve un frío “404 Not Found”. Este es uno de los errores más comunes tras migrar a un nuevo hosting, cambiar configuraciones, o por causas aparentemente inexplicables.

En esta guía te mostramos las 5 causas principales y cómo resolverlas paso a paso. En la mayoría de casos el problema se arregla en menos de 5 minutos.

¿Qué significa “Error 404 Not Found” en WordPress?

Un error 404 indica que el servidor no encuentra el recurso solicitado. En WordPress suele pasar porque:

  1. La estructura de enlaces permanentes (permalinks) está rota.
  2. El archivo .htaccess no tiene las reglas correctas.
  3. El mod_rewrite de Apache está desactivado.
  4. Migraste el sitio y no se copiaron bien ciertos archivos.
  5. Un plugin de caché o SEO bloquea rutas.

La diferencia con otros errores: la home funciona pero las páginas internas no. Si todo está caído, es otro problema (lee nuestra guía de error 500 o pantalla blanca).

Test rápido

Entra a tusitio.com (home) y luego a tusitio.com/?page_id=2. Si la home funciona y la URL con ?page_id= también, pero las URLs bonitas (tusitio.com/contacto) dan 404, es casi seguro problema de permalinks.

La solución más sencilla y la que funciona en el 70% de los casos.

Pasos

  1. Entra a wp-admin → Ajustes → Enlaces permanentes.
  2. NO cambies nada.
  3. Pulsa “Guardar cambios”.

WordPress regenera automáticamente el archivo .htaccess con las reglas correctas. Recarga tu sitio y prueba un post.

¿Qué estructura elegir?

La estructura “Nombre de la entrada” (/%postname%/) es la mejor para SEO. Si vienes usando esa, solo guarda de nuevo para regenerar.

Solución 2: Edita manualmente .htaccess

Si el guardar permalinks no funciona, el archivo .htaccess probablemente está corrupto o tiene permisos incorrectos.

Paso 1: Conéctate por FTP o File Manager

Ve a la raíz de tu WordPress (donde está wp-config.php).

Paso 2: Haz backup del .htaccess actual

Descárgalo o renómbralo a .htaccess_old.

Paso 3: Crea un .htaccess nuevo

Crea un archivo llamado .htaccess con este contenido:

# 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

Paso 4: Permisos correctos

Asegúrate de que los permisos sean 644. En FileZilla: clic derecho → Permisos de archivo → 644.

Paso 5: Prueba

Recarga un post interno. Si carga bien, el problema era el .htaccess.

Solución 3: Verifica si mod_rewrite está activo

Para que los permalinks bonitos funcionen, Apache necesita el módulo mod_rewrite. Si está desactivado, todas las URLs amigables dan 404.

Cómo verificar

Crea un archivo llamado info.php en la raíz con este contenido:

<?php phpinfo(); ?>

Accede a tusitio.com/info.php y busca mod_rewrite (Ctrl+F). Debe aparecer en la lista de “Loaded Modules”.

Borra info.php después

Este archivo muestra información sensible del servidor. Bórralo inmediatamente después de verificar.

Si mod_rewrite NO aparece

  • Hosting compartido: contacta al soporte para que lo activen.
  • VPS: actívalo con sudo a2enmod rewrite && sudo systemctl restart apache2.

El mod_rewrite está activo pero algo bloquea su uso. Verifica que en la configuración de Apache para tu sitio (apache2.conf o equivalente) exista:

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

Si AllowOverride está en None, los .htaccess se ignoran completamente.

Solución 4: Problema en Nginx (no Apache)

Si tu hosting usa Nginx (no Apache), el archivo .htaccess no sirve. Nginx requiere configuración directa en el archivo del sitio.

Ejemplo de configuración Nginx para WordPress

server {
    listen 80;
    server_name tusitio.com www.tusitio.com;
    root /var/www/tusitio;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

La línea clave es try_files $uri $uri/ /index.php?$args, que redirige las URLs al index.php de WordPress.

Cómo saber si usas Nginx

En la terminal (SSH):

sudo nginx -v

O mira los headers HTTP de tu sitio en las herramientas de desarrollador del navegador: busca Server: nginx vs Server: Apache.

Solución 5: Verifica si hay plugin o cache interfiriendo

Algunos plugins generan reglas de redirección que entran en conflicto con WordPress.

Plugins sospechosos

  • Plugins de caché (WP Rocket, W3 Total Cache, WP Super Cache).
  • Plugins SEO (Yoast SEO, Rank Math, All in One SEO).
  • Plugins de redirecciones (Redirection, 301 Redirects).
  • Plugins de seguridad (Wordfence, iThemes Security).
  • Plugins de multilenguaje (WPML, Polylang, TranslatePress).

Cómo diagnosticar

  1. Desactiva todos los plugins (por FTP renombrando /wp-content/plugins/).
  2. Recarga un post: si funciona, reactivar uno a uno desde wp-admin.
  3. El que cause 404 es el responsable.

Qué hacer con el culpable

  • Actualízalo a la última versión.
  • Revisa su configuración de redirecciones.
  • Si son reglas mal escritas en “Redirection” (plugin popular), bórralas.
  • Si el plugin está desactualizado o roto, busca alternativa.

Problema común post-migración

Si el error 404 apareció tras migrar a otro hosting, las causas típicas son:

  • El nuevo servidor no tiene mod_rewrite activado.
  • El .htaccess no se copió en la migración.
  • Nginx en lugar de Apache sin configuración equivalente.
  • URL del sitio mal actualizada en la BD.

Verifica la URL del sitio

Ve a Ajustes → General y asegúrate de que:

  • Dirección de WordPress (URL): https://tusitio.com.
  • Dirección del sitio (URL): https://tusitio.com.

Ambos deben ser iguales, con https y sin barra final.

Si ves http:// aunque tengas SSL, o dirección con la IP del servidor antiguo, corrige y prueba.

Si tuviste problemas complejos tras migrar, lee nuestra guía de cómo migrar WordPress a otro hosting.

Solución avanzada: debug y logs

Si nada funciona, activa el modo debug:

// En wp-config.php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Luego revisa:

  • /wp-content/debug.log (errores PHP).
  • Logs del servidor (error_log, access_log).

A veces revelan que el servidor está buscando un archivo en la ruta equivocada, lo que te orienta al fix.

¿Cómo evitar el error 404 en el futuro?

Prevención del error 404 en WordPress
MedidaBeneficio
Mantener WordPress actualizadoCompatibilidad con permalinks modernos
Backup antes de migrarPuedes restaurar .htaccess si se pierde
Probar permalinks tras cambios grandesDetectas problemas temprano
Hosting con mod_rewrite activoInfraestructura base correcta
Plugin RedirectionGestionas cambios de URL sin perder SEO
Sitemap actualizado en GSCGoogle re-rastrea URLs nuevas rápidamente

404 legítimos: cuando la URL realmente no existe

Ojo: a veces el 404 es correcto. Si alguien entra a tusitio.com/url-inexistente, debe recibir 404. El problema es cuando URLs válidas (posts y páginas que existen) dan 404.

Cómo diferenciar

  • 404 en todos los posts → problema técnico (las soluciones de arriba).
  • 404 en URLs específicas → probablemente cambiaron de slug.
  • 404 en URLs que nunca existieron → es correcto, no requiere acción.

Si borraste un post o cambiaste su slug y quieres preservar SEO, usa el plugin Redirection para crear un 301 de la URL vieja a la nueva.

Preguntas frecuentes

¿Por qué mi home funciona pero los posts dan 404?

Porque la home usa index.php directamente, mientras los posts usan URLs reescritas por mod_rewrite y .htaccess. Si esas reglas están rotas, solo las URLs amigables fallan. La solución casi siempre es regenerar permalinks desde Ajustes → Enlaces permanentes.

¿El error 404 afecta mi SEO?

Sí, si URLs previamente indexadas por Google empiezan a dar 404. Google las desindexa en pocos días y pierdes ranking. Por eso resolver el 404 rápido es crítico. Si cambias URLs intencionalmente, implementa redirects 301.

¿Cuántos 404 son 'normales' en un sitio?

Algunos son inevitables: links externos mal escritos, bots probando rutas comunes, URLs viejas de la era WordPress anterior. En Google Search Console verás estos reportes. Solo preocúpate de 404 en URLs que deberían existir.

¿Puedo personalizar mi página 404?

Sí. Tu tema de WordPress debería tener un archivo 404.php. Puedes editarlo (o copiarlo a tu child theme) para agregar un mensaje amigable, sugerir posts populares, buscador, etc. Una buena página 404 mejora UX y retiene visitantes.

¿Nginx también usa mod_rewrite?

No. Nginx tiene su propio sistema de reescritura (try_files, rewrite), diferente al de Apache. Si tu hosting usa Nginx y tienes 404 en posts, verifica la configuración del bloque 'location /' en el archivo del sitio. En dudas, contacta al hosting.

¿Por qué aparece tras actualizar WordPress?

Algunas actualizaciones modifican cómo WordPress interpreta URLs. Si tu .htaccess fue editado manualmente antes, puede entrar en conflicto. Regenera permalinks (Ajustes → Enlaces permanentes → Guardar) tras cada actualización mayor.

Conclusión

El error 404 en WordPress es casi siempre cuestión de minutos. La secuencia mágica:

  1. Guardar permalinks de nuevo.
  2. Regenerar .htaccess.
  3. Verificar mod_rewrite / configuración Nginx.
  4. Descartar plugins.

Si tienes errores 404 recurrentes tras cambios, es buen momento de auditar tu hosting. Un Cloud WordPress con configuración óptima elimina de raíz estos problemas.

Sigue aprendiendo

Migración sin complicaciones

¿Migrar desde otro proveedor de hosting?

¿Estás cansado de la falta de rapidez y seguridad en tu sitio web? ¡Migra a Moshipp y obtén un servicio de hosting de calidad superior!

Más de 10,000 sitios web migrados con éxito