
Un síntoma muy típico después de migrar un sitio, restaurar un respaldo o cambiar de hosting: la portada carga perfecto, pero al hacer clic en cualquier entrada, página o categoría aparece «Error 404 – Página no encontrada». Tus contenidos están ahí, en el panel los ves. Simplemente el servidor no sabe cómo llegar a ellos.
Por qué pasa
Las direcciones bonitas de WordPress, como tudominio.cl/mi-entrada/, no existen como carpetas reales en el servidor. Un archivo llamado .htaccess le dice al servidor: «cualquier dirección que no encuentres, pásasela a WordPress para que él la resuelva». Si ese archivo falta o está dañado, el servidor busca una carpeta mi-entrada, no la encuentra y responde 404.
Solución 1: guardar los enlaces permanentes (30 segundos)
Funciona en la mayoría de los casos.
- Entra al panel y ve a Ajustes → Enlaces permanentes.
- No cambies nada. Baja y pulsa Guardar cambios.
- Abre una entrada en una ventana de incógnito.
Al guardar, WordPress vuelve a escribir sus reglas en .htaccess. Si ya funciona, listo.
Si al guardar aparece un aviso que dice que .htaccess no se puede escribir y te muestra unas reglas para copiar, cópialas: las usarás en la solución 2.
Solución 2: crear o reparar .htaccess a mano
- En cPanel, abre el Administrador de archivos y entra a
public_html(o a la carpeta donde está tu WordPress, la que tienewp-config.php). - Arriba a la derecha, en Configuración, marca «Mostrar archivos ocultos (dotfiles)» y guarda. Los archivos que empiezan con punto están ocultos por defecto.
- Busca
.htaccess:- Si existe: descárgalo como copia de seguridad y ábrelo con Editar.
- Si no existe: crea uno con + Archivo y llámalo exactamente
.htaccess(con el punto al inicio).
- Asegúrate de que contenga este bloque. Si ya hay otras reglas (de tu plugin de caché, de seguridad o de tu hosting), déjalas y agrega o reemplaza solo este bloque:
# 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 y prueba una entrada.
¿Tu WordPress está en una subcarpeta?
Si tu sitio es, por ejemplo, tudominio.cl/blog/, cambia dos líneas: RewriteBase /blog/ y RewriteRule . /blog/index.php [L]. Y el archivo .htaccess va dentro de la carpeta blog.
Solución 3: si solo fallan algunas páginas
Si la mayoría funciona pero algunas direcciones dan 404:
- Revisa el slug: abre la entrada en el editor y mira su dirección en el panel lateral (Enlace o URL). Puede que la hayas cambiado y los enlaces viejos apunten a la dirección anterior. Un plugin como Redirection te permite redirigir la dirección vieja a la nueva.
- Conflicto de nombres: si una página y una categoría tienen el mismo slug, una de las dos puede quedar inaccesible. Cambia el slug de una.
- Papelera: verifica que la entrada no esté en la papelera o como borrador.
- Tipos de contenido de un plugin (productos, foros, eventos): después de activar o actualizar ese plugin, vuelve a guardar los enlaces permanentes (solución 1).
Solución 4: el servidor no lee .htaccess
Muy raro en hostings con cPanel, pero posible en algunos VPS o servidores con Nginx, que no usa .htaccess. Si nada de lo anterior funcionó, escríbele a tu proveedor y pregúntale: «¿El módulo mod_rewrite está activo y se permite .htaccess (AllowOverride) en mi cuenta?». Si tu servidor usa Nginx, las reglas se configuran de otra forma y tu proveedor te puede ayudar.
Si el error 404 empezó después de migrar
Revisa también que las direcciones del sitio sean correctas en Ajustes → Generales: Dirección de WordPress (URL) y Dirección del sitio (URL) deben ser tu dominio actual, con https:// si tienes certificado SSL.
¿Probaste todo y siguen los 404? Comparte en el foro el contenido de tu .htaccess y un ejemplo de dirección que falla. Te ayudamos a encontrar la regla que sobra o falta.





