一般我们创建的站点中都会将一级域名和 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;
}
对于这些恶意解析域名到自己网站上的,对自己危害是很大的,搜索引擎会认为这是两个内容完全相同的网站,属于“抄袭”行为、镜像站,其后果是整个网站的权重分散,在其他条件相同的情况下网页排名下降。可能你的站点的权重就被这个第三方的域名分走了,甚至你的站点会被搜索引擎惩罚。
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;
}
以上配置相当于将 :
都指向了
防止了权重的分散
若使用其他务器,配置思路同nginx一样。