Revisando las estadísticas de visitas a Linuxito en Google Analytics, me encontré con la siguiente notificación:

Este mensaje básicamente dice que se están recibiendo estadísticas desde más de un dominio, en este caso "linuxito.com" y "www.linuxito.com", lo cual puede alterar la visualización de datos en los reportes de Analytics. Pero además (peor aún) puede traer problemas de contenido duplicado. Tal como mencioné en mi guía básica para SEO y posicionamiento, y tal como recomienda Google, es conveniente indicar cuál es el dominio "preferido" para nuestro sitio Web a través de una redirección permanente (301).

De acuerdo a la documentación de nginx, la manera correcta de implementar una redirección permanente a un dominio principal, es definiendo un servidor separado para el dominio sin "www" (o viceversa, si el dominio principal es sin "www"). Sin embargo, recuerdo haberlo implementado cuando instalé nginx y estaba funcionando correctamente:


    # Redirigir a http://www.linuxito.com
    server {
        listen 80;
        server_name linuxito.com;
        return 301 http://www.linuxito.com$request_uri;
    }

    # HTTP Server
    server {
        listen 80;
        server_name www.linuxito.com;


        [...]


    }

El problema era que estaba faltando la misma configuración, pero para HTTPS. Es decir, redirigir permanentemente https://linuxito.com a https://www.linuxito.com:


    # Redirigir a https://www.linuxito.com
    server {
        listen 443 ssl;
        server_name linuxito.com;

        ssl_certificate /.../.../certificado.crt;
        ssl_certificate_key /.../.../clave.key;

        ssl_session_cache builtin:1000 shared:SSL:10m;
        ssl_session_timeout 5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
        ssl_prefer_server_ciphers  on;

        return 301 https://www.linuxito.com$request_uri;
    }

    # HTTPS Server
    server {
        listen 443 ssl;
        server_name www.linuxito.com;

        ssl_certificate /.../.../certificado.crt;
        ssl_certificate_key /.../.../clave.key;

        ssl_session_cache builtin:1000 shared:SSL:10m;
        ssl_session_timeout 5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
        ssl_prefer_server_ciphers  on;


        [...]


    }

Cabe destacar que, para que funcione adecuadamente, se debe replicar la configuración de SSL. Pues la conexión SSL debe establecerse correctamente antes de que se procese la solicitud desde los clientes. Además, el certificado SSL debe ser válido para ambos dominios (con y sin "www"), de lo contrario la conexión con los clientes no será de confianza.

El resultado final son cuatro secciones de configuración de servidores diferentes, una para cada protocolo (HTTP y HTTPS), y a su vez una para cada dominio (con y sin "www"). Por último, si se desea que el dominio "preferido" o principal sea sin "www", sólo basta con intercambiar los nombres de dominio en ambas configuraciones (para HTTP y HTTPS).

Referencias

Converting rewrite rules

Search Console Help - Duplicate content


Tal vez pueda interesarte


Compartí este artículo