正文:
一般情况下,我们会将一级域名和 www 二级域名都指向我们的网站。以域名 test.com 为例,无论是访问 test.com 还是 www.test.com,都可以得到我们想要的内容。然而,随着时间的推移,可能会出现以下几种情况:
1、带有 www 的域名没有排名,而不带 www 的域名却有排名,或者正好相反。
2、site:test.com 和 site:www.test.com 的索引量差别很大。
3、如果我们在网站中添加了统计功能,可能会发现一些其他的域名解析到了我们的网站,即访问非*.test.com 域名也能访问到 test.com 的内容。
那么,如何解决上述问题呢?以上问题的原因是因为多个域名都指向了同一个网站,导致网站在搜索引擎中的权重被分散。大家都知道,一个高权重的网站域名非常重要,最好将多个域名都统一重定向到一个域名上,集中权重。
解决方法如下:
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 重定向后,百度会将不同域名的权重叠加到目标网址上,以降低因网址变动而造成的损失。
为了规范站内链接,应确保所有地方都使用选定的首选域名,不要有的地方用了 www,而有的地方又不带 www。
在进行外链建设时,需要对 URL 进行规范化。发布外链的锚链接应与首选域名保持一致。
对于其他域名指向自己站点的问题,可以通过在 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://www.test.com
https://test.com
都指向了
https://www.test.com
防止了权重的分散
若使用其他务器,配置思路同 nginx 一样。
转载请注明:汇站网 » 如何防止 nginx 中的域名权重被分散?