Pulsa ESC para cerrar

Curso WordpressCurso Wordpress

La portada funciona pero las entradas dan error 404: cómo arreglar los enlaces permanentes

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.

  1. Entra al panel y ve a Ajustes → Enlaces permanentes.
  2. No cambies nada. Baja y pulsa Guardar cambios.
  3. 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

  1. En cPanel, abre el Administrador de archivos y entra a public_html (o a la carpeta donde está tu WordPress, la que tiene wp-config.php).
  2. 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.
  3. 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).
  4. 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
  1. 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.