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:
- La estructura de enlaces permanentes (permalinks) está rota.
- El archivo
.htaccessno tiene las reglas correctas. - El mod_rewrite de Apache está desactivado.
- Migraste el sitio y no se copiaron bien ciertos archivos.
- 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.
Solución 1: Regenera los permalinks
La solución más sencilla y la que funciona en el 70% de los casos.
Pasos
- Entra a wp-admin → Ajustes → Enlaces permanentes.
- NO cambies nada.
- 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.
Si aparece pero los permalinks siguen dando 404
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
- Desactiva todos los plugins (por FTP renombrando
/wp-content/plugins/). - Recarga un post: si funciona, reactivar uno a uno desde wp-admin.
- 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
.htaccessno 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?
| Medida | Beneficio |
|---|---|
| Mantener WordPress actualizado | Compatibilidad con permalinks modernos |
| Backup antes de migrar | Puedes restaurar .htaccess si se pierde |
| Probar permalinks tras cambios grandes | Detectas problemas temprano |
| Hosting con mod_rewrite activo | Infraestructura base correcta |
| Plugin Redirection | Gestionas cambios de URL sin perder SEO |
| Sitemap actualizado en GSC | Google 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:
- Guardar permalinks de nuevo.
- Regenerar
.htaccess. - Verificar mod_rewrite / configuración Nginx.
- 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

Cómo migrar WordPress a otro hosting: guía 2026
Aprende a migrar tu sitio WordPress a otro hosting paso a paso sin perder datos ni SEO. Métodos con plugin, manual y migración asistida.
Leer más
Error 500 Internal Server Error en WordPress: guía para solucionarlo
Aprende a resolver el Error 500 Internal Server Error en WordPress. 6 soluciones ordenadas paso a paso, de la más sencilla a la más técnica.
Leer más
Error de conexión a base de datos WordPress: cómo solucionarlo
Tutorial paso a paso para resolver el error 'Error establishing a database connection' en WordPress. 5 soluciones ordenadas de fácil a técnica.
Leer más
