可能有部分站长用了七牛 CDN 之后,会发现在搜索引擎搜索的结果中缩略图越来越少,甚至消失。。。经过张戈多次思考分析,发现居然是因为使用了七牛 CDN 导致的,本文就简单分享下这个坑。
在此之前,张戈博客曾 2 次分析过网站使用七牛 CDN 之后,静态二级域名 robots 的写法:
确实也是可以了,百度图片收录也正常了。
后来博客换成了 php 缩略图,并通过 Nginx 将缩略图重写成了 x.png?w=480 的形式【相关文章】。
接着,将缩略图全部丢到了二级静态域名 res.zgboke.com 上,最后将静态域名的 robots 设置如下:
User-agent: * Allow: /*.png$ Allow: /*.jpg$ Allow: /*.jpeg$ Allow: /*.gif$ Allow: /*.bmp$ Disallow: /
结果,很久很久之后就发现百度搜索中,缩略图越来越少,甚至到最后几乎没有了。经验告诉我,要么就是蜘蛛抓取不到图片,要么就是被 robots 禁封了。
结合百度站长平台的 robots 工具和抓取诊断工具检查后,发现果然是 robots 误禁封造成的!
百度索引变动一直以慢著称,所以 robots 写错了也不会在十天半个月突显出来,真是坑的一 B!
通过抓取诊断工具,发现普通图片可以抓取,带参数的图片就抓取失败。经过多次测试,发现问题出现在 Allow: /*.png$ 这种写法,是以 png 结尾,尾部不再包含其他任何字符,因此,上文提到的 PHP+Nginx 缩略图形式 x.png?w=480 ,就处在 robots 禁止抓取的范围了:
于是,我将静态域名 robots 修改如下:
User-agent: * Allow: /robots.txt Allow: /wp-content/ Allow: /*.png$ Allow: /*.jpg$ Allow: /*.jpeg$ Allow: /*.gif$ Allow: /*.bmp$ Disallow: /
因为最后一行是禁止所有,所以保守起见,robots.txt 我也加入了允许规则。第二行则是关键,一般博客的缩略图和图片都在 wp-content 路径下,不管是不是带参数,都统统允许了。
所以,发现搜索引擎缩略图收录异常的朋友,可以先分析下是不是蜘蛛被 robots 或其他因素拦截了。
最新补充:启福留言说其实把尾巴的$改成通配符*就好了。确实如此,所以静态域名的 robots 可以修改如下:
User-agent: * Allow: /robots.txt Allow: /*.png* Allow: /*.jpg* Allow: /*.jpeg* Allow: /*.gif* Allow: /*.bmp* Disallow: /
这样就可以让蜘蛛仅抓取图片了,范围比 wp-content 更精准一些。总之,对哪种写法存在疑问,只要借助百度站长平台的 robots 工具检测一下就一清二楚了。
最后强调说明一下,本文说的 robots 是适用于只存放图片等静态文件的二级域名(比如:res.zgboke.com)!别乱用到主站的 robots,被 K 站了别来哭哦!
再次更新:突然想起一件事,记得之前用过谷歌的移动设备适合性测试工具,是需要抓取 css 和 js 的,否则显示出来的布局就是乱的了:
User-agent: * Allow: /robots.txt Allow: /wp-content/ Allow: /*.png* Allow: /*.jpg* Allow: /*.jpeg* Allow: /*.gif* Allow: /*.bmp* Allow: /*.ico* Allow: /*.js* Allow: /*.css* Disallow: /
其中,Allow: /wp-content/ 自己看着办吧,个人建议加上,避免遗漏主题特有静态文件,比如字体。