WordPress da error 404 en todas las páginas menos la de inicio tras una mudanza: Apache, Nginx y qué revisar
Cuando tras mudar WordPress solo funciona la página de inicio y todas las demás dan un 404, el contenido suele estar intacto. Faltan las reglas que traducen una dirección amigable a la entrada correcta. En Apache y LiteSpeed se encarga el archivo .htaccess; en Nginx, la configuración del servidor. Empieza por volver a guardar los enlaces permanentes y luego revisa el servidor.
Autor: El equipo de TellMyShop. Una guía para dueños de sitios WordPress y tiendas WooCommerce: la causa, el arreglo manual y el mismo trabajo en una conversación con el chat.
Última actualización: · 7 min de lectura
Cómo saber que es este problema y no un 404 normal
Este artículo trata una situación concreta: todas las páginas dejaron de funcionar de golpe, lo más a menudo justo después de mudar el sitio a otro hosting, cambiar el dominio o restaurar una copia de seguridad. Las direcciones sueltas con error, por ejemplo tras borrar una entrada o cambiar el enlace permanente de una página, son otro problema. Lo describimos en la guía sobre el error 404 en WordPress.
Síntomas que encajan con una mudanza:
| Síntoma | Qué significa probablemente |
|---|---|
| La página de inicio funciona; entradas, páginas y categorías dan 404 | no hay reglas de reescritura de direcciones en el servidor |
| El escritorio /wp-admin funciona con normalidad | WordPress y la base de datos están bien |
| Una dirección con /index.php/ en medio abre la entrada | WordPress funciona, el servidor no le pasa las direcciones amigables |
| El mensaje de 404 es distinto de la página 404 del tema | el servidor devuelve el error él mismo, antes de que WordPress reciba la petición |
| Los enlaces llevan al dominio antiguo o a una dirección de prueba | la dirección antigua sigue en los ajustes del sitio |
La última fila conviene revisarla aparte. Si el menú y los enlaces llevan a la dirección antigua, el problema está en los ajustes del sitio, no en las reglas del servidor.
Una guía de rescate paso a paso
Los pasos van del más sencillo al que dejas a tu hosting. Después de cada uno, comprueba una entrada y una página en una ventana privada del navegador.
- Vuelve a guardar los enlaces permanentes. Ve a Ajustes, Enlaces permanentes y haz clic en Guardar cambios sin cambiar nada. WordPress reconstruye las reglas de direcciones e intenta escribirlas en .htaccess. La documentación de la pantalla Enlaces permanentes la describe.
- Lee el mensaje después de guardar. Si WordPress muestra un cuadro con reglas para pegar a mano, es que no pudo escribir el archivo. Copia esas reglas para tu hosting o pégalas tú en el gestor de archivos.
- Comprueba la dirección del sitio. En Ajustes, Generales, los campos Dirección de WordPress y Dirección del sitio deben tener el dominio nuevo y el inicio correcto (https o http, con o sin www). Si están las direcciones antiguas, no las corrijas a ciegas, porque puedes perder el acceso al escritorio. Mejor pregunta a quien cuida el sitio.
- Averigua en qué servidor funciona el sitio. Apache o LiteSpeed: sigue con el paso 5. Nginx: paso 6.
- Apache y LiteSpeed: mira el .htaccess. En el gestor de archivos del hosting, en la carpeta del sitio, activa la opción de mostrar los archivos ocultos. El nombre del archivo empieza por un punto, y al copiar por FTP a menudo se queda sin más en el servidor antiguo. Debe contener un bloque entre las líneas «# BEGIN WordPress» y «# END WordPress».
- Nginx: pide a tu hosting una regla para WordPress. Nginx no lee .htaccess, y WordPress no añadirá las reglas por sí mismo. Escribe a tu hosting que necesitas una configuración que pase las direcciones inexistentes a index.php.
- Vacía la caché. Un plugin de caché o la caché del hosting pueden seguir mostrando 404 antiguos un tiempo, aunque las reglas ya funcionen.
Apache o Nginx: quién arregla qué
La diferencia entre servidores decide si puedes arreglarlo tú o tienes que escribir a tu hosting.
Apache y LiteSpeed leen el archivo .htaccess de la carpeta del sitio. Cuando el archivo está y tiene el bloque de WordPress, pero las páginas siguen dando 404, puede que el servidor tenga desactivado el módulo de reescritura o un ajuste que le dice que ignore .htaccess. Son ajustes del servidor, y los cambia tu hosting, no tú.
Nginx no tiene nada equivalente a .htaccess. La documentación de WordPress sobre la configuración de Nginx dice claramente que WordPress no cambiará por sí mismo la configuración de este servidor, así que sin una regla manual se añade index.php a las direcciones. La regla la añade tu hosting o el administrador del servidor. Muchos hostings tienen en el panel una plantilla lista para WordPress que solo hay que activar.
Con una instalación en una subcarpeta, por ejemplo cuando el blog está en /blog/, las reglas tienen que apuntar a esa subcarpeta. Es una trampa habitual tras mover un sitio de la carpeta raíz a una subcarpeta o al revés. El mismo caso, con una descripción precisa del síntoma «todo menos la página de inicio», lo trata también la guía de WebNots.
Lo que puedes darle a tu hosting en un solo correo:
- el dominio y que tras la mudanza solo funciona la página de inicio,
- dos direcciones de ejemplo que dan 404,
- si la dirección con /index.php/ funciona,
- el bloque de WordPress del .htaccess, o que el archivo no está.
Cómo ayuda el chat a encontrar la causa
El plugin TellMyShop para WordPress y WooCommerce no edita el archivo .htaccess ni la configuración del servidor. Es un bloqueo deliberado, y ningún interruptor lo levanta. Aun así es útil para un diagnóstico rápido cuando funciona la conexión con tu chat (Claude o ChatGPT), y para comprobar que todo ha vuelto tras la corrección. Si el chat no puede conectarse al sitio, sigue a mano la guía de rescate.
En la versión gratuita TellMyShop Free el chat abre las direcciones elegidas como lo hace un navegador y muestra el código de respuesta, y revisa la salud del sitio, el registro de errores y el informe de 404. En unos minutos sabes si el problema afecta a todas las páginas o solo a algunas, y qué pasarle exactamente a tu hosting.
Tú: Hemos mudado el sitio a un hosting nuevo y creo que algo se ha roto. Revisa las páginas.
Tu chat: He comprobado seis direcciones. La página de inicio responde con código 200. La entrada «Cómo elegir una jardinera», la página Contacto y la categoría Consejos responden con 404, y el mismo contenido se abre con /index.php/ en la dirección.
Tu chat: Salud del sitio: servidor Nginx. Conclusión: WordPress funciona, pero falta la regla que pasa las direcciones a index.php. Eso no puedo cambiarlo desde el plugin. He preparado un correo para tu hosting con las direcciones de ejemplo.
Tú: El hosting ha añadido la regla. Vuelve a comprobarlo.
Tu chat: Las seis direcciones responden con código 200. El informe de 404 de la última hora no tiene entradas nuevas.
Las direcciones y cifras de esta conversación son ilustrativas. En TellMyShop Pro el chat lee todo el sitio, así que también puede comparar las direcciones del menú y de los enlaces con el dominio nuevo. Cambiar los ajustes de enlaces permanentes desde la conversación requiere en Pro el interruptor Tema, que dura 24 horas y necesita una copia de la base de datos de hoy. Cada guardado tiene vista previa y espera tu aprobación, y puedes deshacer cualquier cambio desde el historial. Los detalles están en la página TellMyShop para WordPress y WooCommerce, y puedes comparar las versiones en precios.
Después de arreglarlo: qué revisar para que Google no pierda nada
Cuando las páginas vuelven a funcionar, quedan tres cosas.
La primera son las direcciones. Si durante la mudanza cambió el dominio o la estructura de enlaces permanentes, las direcciones antiguas necesitan redirecciones 301, o los enlaces desde otros sitios y los resultados de Google no llevarán a ninguna parte. Explicamos cómo configurarlas en la guía sobre la redirección 301 en WordPress.
La segunda es la visibilidad. Tras unos días de 404, algunas páginas pueden haber salido de los resultados. Si no vuelven después del arreglo, busca las causas con la lista del artículo mi web WordPress no aparece en Google.
La tercera es el informe de errores 404. Los primeros días después del arreglo, míralo cada día. Las entradas nuevas mostrarán direcciones que nadie recordaba, como enlaces antiguos a archivos o categorías que cambiaron de nombre.
Puedes revisar los códigos de respuesta, la salud del sitio y el informe de 404 en la versión gratuita TellMyShop Free. Hay más guías en el blog.
Preguntas y respuestas
¿Por qué después de una mudanza solo funciona la página de inicio?
La página de inicio no necesita reglas de reescritura de direcciones, pero las páginas con direcciones amigables sí. Cuando el servidor nuevo no tiene archivo .htaccess, lo ignora o funciona con Nginx sin una regla para WordPress, todas las direcciones menos la de inicio terminan en un error 404. El contenido de la base de datos está intacto.
¿Guardar los enlaces permanentes siempre ayuda?
Ayuda cuando WordPress puede escribir él mismo el archivo .htaccess en un servidor Apache. En Nginx este paso no cambia nada en el servidor, porque Nginx no lee .htaccess. Entonces la regla la tiene que añadir tu hosting o quien configura el servidor.
¿Cómo compruebo si tengo Apache o Nginx?
Lo más sencillo es preguntar a tu hosting o mirar la descripción del plan en el panel. WordPress también muestra información del servidor en Herramientas, Salud del sitio, en la pestaña Información, en la sección del servidor. Los hostings con LiteSpeed normalmente leen .htaccess igual que Apache.
Las páginas funcionan con /index.php/ en la dirección. ¿Qué significa?
Es señal de que WordPress funciona, pero el servidor no le pasa las direcciones amigables. Una instalación en Nginx sin regla para WordPress suele verse así. No cambies de forma permanente la estructura de enlaces a una con index.php; pide a tu hosting que añada la regla.
¿Tengo que configurar redirecciones después de arreglarlo?
Si las direcciones no cambiaron, no. Google volverá a las mismas direcciones y verá el contenido. Las redirecciones solo hacen falta cuando durante la mudanza cambió el dominio, la estructura de enlaces permanentes o las direcciones de algunas páginas.
WordPress es una marca de la WordPress Foundation. WooCommerce es una marca de Automattic Inc. Claude es una marca de Anthropic PBC. ChatGPT y OpenAI son marcas de OpenAI. TellMyShop no está afiliado a estas empresas.