Contactar

Mantenimiento WordPress
Mantenimiento WordPress
  • Inicio
  • Actualizaciones
  • Blog
  • Copias de seguridad
  • Errores y problemas
  • Hosting
  • Hosting técnico
  • Mantenimiento servicio
  • Migración
  • Noticias
  • Noticias de WordPress
  • Optimización y velocidad
  • Rendimiento
  • Seguridad
  • Seguridad avanzada
  • Nosotros
  • Contactar
Buscar
  • Inicio
  • Actualizaciones
  • Blog
  • Copias de seguridad
  • Errores y problemas
  • Hosting
  • Hosting técnico
  • Mantenimiento servicio
  • Migración
  • Noticias
  • Noticias de WordPress
  • Optimización y velocidad
  • Rendimiento
  • Seguridad
  • Seguridad avanzada
  • Nosotros
  • Contactar

Recupera URLs y evita 404 por .htaccess y permalinks

Foto de recupera urls y

¿URLs devuelven 404 tras una migración o actualización? Es un fallo habitual que penaliza SEO, rompe conversiones y suele venir de reglas de reescritura corruptas, permisos erróneos o plugins conflictivos. Se necesita un diagnóstico rápido e intervenciones seguras: identificar si falla WordPress o el servidor y aplicar correcciones que restauren rutas y minimicen downtime.

Si tu web muestra errores por .htaccess o permalinks: primero guarda un backup y regenera las reglas desde Ajustes → Enlaces permanentes; luego verifica permisos (propietario y permisos 644), comprueba mod_rewrite en Apache o try_files en Nginx, desactiva plugins conflictivos y usa WP‑CLI para forzar el flush y depurar reglas si es necesario.

