Cómo arreglar el Error 404 en WordPress tras migrar de servidor
Artículo actualizado en 2026.
Después de migrar WordPress a otro servidor lo más habitual es que las URLs de las entradas y páginas devuelvan un Error 404 Not Found mientras que la página de inicio sigue funcionando. Esto ocurre casi siempre por un problema de reescritura de URLs.
Por qué aparece el error 404 tras migrar WordPress
Cuando cambias de hosting, los enlaces permanentes (permalinks) dejan de funcionar porque el servidor nuevo no ha leído todavía las reglas de reescritura. Tanto Apache como Nginx necesitan que se les indique cómo gestionar las URLs amigables de WordPress.
1. Regenera los enlaces permanentes (el método más rápido)
Accede al panel de administración de WordPress. Ve a Ajustes > Enlaces permanentes y, sin cambiar nada, pulsa el botón Guardar cambios que está al final de la página. Esta acción obliga a WordPress a regenerar el archivo .htaccess o a recargar las reglas en Nginx.
En la mayoría de casos este simple paso soluciona el problema. Si sigues viendo 404, sigue con los siguientes puntos.
2. Revisa y sustituye el archivo .htaccess (Apache)
Conéctate por FTP o por el gestor de archivos de tu hosting y localiza el archivo .htaccess en la raíz de WordPress. Renómbralo a .htaccess_old para hacer copia de seguridad y crea uno nuevo con el siguiente contenido:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Guarda el archivo con codificación UTF-8 sin BOM. Asegúrate de que el archivo se llama exactamente .htaccess (con el punto delante).
Permisos correctos del .htaccess
El archivo debe tener permisos 644. Si no estás seguro, cámbialos desde el cliente FTP.
3. Activa mod_rewrite y AllowOverride en Apache
En servidores gestionados esto suele estar activado, pero en VPS o servidores dedicados puede que necesites habilitarlo. En el virtual host de Apache añade o verifica estas líneas:
<Directory /var/www/tudominio.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>
</Directory>
Después reinicia Apache con sudo systemctl restart apache2 o sudo service httpd restart según tu distribución.
4. Configuración correcta para Nginx
Si tu nuevo servidor usa Nginx la configuración es distinta. En el bloque server {} debes tener algo parecido a esto:
server {
server_name tudominio.com www.tudominio.com;
root /var/www/tudominio.com;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
La directiva try_files $uri $uri/ /index.php?$args; es la que maneja las URLs amigables. Tras modificar el archivo de configuración recarga Nginx con sudo nginx -s reload.
5. Verifica la URL del sitio en la base de datos
A veces la migración no actualiza correctamente las URLs. Accede a la base de datos (phpMyAdmin o similar) y revisa la tabla wp_options. Busca las opciones home y siteurl. Deben apuntar al dominio definitivo sin barra final.
También puedes usar la consulta SQL para cambiarlas si fuera necesario (cambia tudominio.com por tu dominio real):
UPDATE wp_options SET option_value = 'https://tudominio.com' WHERE option_name = 'home' OR option_name = 'siteurl';
6. Limpia toda la caché
Después de cada cambio es imprescindible vaciar todas las cachés:
- Caché de plugins (WP Rocket, LiteSpeed Cache, WP Super Cache…)
- Caché de objeto (Redis o Memcached si usas alguno)
- Caché del hosting (muchos incluyen caché a nivel de servidor)
- Caché del navegador (Ctrl + Shift + R o modo incógnito)
7. Otras causas menos frecuentes
Si nada de lo anterior funciona, revisa:
- Que el archivo index.php de la raíz esté intacto.
- Que no haya plugins de seguridad o firewall que estén bloqueando las reglas de reescritura.
- Que la migración haya copiado todos los archivos (a veces se olvida la carpeta wp-content).
- Que el .htaccess no tenga reglas de otros CMS o configuraciones antiguas.
Orden recomendado para solucionar el 404
- Regenerar enlaces permanentes desde Ajustes.
- Comprobar que el .htaccess (o configuración Nginx) es correcto.
- Limpiar todas las cachés.
- Verificar URL del sitio y home en wp_options.
- Revisar permisos de archivos y carpetas (755 en carpetas, 644 en archivos).
En la mayoría de migraciones a hosting gestionado de Zaragoza o Aragón (como los que usan Apache o Nginx con LiteSpeed), con los pasos 1, 2 y 6 se soluciona en menos de 5 minutos.
Una vez corregido el error 404, comprueba que las imágenes y los enlaces internos también funcionen. Si usas un plugin de migración como All-in-One WP Migration o Duplicator, asegúrate de haber ejecutado el search & replace correctamente.
Consejo final desde ZaragozaSource
Antes de migrar cualquier web WordPress haz siempre copia de seguridad completa (archivos + base de datos). Y después de la migración prueba siempre las URLs de una entrada y de una página estática. Así evitarás sorpresas cuando la web ya esté en producción.
Preguntas frecuentes
¿Por qué solo falla en las entradas y no en la portada?
La página de inicio suele usar la URL base y no necesita reglas de reescritura. Las entradas y páginas dependen de los permalinks, por eso devuelven 404 cuando esas reglas no están cargadas en el servidor.
¿Regenerar los enlaces permanentes es suficiente?
En el 80 % de los casos sí. WordPress vuelve a escribir el .htaccess o recarga las reglas internas. Si tu servidor usa Nginx, además necesitas que try_files esté correctamente configurado.
¿Puedo tener .htaccess en un servidor Nginx?
No tiene efecto. Nginx ignora los archivos .htaccess. Toda la configuración debe ir en el archivo de virtual host dentro de /etc/nginx/sites-available/. El .htaccess solo sirve para Apache y LiteSpeed.
¿Es necesario tocar la base de datos después de migrar?
Solo si las URL antiguas siguen apareciendo. Normalmente los buenos plugins de migración hacen el search & replace automáticamente. Si ves enlaces con el dominio viejo, entonces sí conviene actualizar home y siteurl en la tabla wp_options.