Nginx 如何防止域名权重被分散?

一般我们创建的站点中都会将一级域名和www二级域名指向我们的站点,以域名test.com为例,我们访问test.com或www.test.com都能得到我们想要的内容,但时间长了就会发现,可能出现下面几种情况:

1、带www的域名没有排名,而不带www却有排名,或正好相反

2、site:test.com和site:www.test.com的索引量差别巨大

3、若我们网站中添加了统计,会发现一些其他的域名解析到了自己的网站,也就是访问非*.test.com域名,也访问到了test.com的内容

该如何解决上面问题呢?

以上问题的原因就是因为多个域名指向了同一个网站,导致网站在搜索引擎中权重被分散。大家都知道一个高权重网站域名的重要性,最好将多个域名统一301到一个域名,集中权重。

解决方法如下:

1、确定首选域名,首选域是您希望搜索引擎用来将您的网页编入索引的域名。比如:一个站点有两个域名:www.test.com和test.com我们需要从中选择一个主要的进行SEO优化,另外一个进行301跳转。按照国内的习惯,一般会选择www.test.com作为首选域。

以nginx服务器为例,添加以下配置:

server {
    listen       80;
    server_name  test.com www.test.com;
    return       301 https://www.test.com$request_uri;
}

设置301重定向后,百度会将不同域名的权重叠加到目标网址上,将网址变动而造成的损失降到最低

2、站内链接要规范,不要有的地方用了www的有的地方又不带www, 要保证全部使用选定的首选域名

3、在外链建设时,url一样需要规范化。发布外链的锚链接需要和首选域名保持一致

4、对于其他域名指向自己站点问题,在web服务器中进行301跳转到自己的域名,以nginx为例,进行如下配置:

若 www.xxxx.com 恶意 跳转到了 www.test.com 网站

server{
    listen 80 default_server;
    server_name _;
    access_log off;
    return 301 https://www.test.com$request_uri;
}

对于这些恶意解析域名到自己网站上的,对自己危害是很大的,搜索引擎会认为这是两个内容完全相同的网站,属于“抄袭”行为、镜像站,其后果是整个网站的权重分散,在其他条件相同的情况下网页排名下降。可能你的站点的权重就被这个第三方的域名分走了,甚至你的站点会被搜索引擎惩罚。

完整的nginx配置

server
    {
        server_name www.test.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /alidata/www/test.com/public;

        listen 443 ssl;
        ssl_certificate /usr/local/nginx/conf/ssl/test.com/full_chain.pem;
        ssl_certificate_key /usr/local/nginx/conf/ssl/test.com/private.key;

        include rewrite/laravel.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        location ~ [^/]\.php(/|$)
        {
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            fastcgi_param PHP_ADMIN_VALUE   "open_basedir=$document_root/:/alidata/www/test.com/:/tmp/:/proc/";
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /alidata/log/nginx/test.com.log;
    }

    server {
        listen 80;
        server_name test.com www.test.com;
        return 301 https://www.test.com$request_uri;
    }

    server {
        listen 443 ssl;
        server_name test.com;
        ssl_certificate /usr/local/nginx/conf/ssl/test.com/full_chain.pem;
        ssl_certificate_key /usr/local/nginx/conf/ssl/test.com/private.key;
        return 301 https://www.test.com$request_uri;
    }

以上配置相当于将 :

http://test.com

http://www.test.com

https://test.com

都指向了

https://www.test.com

防止了权重的分散

若使用其他务器,配置思路同nginx一样。