网站建设

纠正静态文件域名robots写法,解决百度搜索不显示缩略图的问题

Jager · 7月13日 · 2016年 · · 5785次已读

可能有部分站长用了七牛CDN之后,会发现在搜索引擎搜索的结果中缩略图越来越少,甚至消失。。。经过张戈多次思考分析,发现居然是因为使用了七牛CDN导致的,本文就简单分享下这个坑。纠正静态文件域名robots写法,解决百度搜索不显示缩略图的问题

在此之前,张戈博客曾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写法,解决百度搜索不显示缩略图的问题

于是,我将静态域名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或其他因素拦截了。

最新补充:启福留言说其实把尾巴的$改成通配符*就好了。确实如此,所以静态域名的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的,否则显示出来的布局就是乱的了:纠正静态文件域名robots写法,解决百度搜索不显示缩略图的问题而且百度的移动友好度测试工具(目前好像已经隐藏,看不到了)也需要抓取css和js,所以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/ 自己看着办吧,个人建议加上,避免遗漏主题特有静态文件,比如字体。

62 条回应
  1. 我爱动感单车网 2016-7-14 · 0:11

    ❓ 如果博客的robots里,有这么一条Disallow: /wp-content/,是不是搜索引擎就不会去抓取博文中的图片了(因为图片一般都是放在这个目录下的uploads文件夹里)。还望知道的朋友告知一声,谢谢!

    • benen005 2016-7-14 · 8:24

      确实如此

      • Jager 2016-7-14 · 9:03

        正解

        • 我爱动感单车网 2016-7-14 · 12:34

          😉 十分感谢大家的热心解答,让雪儿终于确切明白了这个事儿!

        • 聊聊新媒体 2016-10-4 · 12:07

          但为啥主站robots.txt有这么一条Disallow: /wp-content/,还是会收录呢? 请张哥分析:site:fox-studio.net

  2. 瑾瑜 2016-7-14 · 10:08

    把$换成*不就得了

    • Jager 2016-7-14 · 12:03

      确实。

  3. boke112导航 2016-7-14 · 11:12

    竟然还有这种坑,幸好发现及时,有缩略图显示的搜索结果感觉比较高大上

  4. 我要网赚 2016-7-14 · 20:38

    你的网站很好

  5. 技术宅 2016-7-14 · 21:22

    感谢博主,我就郁闷怎么百度的图片慢慢的都没有了呢,一直在找原因,原来是这个。 🙂

  6. Koolight 2016-7-14 · 22:37

    不知道文章开启图片延迟加载后,对百度收录的缩略图有没有影响。

    • Jager 2016-7-15 · 11:46

      必须有影响

      • Koolight 2016-7-15 · 12:52

        感谢解疑,那看来需要图文并茂的效果还是不开启正文图片延迟加载功能了!

  7. 鸡粪脱水机 2016-7-15 · 11:24

    一般静态文件包含 js,css,图片等,不知道css和js是否需要允许抓取

    • Jager 2016-7-15 · 14:06

      看文章最后一段。

  8. 帅气小琦琦 2016-7-15 · 17:30

    已经使用上了 后续看看有什么问题

  9. 广州律师 2016-7-15 · 21:21

    # robots.txt for statice domain
    User-agent: Baiduspider
    Allow: /wp-content/uploads/*.jpg$
    Allow: /wp-content/uploads/*.png$
    Disallow: /

    User-agent: 360Spider
    Allow: /wp-content/uploads/*.jpg$
    Allow: /wp-content/uploads/*.png$
    Disallow: /

    User-agent: Baiduspider-image
    Allow: /wp-content/uploads/*.jpg$
    Allow: /wp-content/uploads/*.png$
    Disallow: /

    User-agent: 360Spider-Image
    Allow: /wp-content/uploads/*.jpg$
    Allow: /wp-content/uploads/*.png$
    Disallow: /

    User-agent: *
    Disallow: /

    以前这个不用了吗?直接用这个新的就可以了??对不

    • Jager 2016-7-19 · 8:52

      仔细看文章。

  10. 股票发我博客 2016-7-17 · 14:16

    有学了点知识!!!

  11. 漫道 2016-7-18 · 11:36

    好像很久没有来博主这里了哈

  12. 智慧 2016-7-18 · 17:01

    好久没来了

  13. 夏日博客 2016-7-18 · 22:19

    居然在robots里面还可以把图片设置得怎么详细,我一般都是顺其自然,也不知道百度有没有收录到图片之类的,反正都是放开了蜘蛛。

  14. 心系与她 2016-7-19 · 1:03

    谢谢,张哥的干货分享

  15. 过桥米线加盟 2016-7-19 · 12:48

    纠正静态文件域名robots写法,解决百度搜索不显示缩略图的问题,很好

  16. 防静电工作台 2016-7-19 · 13:21

    缩略图跟robots都有关系,我也去试试,百度site出图率很低

  17. 风炫 2016-7-19 · 15:34

    博主厉害,受教了

  18. 导热硅胶片 2016-7-19 · 16:17

    很好,但是像我公司这个网站http://www.cnaok.com怎么弄好呢,请新不会弄。

  19. 卢松松博客 2016-7-19 · 17:57

    学习到了,谢谢分享!

  20. osucn 2016-7-19 · 19:54

    第一次见这种写法 0 0 方便留个爪 http://osucn.org/

  21. wekhb 2016-7-20 · 17:21

    学习了!

  22. 宅导航_小哲 2016-7-21 · 11:31

    讲道理,你这个博客主题很好看

  23. 佳皇地板 2016-7-21 · 15:32

    细草微风岸,危樯独夜舟。

  24. SEO新手学习群:137303464 2016-7-21 · 16:29

    点赞签到成功!签到时间:下午4:28:46,每日签到,生活更精彩哦~

  25. 明月登楼的博客 2016-7-21 · 19:08

    为啥主站不能用呀?我用到主站上了!不会有危险吧!

    • Jager 2016-7-22 · 6:59

      只能用于和七牛类似的二级静态站。

  26. 教你免费申请网站 2016-7-22 · 17:08

    这个robots协议不是给搜索引擎德玛

  27. seo 2016-7-27 · 14:41

    学习了,这对seo很重要

  28. 孟子非博客 2016-7-28 · 12:12

    搜了下还真没有图片显示出来

  29. 卢松松博客 2016-7-28 · 16:31

    原来如此,学习了,谢谢博主

  30. 三相标准源 2016-7-28 · 16:56

    看到代码就有点懵

  31. 松松软文发布 2016-8-5 · 17:20

    博主很强,谢谢分享,学习了。。

  32. 萨龙龙 2016-8-7 · 22:02

    robots文件对于SEO确定很重要,现在的文章在百度中确实没有缩略图,希望这篇文章的解决方法管用。

    • Jager 2016-8-8 · 8:01

      这个规则是给静态二级域名用的,你直接用到主站会被K站,别乱搞。
      当然,要用到主站也可以,把其中的 Disallow: /去掉即可。

      • 萨龙龙 2016-8-8 · 14:09

        嗯,明白。

  33. 松松软文发布 2016-8-11 · 9:00

    博大精深呀。。不错 学习了

  34. 合并单元测试仪 2016-9-5 · 17:46

    我一直在找这个原因,谢谢

  35. 笑傲江湖 2016-9-18 · 10:01

    受教了,难怪百度收录的一个缩略图都没有,那能否直接用你网站上的robots文件?

    • Jager 2016-9-18 · 13:12

      没有单独的图片域名,不能用这个robots

      • 笑傲江湖 2016-9-18 · 14:24

        那用于主站的话,直接把本文最后的那些代码中的disallow:/去掉就可以了是吧

  36. 岁月博客 2016-10-2 · 9:30

    整好需要感谢

  37. 笑傲江湖 2016-10-11 · 16:50

    能否写一个不用静态二级域名的robots写法,非常感谢!!!

  38. 阿乞 2017-5-1 · 22:16

    你最终的那个robots是放在七牛根目录下的吗?如果加速的域名是独立的 一个一级域名,用你这个可以的吗

    • Jager 2017-5-2 · 9:37

      只用于静态文件的域名都可以使用。

  39. JPEG 2017-9-17 · 14:08

    Allow: /*.jepg*
    应该是 JPEG吧

  40. JPEG 2017-9-17 · 14:11

    问下几个网站 每个收录几百页面 360收录 也都不出图,这ROBOTS文件 现在还需要改进吗?

  41. 音速灰行的起子 2017-10-13 · 22:54

    😀 滑稽,然而站内最近的图片从破片变没图空位td了,这是没fix吗,还是百度的新东西,或者全站https的副作用?
    话说评论框怎么用定制的?笔记站,不想用畅言,站长用什么社交233

  42. haka 2017-10-26 · 15:07

    大牛,本来网站的动态和静态内容都是放在一起,后来我把静态资源单独放到另一个二级域名下了,只是和动态主站公用一个网站根目录。这种情况,静态资源的robots.txt怎么放啊?