今天百度了一下站长帮,发现百度竟然收录了站长帮的CDN域名,这可是SEO大忌。因为同样的内容出现两个域名或多个域名,会被搜索引擎判罚的。基本上所有的搜索引擎都会将多个域名指向同一个页面的结果判定为镜像,被判断为镜像的域名会被降权。
很多WordPress网站用户都会采用CDN,而且CDN域名的回源IP地址与主站是一致的,如果开启了静态缓存,就算用不是WordPress后台设置的站点地址(域名)访问,也是可以访问被缓存了的页面的。因为静态缓存后,前端是不执行PHP的,而是会直接输出HTML。没有开启静态缓存的站点,才会跳转到设置的站点地址。
如上图,可以看到静态资源的CDN域名被百度收录了。
禁止CDN域名中的非静态资源被搜索引擎抓取
用记事本创建一个robots2.txt,加入以下内容,然后上传到网站根目录。
User-agent: * Allow: /robots.txt Allow: /*.png* Allow: /*.jpg* Allow: /*.jpeg* Allow: /*.gif* Allow: /*.bmp* Allow: /*.ico* Allow: /*.js* Allow: /*.css* Allow: /wp-content/ Disallow: /
Nginx重定向robots.txt
当然不能够将主域名的robots.txt改成上面那样,那所有页面都不被搜索引擎抓取了。可以利用Nginx的条件判断,指定将robots.txt重定向到robots2.txt的域名。
if ($http_host !~ "^www.zhanzhangb.com$") { rewrite /robots.txt /robots2.txt last; }
以上就是将非www.zhanzhangb.com的域名下的robots.txt重定向到robots2.txt。
if ($http_host ~ "^cdn.zhanzhangb.com$") { rewrite /robots.txt /robots2.txt last; }
以上是将cdn.zhanzhangb.com的域名下的robots.txt重定向到robots2.txt。
Apache重定向robots.txt
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.zhanzhangb.com [NC] RewriteRule robots.txt robots2.txt [L]
设置完成后,用CDN域名访问一下robots.txt看看是否成功,千万不要将域名对应的robots.txt弄错了,否则会造成重大SEO损失。