Índice

    Anuncio

    Resumen del proceso: 6 pasos claros para recuperar URLs

    Sigue estos pasos para recuperar URLs y evitar 404 en menos de 60 minutos.
    1. Backup y prueba rápida en WP: guarda .htaccess y pulsa Guardar en Enlaces permanentes.
    2. Diagnóstico servidor: comprueba mod_rewrite o try_files y prueba con curl.
    3. Restaurar o regenerar .htaccess o blocks de Nginx según servidor.
    4. Revisar permisos y propietario (chown).
    5. Aislar plugins y usar WP‑CLI para flush y pruebas.
    6. Aplicar redirecciones 301 SEO y vigilar Search Console.

    Usa este resumen como checklist: cada paso es ejecutable y suele llevar entre 5 y 30 minutos según el acceso al servidor.

    Foto de recupera urls y

    Paso 1: comprueba y regenera permalinks en WordPress

    Pulsa Guardar cambios en Ajustes → Enlaces permanentes para forzar la regeneración.
    Si WordPress puede escribir .htaccess, con frecuencia eso soluciona una proporción importante de casos de 404 tras cambiar permalinks, aunque el porcentaje exacto depende del hosting, la caché y configuraciones adicionales; siempre conviene comprobar logs y confirmar el resultado con curl o herramientas de rastreo tras el guardado.
    Si la web muestra 500 o bucles, no sigas hasta tener backup del .htaccess.

    ¿Por qué empezar por aquí?

    Regenerar reglas desde el panel reescribe las reglas que WordPress necesita.
    La mayoría de problemas se resuelven pulsando Guardar y comprobando si el .htaccess cambia.

    ¿Cómo comprobar si funcionó con curl?

    Usa este comando: curl -I -L https://tudominio/slug
    Observa el código HTTP y Location. Si ves 200, el problema se arregló.

    Anuncio

    Paso 2: diagnostica si el fallo es servidor o WordPress

    Haz estas comprobaciones para identificar la capa responsable en menos de 20 minutos.
    Saber si falla Apache, Nginx o WordPress evita ediciones innecesarias del .htaccess.

    ¿Cómo testear mod_rewrite en apache?

    Ejecuta: apachectl -M | grep rewrite
    Si aparece rewrite_module, mod_rewrite está activo.
    Si no aparece, pide al hosting que active mod_rewrite.

    ¿Cómo testear try_files en nginx?

    Revisa el server block con nginx -T | grep try_files
    Busca la línea: try_files $uri $uri/ /index.php?$args
    Si falta, añade la regla y recarga nginx.

    1
    Regenera permalinks en WP y comprueba respuesta HTTP
    2
    Si falla, prueba test.html en la raíz para distinguir servidor/WordPress
    3
    Revisa mod_rewrite (Apache) o try_files (Nginx) y los logs
    4
    Aísla plugins con WP‑CLI y aplica flush_rewrite_rules()

    Un flujo de diagnóstico claro evita pruebas aleatorias: primero sube un fichero estático test.html en la raíz y comprueba con curl -I https://dominio/test.html. Si devuelve 200, el servidor y vhost están funcionando; el siguiente paso es acceder a /index.php directamente y luego a una URL que debería reescribirse. Si test.html devuelve 404 o 50x, el problema es del servidor/vhost (revisa tail -n 200 /var/log/nginx/error.log o /var/log/apache2/error.log). Si test.html es 200 pero las URLs de WP devuelven 404, comprueba mod_rewrite (apachectl -M | grep rewrite) o try_files (con nginx -T | grep try_files), permisos de .htaccess (ls -la .htaccess) y aísla plugins con wp plugin deactivate --all, volviendo a activarlos uno a uno.

    Documentar los resultados esperados en cada paso (200/301/404/500) acelera la resolución y evita tocar .htaccess a ciegas.

    Paso 3: restaurar o recrear .htaccess en apache

    Haz un backup, reemplaza con el bloque mínimo oficial y ajusta propietario y permisos.
    Esto tarda entre 5 y 15 minutos si se accede por SSH o SFTP con permisos adecuados.

    ¿Qué .htaccess pegar en un sitio único?

    Copia exactamente este bloque y guárdalo como .htaccess en la raíz:

    apache RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

    ¿Qué hacer si WordPress no puede escribir .htaccess?

    Comprueba propietario con: ls -la .htaccess
    Si owner no es el usuario del servicio web, cambia: sudo chown www-data:www-data .htaccess
    Fija permisos: chmod 644 .htaccess

    Más allá del bloque mínimo, conviene disponer de snippets algo más completos que combinen reescritura y seguridad para .htaccess y su equivalente en Nginx. En Apache se puede añadir protección para wp-config.php y xmlrpc, forzar HTTPS/WWW y evitar listado de directorios con algo como: # BEGIN WordPress...RewriteRule . /index.php [L]# END WordPress seguido de reglas para RedirectMatch 404 /wp-config.php y Order allow,deny Deny from all. En Nginx un bloque realista incluye try_files, manejo de PHP-FPM, redirección a https y reglas para denegar acceso a archivos sensibles: location ~* /wp-config.php { deny all; }.

    Incluir estos snippets listos para pegar acelera la reparación y reduce errores humanos al copiar solo el bloque mínimo.

    Paso 4: configurar nginx correctamente con try_files

    Edita el server block y añade try_files para reenviar a index.php cuando haga falta.
    Nginx no usa .htaccess, por eso muchos artículos llevan a error si confunden ambos servidores.

    Ejemplo de server block mínimo

    Copia este bloque en tu virtual host y ajusta root y socket PHP:

    nginx server { listen 80; server_name ejemplo.com www.ejemplo.com; root /var/www/html; index index.php;

    location / { try_files $uri $uri/ /index.php?$args; }

    location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } }

    Multisite y nginx: matices necesarios

    Multisite en subdirectorios funciona con try_files, pero las reglas para archivos subidos cambian.
    Para multisite, añade reglas específicas para /files/ o blogs.dir según la versión de WordPress.

    Para instalaciones Multisite hay consideraciones técnicas que difieren del WordPress en sitio único y conviene tratarlas de forma explícita. En multisite por subdirectorios es crucial que las reglas de reescritura permitan resolver blogs/paths y el directorio de subidas; en Apache suele añadirse una excepción para /files/ o adaptar RewriteBase cuando la red es antigua. En multisite por subdominios hay que asegurar que el vhost acepte comodines (ServerAlias *.dominio) y que los registros DNS y virtual hosts apunten correctamente.

    Además, las migraciones multisite requieren comprobar que las entradas de la tabla wp_blogs y wp_site estén actualizadas, y usar WP‑CLI (por ejemplo wp search-replace) para corregir dominios y rutas en la base de datos. Ignorar estos matices provoca 404 en solo una parte de la red o rutas rotas para blogs secundarios.

    Anuncio

    Paso 5: usar WP‑CLI para debug y reparación segura

    Ejecuta comandos WP‑CLI para listar reglas, forzar flush y gestionar plugins sin tocar el admin.
    Estos comandos suelen tardar segundos o pocos minutos y permiten rollback rápido.

    Comandos clave de WP‑CLI

    bash wp rewrite flush --hard

    wp rewrite list --format=table

    wp option get permalink_structure

    wp plugin deactivate --all

    wp plugin activate redirection

    ¿Cuándo usar WP‑CLI en producción?

    Usar WP‑CLI cuando el panel falla o cuando hay que hacer cambios masivos con poco downtime.
    Funciona bien en entornos con SSH y permisos, pero siempre haz copias de seguridad antes de ejecutar comandos en producción.

    Paso 6: redirecciones 301 (SEO) y cómo aplicarlas

    Aplica 301 permanentes directas y actualiza sitemap y Search Console tras los cambios.
    Evita cadenas de redirección y configura canonical; esto es esencial para retener tráfico orgánico.

    Plantillas para redirecciones 301

    En .htaccess (Apache):

    apache RewriteRule ^old-path/?$ /new-path/ [R=301,L]

    En Nginx:

    nginx rewrite ^/old-path/?$ /new-path/ permanent;

    Buenas prácticas SEO tras cambiar

    Mantén redirecciones inmediatas y revisa Search Console en 48-72 horas para detectar errores.
    Usar Screaming Frog o herramientas de rastreo permite verificar miles de URLs en horas.

    Errores que arruinan el resultado y cómo evitarlos

    Evita cambiar .htaccess sin backup, asumir que es siempre problema de WP y usar permisos 777.
    Estos tres errores producen bucles, 500 y exposición de seguridad con frecuencia elevada.

    ¿Cuál es el error más frecuente aquí?

    El error más frecuente en este punto es editar .htaccess en producción sin copia previa.
    Esto genera bucles de redirección y downtime que pueden durar horas.

    ¿Qué falla la mayoría de guías y por qué?

    La mayoría de guías dicen "edita .htaccess" y no diferencian Apache de Nginx.
    Esto causa que administradores confundan servidores y apliquen soluciones inútiles.

    Ejemplo anónimo de caso real

    Un caso habitual: tras migrar a un VPS, se conservó .htaccess del hosting anterior → site en bucle → tráfico perdido durante 12 horas hasta restaurar backup y corregir vhost.

    Anuncio

    Comparativa rápida: apache vs nginx vs plugins

    Lee la tabla para decidir la mejor vía según el control que tenga sobre el servidor.

    Criterio Apache (.htaccess) Nginx (server block) Plugins (Redirection, Yoast)
    Control necesario Acceso a .htaccess o vhost Acceso a server block y reload Solo WP admin
    Rendimiento Impacto bajo, procesamiento por request Más eficiente a nivel global Añade sobrecarga a WP
    Seguridad Puede blindarse con .htpasswd y reglas WAF + nginx config ofrecen mayor control Depende de plugins y actualizaciones

    Para quienes necesiten una auditoría técnica puntual con diagnóstico, plan de reparación y presupuesto claro, Josu Barrios ofrece un servicio profesional de mantenimiento que incluye prueba en staging y reporte de cambios.

    Preguntas frecuentes

    ¿Cómo recuperar permalinks sin perder SEO?

    Usa redirecciones 301 desde las URLs antiguas a las nuevas.
    Actualiza sitemap.xml y notifica Google Search Console.
    Evita cadenas de redirección y revisa enlaces internos.

    ¿Qué permisos debe tener .htaccess?

    El archivo .htaccess debe ser 644 con propietario del servidor web.
    Si el servidor no puede escribirlo, cambiar propietario a www-data suele resolverlo.
    Nunca uses 777 porque compromete la seguridad.

    ¿Cómo diferencio apache y nginx si no lo sé?

    Revisa headers de respuesta o pregunta al hosting.
    La presencia de un archivo .htaccess sugiere que el proyecto está preparado para Apache, pero no es concluyente: Nginx no lee .htaccess, y puede existir un .htaccess legado en instalaciones que en realidad se sirven por Nginx. Verifica el servidor con comandos (apachectl -M / nginx -T) o preguntando al hosting antes de basar la reparación en ese fichero.
    Si el hosting documenta server blocks, usa configuración Nginx.

    ¿Qué hace wp rewrite flush --hard y cuándo usarlo?

    El comando forza la regeneración de reglas de reescritura.
    Se usa cuando el panel no puede escribir .htaccess o cuando se gestionan muchos sitios por script.
    Haz backup antes de ejecutar en producción.

    ¿Cómo detectar si un plugin genera reglas?

    Desactiva plugins y comprueba URLs; luego reactívalos uno a uno.
    WP‑CLI permite desactivar todos y reactivar selectivamente para pruebas rápidas.
    Plugins habituales que modifican reglas: Redirection y algunos SEO plugins.

    ¿Qué hacer si después de todo siguen los 404?

    Comprueba logs del servidor y PHP-FPM para errores específicos.
    Valida que el vhost apunte a la carpeta correcta y que DNS esté propagado.
    Si el hosting aplica CDN, revisa reglas y cache del CDN.

    ¿Cómo proteger .htaccess contra inyecciones?

    Restringe quién puede editarlo y monitoriza cambios con inotify o Tripwire.
    Busca patrones sospechosos como eval o base64 en el archivo.
    Activa WAF y revisa usuarios admin de WordPress.

    Pasos finales y comprobaciones antes de cerrar

    Confirma que todas las URLs importantes devuelvan 200 o 301 tras los cambios.
    Revisa Search Console y herramientas de rastreo durante 72 horas.
    Mantén backups diarios durante la primera semana tras cambios significativos.

    La evidencia apunta a que más del 43% de los sitios usan WordPress, según W3Techs, lo que hace habituales los problemas de permalinks en migraciones y cambios de servidor.
    Los proveedores como OVHcloud, SiteGround y Hostinger ofrecen herramientas para revisar logs y reglas del servidor; pide acceso a esos registros si hay dudas.

    ⚠️ Si tras aplicar todos los pasos no hay cambio, el problema puede estar fuera del servidor o WordPress: CDN, proxy inverso o reglas del proveedor. Contacta con el soporte del hosting y adjunta logs.
    RESUMIR CON IA: Extrae lo importante

    Comparte este artículo:

    𝕏 X (Twitter) f Facebook in LinkedIn 🔥 Reddit 🐘 Mastodon 🦋 Bluesky 💬 WhatsApp 📱 Telegram 📧 Email
    • Backups programados Multisite que reducen RTO y costes
    • Validación de seguridad post-actualización en WordPress
    • Reduce builds fallidos en Headless WP con Next.js
    • Un tema nulled puede costar 10x la licencia original
    Josu Barrios

    Josu Barrios

    Somos especialistas en mantenimiento WordPress para empresas, profesionales y tiendas online. Contamos con experiencia en seguridad web, optimización de rendimiento, actualizaciones, copias de seguridad y resolución de incidencias técnicas, ayudando a que cada sitio funcione de forma rápida, estable y protegida. Nuestro enfoque combina soporte técnico profesional, buenas prácticas de seguridad y seguimiento continuo para ofrecer un servicio fiable, transparente y orientado a resultados reales.

    Publicado: 09 de jun. de 2026
    Actualizado: 15 de jul. de 2026
    Por Josu Barrios

    En Errores y problemas.

    tags: htaccess permalinks WordPress seguridad-web WP-CLI

    Aviso legal | Política de privacidad | Política de cookies
    Archivo de artículos

    Contactar

    Síguenos en LinkedIn

    © Mantenimiento WordPress. Todos los derechos reservados.