Rastreo de redirecciones
Un sitio tiene cuatro puertas de entrada: http y https, cada una con y sin www. Este rastreo recorre las cuatro, anota cada salto y comprueba que todas terminan en la misma dirección HTTPS.
Un sitio, cuatro direcciones
Para una persona, todas parecen el mismo lugar:
http://example.com/ http://www.example.com/ https://example.com/ https://www.example.com/
Un navegador o un rastreador de buscador ve cuatro orígenes distintos. El esquema puede diferir, el nombre de host puede diferir, y nada en el diseño de la web obliga a que devuelvan el mismo contenido. Mientras tanto, un folleto impreso, un marcador antiguo y un enlace en un mensaje de foro de hace cinco años usarán cada uno una distinta.
Una redirección las une. El servidor se salta la página y responde con un estado de tres cifras de la serie 300 más una cabecera Location que nombra otra dirección, y el navegador va allí. Un sitio ordenado elige una de las cuatro como su dirección real y hace que las otras tres respondan con una única redirección hacia ella.
Los códigos de estado que mueven a los visitantes
| Código | Significado | Para qué usarlo |
|---|---|---|
301 | Movido permanentemente | De HTTP a HTTPS, de www a sin www, una página renombrada. Los navegadores lo guardan en caché y los buscadores pasan su entrada del índice a la nueva dirección. |
308 | Permanente, método conservado | Igual que 301, pero un POST sigue siendo un POST. Común en plataformas más nuevas. |
302 | Encontrado (temporal) | Un desvío por el inicio de sesión, una página de mantenimiento, una prueba A/B. |
307 | Temporal, método conservado | Igual que 302 para formularios y APIs. Los navegadores también muestran un 307 cuando ellos mismos hacen una actualización por HSTS. |
303 | Ver otro | Enviar al navegador a una página de resultado después de enviar un formulario. |
El rastreo imprime el código de cada salto en la columna Path, en el orden en que los devolvió el servidor.
Cómo se juzga el rastreo
Nuestro servidor solicita cada una de las cuatro direcciones y sigue hasta ocho redirecciones. El destino al que lleguen la mayoría se toma como dirección principal del sitio, y cada punto de partida se compara con ella.
- Dirección final / 1 salto
- La variante es la dirección principal, o llega a ella con una redirección. Esto es lo que buscas.
- 2 saltos o más
- Una cadena, por ejemplo
http://wwwahttps://wwwahttps://. Funciona, pero cada salto extra cuesta un viaje de ida y vuelta completo, a menudo de 100 a 300 ms en un teléfono. - Redirección temporal
- Un 302, 303 o 307 por el camino. Cuando la regla debería ser permanente, esto deja a los buscadores sin saber qué dirección conservar.
- Dirección distinta
- La variante acaba en otro sitio, así que el sitio existe en dos versiones. Se califica como error.
- Fallida
- Sin respuesta. Se califica como error para el dominio sin subdominio y como advertencia para
www.
Un destino que no es HTTPS es siempre un error. En la página final, el rastreo también analiza el HTML en busca de contenido mixto, es decir, scripts, hojas de estilo, marcos, destinos de formularios, imágenes y medios que todavía usan http://. Los navegadores bloquean los cuatro primeros tipos, así que son errores, mientras que las imágenes y los medios son advertencias. Por último, lee el enlace rel="canonical" y te avisa si nombra un host distinto del que alcanzan las redirecciones.
Escribir la regla una sola vez
Las cadenas aparecen cuando dos capas hacen cada una la mitad del trabajo, por ejemplo un panel de hosting que fuerza HTTPS y un plugin que luego quita www. Envía cada variante directamente a la dirección final con una sola regla.
nginx
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name www.example.com;
return 301 https://example.com$request_uri;
}Apache (.htaccess)
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]En Cloudflare, activa “Always Use HTTPS” y añade una regla de redirección para el nombre de host. El nombre www necesita su propio registro DNS y tiene que estar cubierto por el certificado, o los visitantes nunca llegan hasta la redirección. El inspector de certificados TLS lo comprueba.
Solo se rastrea la página de inicio, y solo las redirecciones enviadas como códigos de estado HTTP. Una redirección hecha con JavaScript o con una etiqueta <meta http-equiv="refresh"> no se sigue, y las páginas internas pueden obedecer otras reglas. El contenido mixto se detecta en el código fuente HTML, así que los recursos que añadan scripts más tarde pasan desapercibidos.
Preguntas frecuentes
¿Cuál es la diferencia entre una redirección 301 y una 302?
Un 301 dice que el cambio es permanente. Los navegadores lo recuerdan y los buscadores reemplazan la dirección antigua por la nueva. Un 302 dice que la dirección original sigue siendo la correcta y que el desvío puede terminar. Usa 301 o 308 para las reglas de HTTPS y www.
¿Mi sitio debe usar www o no?
Al posicionamiento le da igual. El dominio sin subdominio es más corto. La forma www puede ser un CNAME, algo que exigen algunas configuraciones de CDN y de hosting. Lo importante es que una redirija a la otra.
¿Las cadenas de redirecciones perjudican al SEO?
Una cadena de dos o tres saltos sigue transmitiendo señales de posicionamiento, y Googlebot sigue hasta diez saltos en total. Lo que pierdes es velocidad para cada visitante que entra por el camino largo, y cada eslabón extra de la cadena es una cosa más que puede fallar.
¿Qué es el contenido mixto?
Una página HTTPS que carga un recurso por http:// simple. Los navegadores bloquean esos scripts, hojas de estilo y marcos, e intentan actualizar las imágenes. Suele ser un resto de una migración a HTTPS en la que quedaron direcciones antiguas en el contenido.
Arreglé una redirección pero mi navegador sigue yendo a la dirección antigua. ¿Por qué?
Los navegadores guardan en caché las respuestas 301, a veces durante meses. Prueba en una ventana privada o con curl -I http://example.com, o vuelve a ejecutar el rastreo aquí. Nuestro servidor no guarda ninguna caché entre comprobaciones.