UA-51298262-10 Skip to main content
Dominios

Redirigir www a no www en Nginx y Apache

By julio 28, 2026No Comments
Redirigir www a no www en Nginx y Apache

Por qué es necesario redirigir www a no www

Antes de picar código, hay que entender por qué esto importa. Google no es tonto, pero es estricto: ve http://tudominio.com y http://www.tudominio.com como dos casas diferentes. Si tu sitio abre por ambas puertas sin cerrar una, tendrás un problema de contenido duplicado. Y eso no es bueno. Diluye la fuerza de tu página porque los enlaces entrantes se reparten entre las dos direcciones en lugar de sumarse en una sola.

La solución es clara. Eliges una versión canónica y obligas al servidor a llevar el tráfico ahí. Hoy vamos a ver cómo redirigir www a no www. Es una práctica común por estética —los dominios cortos gustan— y por tendencia moderna. Esta redirección debe ser un 301 (Moved Permanently). Traducido: le dices a los buscadores que el cambio es para siempre y que pasen todo el valor SEO de la vieja URL a la nueva.

Ahora sí, veamos cómo hacerlo en los dos servidores más usados: Apache y Nginx.

Redirección en Apache utilizando .htaccess

Apache es el clásico en hostings compartidos y suele manejar esto con el archivo .htaccess. Lo encontrarás en la raíz (carpeta public_html o /var/www/html). Un consejo de veterano: haz una copia de seguridad antes de tocar nada. Un punto y coma mal puesto puede tirar tu web horas.

Paso 1: Activar el módulo Rewrite

La mayoría de instalaciones ya traen mod_rewrite activo, pero si gestionas tu propio VPS, mejor asegúrate. Compruébalo en la terminal:

sudo a2enmod rewrite

Luego reinicia el servicio para que se entere:

sudo systemctl restart apache2

Paso 2: Configurar las reglas en .htaccess

Abre el archivo .htaccess. Si no está, créalo. Pega este bloque al principio del todo, para que se ejecute antes que cualquier otra cosa:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

</IfModule>

¿Tienes SSL (HTTPS)? Casi seguro que sí. En ese caso, usa la versión segura para no redirigir a conexiones inseguras:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

</IfModule>

Qué hace cada línea:

  • RewriteEngine On: Arranca el motor de reescritura.
  • RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]: Mira si la URL empieza por «www». El [NC] significa que no le importan las mayúsculas.
  • RewriteRule ^(.*)$ https://%1/$1 [R=301,L]: Lleva la petición a la misma ruta, pero sin «www» y con candado (HTTPS). El [R=301] marca la redirección como permanente y el [L] le dice que pare de leer reglas si acierta.

Consejo de experto: Si usas WordPress, plugins como Yoast SEO o Rank Math pueden hacer esto solos. Pero hacerlo a nivel de servidor es más limpio. Ahorras carga de PHP para algo tan simple como cambiar de dirección.

Redirección en Nginx

Nginx destaca por ser rápido y consumir poco. A diferencia de Apache, aquí no existen los archivos .htaccess. Todo se configura en bloques de servidor, normalmente en /etc/nginx/sites-available/ (Debian/Ubuntu) o /etc/nginx/conf.d/ (CentOS/RHEL).

Para redirigir www a no www en Nginx, lo suyo es tener dos bloques server: uno que escucha el www y redirige, y otro que se encarga de la versión real.

Paso 1: Editar el bloque de servidor

Abre el archivo de tu sitio. Digamos que tu dominio es midominio.net. Busca o añade esta estructura:

# Bloque para redirigir www a no www

server {

listen 80;

listen [::]:80;

server_name www.midominio.net;

return 301 $scheme://midominio.net$request_uri;

}

Bloque principal del sitio

server {

listen 80;

listen [::]:80;

server_name midominio.net;

# Resto de tu configuración (root, index, location...)...

}

Si ya tienes SSL/TLS (HTTPS), que es lo estándar, la configuración debe escuchar en el puerto 443. La sintaxis ideal para matar dos pájaros de un tiro (quitar www y forzar HTTPS) es esta:

# Redirigir www (HTTP y HTTPS) a no-www (HTTPS)

server {

listen 80;

listen 443 ssl;

server_name www.midominio.net;

# Incluir certificados SSL si es necesario

# ssl_certificate /ruta/a/tu/cert.crt;

# ssl_certificate_key /ruta/a/tu/key.key;

return 301 https://midominio.net$request_uri;

}

Bloque principal HTTP a HTTPS

server {

listen 80;

server_name midominio.net;

return 301 https://midominio.net$request_uri;

}

Bloque principal HTTPS

server {

listen 443 ssl;

server_name midominio.net;

# Configuración SSL y ubicación del sitio...

}

Paso 2: Verificar y reiniciar Nginx

Antes de aplicar nada, verifica la sintaxis. Un error aquí puede dejar tu web fuera de juego:

sudo nginx -t

Si la prueba sale bien (te dice syntax is ok y test is successful), recarga la configuración:

sudo systemctl reload nginx

Usa reload y no restart en producción. Es más elegante: recarga los cambios sin cortar las conexiones que ya están activas.

Verificación de la redirección

Hecho el cambio en el servidor, toca comprobar. No te fíes solo del navegador, porque estos suelen guardar en caché las redirecciones 301 y pueden engañarte.

  1. Herramientas online: Usa algo como Redirect Checker. Verás la cadena completa. Busca un código 301 apuntando a la versión limpia (sin www).
  2. Terminal (cURL): Si quieres ver las tripas tú mismo, usa curl para ver las cabeceras HTTP sin seguir la redirección:

    curl -I http://www.tudominio.com

    Tienes que ver una línea HTTP/1.1 301 Moved Permanently y otra Location: https://tudominio.com.

Impacto en SEO y Google Search Console

Con la parte técnica resuelta, avísale a Google. El 301 suele ser suficiente, pero es buena práctica definir el dominio preferido en Google Search Console (el antiguo Webmaster Tools).

  • Entra a la propiedad de tu sitio.
  • Ve al engranaje (Configuración) y selecciona Configuración del sitio.
  • En «Dominio preferido», marca la opción sin www.

Revisa también tu sitemap.xml. Si usas WordPress, asegura que la dirección en Ajustes > Generales coincida con la versión sin www, o podrías crear bucles de redirección o enlaces rotos.

Preguntas Frecuentes

¿Es mejor www o sin www?

Técnicamente da igual. La versión «no www» se ve más moderna y limpia, mientras que la «www» ayudaba antaño con el tema de las cookies en subdominios. Lo importante es elegir una y redirigir la otra a consciencia.

¿Puedo hacerlo desde WordPress sin tocar el servidor?

Sí, cambiando la dirección en Ajustes > Generales o con plugins. Ojo, que esto maneja la redirección con PHP, lo cual gasta más recursos del servidor que una redirección nativa en Apache o Nginx.

Conclusión

Configurar bien tu dominio para redirigir www a no www es básico, sí, pero crítico para la salud de tu web. Da igual si usas un VPS con Nginx o un hosting compartido con Apache; los pasos de arriba te permitirán poner redirecciones 301 eficientes y seguras.

El objetivo no es solo que quede bonito. Se trata de consolidar tu autoridad de enlace y evitar problemas de contenido duplicado frente a Google. Cuando apliques los cambios, verifica el código HTTP y ajusta todo en Google Search Console. Si te lías o no te sientes seguro tocando archivos del servidor, en RedServicio (redservicio.net) tenemos un equipo listo para optimizar tu infraestructura y resolver cualquier incidencia técnica.