1. 首页
  2. 问答百科
  3. 正文

如何用 robots.txt、noindex 限制搜寻引擎抓网站资料?

  大部分的网站都不需要限制搜寻引擎来爬取、索引资料,但如果有需要限制的时候,应该怎麽做呢?可以使用 robots.txt noindex 这两个语法来限制搜索引擎,robots.txt 负责“限制爬取”,noindex 则负责“限制索引”,限制搜寻引擎基本上跟SEO没有直接关係,但可以调配网站爬取与索引的资讯,让网站的收录内容更趋向一致,间接帮助了网站的SEO优化。

  1、爬取(检索)、索引哪裡不一样?

  “爬取”跟“索引”是搜寻引擎的两个工作阶段,搜寻引擎会先透过检索器来“爬取”网站资料,也是俗称的爬虫程式,爬完网站之后才会把爬到的资料建立“索引”也就是“收录”,而 robots.txt 就是一个告诉搜寻引擎“能不能爬取”的文字档,noindex 则是一个告诉搜寻引擎“能不能收录”的网页语法,这两个设定不能衝突,要彼此配合。

  2、什麽情况下用 robots.txt?

  搜寻引擎不是只有 Google,还有 Yahoo、Bing、Ahrefs、Baidu…,还有数以百千计的搜寻程式,网站如果是上千页的网站,一直被抓取就会佔用网站资源 (流量、CPU、RAM),这时候就可以使用 robots.txt 来限制搜寻引擎来爬网站,网站可以用 robots.txt 选择让哪些引擎可以抓,哪些引擎不能抓,以调节网站负载,再来,如果网站有很多跟排名无关的档案、影片,也不希望被抓取的就可以用拒绝爬取指令节省爬取成本,像是/downloads/、/videos/,千万不要用 robots.txt 来拒绝爬取网站后台,像是 /admin/、/wp-admin/,你不设还好,一设定连骇客都可以透过 robots.txt 查询你的网站后台网址,防止收录应该用 meta robots,而不是 robots.txt。

  3、什麽是“搜寻引擎的爬取成本”?

  搜寻引擎对每个网站都有不同的“网站爬取时间”,并不是公平分配时间爬取,这个时间成本我们称作“搜寻引擎爬取成本”,爬取时间是根据“Sitemap.xml”、“网站规模大小”、“网站权重高低”、“网站连结优化程度”、“连结健康程度”...,根据条件给予不同的爬取时间,希望排除对SEO没帮助的内容被抓取,可以使用 robots.txt 进行排除。

  什麽情况下用 noindex?

  网站有不想被搜寻引擎收录的网页,像是网站后台网址、测试用网址、登入、注册、结帐…,无论是什麽原因,只要不想被搜寻引擎收录,就可以用 noindex 来限制索引(收录),noindex在单一网页撰写在 meta 的语法,需要一页一页去写,也可以用程式以单元方式自动产生,如果有更重要的网页或档案,会建议用密码机制来保护档案,因为设定 noindex 无法保证一定不收录。

  4、robots.txt 与 noindex 使用时机


  5、如何撰写 robots.txt?

  写 robots.txt 之前,必须先认识这五个指令栏位,以及常见的检索器名称,才能依照栏位去撰写 robots.txt 文字档,robots.txt 可以用各种文字编辑进行编辑,像是 Notepad、TextEdit、vi 、emacs、TextEdit、Sublime、Atom、Notepad++、Visual Studio Code...都可以喔。

  6、5个指令栏位介绍

  User-agent:填写“检索器字串”名称

  Allow:允许抓取的“网站内容的路径”

  Disallow:不允许抓取的“网站内容路径”

  Crawl-delay:设定检索器爬取网站的“间隔秒数”

  Sitemap:Sitemap 放置的网址路径 (绝对网址)

  常见搜寻引擎检索器


  常被挡的检索器


  robots.txt 要放在网站的根目录


  8个 robots.txt 范例

 

  范例一: 允许所有的检索器都可以来爬网站

    User-agent: *

  Disallow:

  范例说明:“*” 就是全部检索器,Disallow “空值”代表“不拒绝”就是“允许”的意思,即使没有放上 robots.txt 档案,网站预设就是全部允许,但还是建议放。

  范例二: 拒绝所有检索器来爬取网站资料

  User-agent: *

  Disallow: /

  范例说明:“*” 就是全部检索器,Disallow:“/”代表根目录,所有档案都拒绝的意思。

  范例三: 只允许Google的检索器、Ads来爬取网站资料,其他检索器都拒绝

  User-agent: Googlebot

  User-agent: AdsBot-Google

  Disallow:

  User-agent: *

  Disallow: /

  范例说明:“Googlebot” 就是Google的“检索器名称”,Disallow 空值代表“允许”,“*” 就是全部检索器,“/”则代表全部档案,全部档案都拒绝的意思。

  范例四: 仅拒绝百度检索器来爬网站资料,其他检索器皆允许

  User-agent: Baiduspider

  Disallow: /

  User-agent: *

  Disallow:

  范例说明:“Baiduspider” 就是百度的检索器名称,“/”代表所有档案,所有档案都拒绝的意思,“*” 就是全部检索器,“Disallow: 空值”就是全部都允许的意思。

  范例五:拒绝所有检索器爬网站,只允许 Google 爬取 category 目录。

  User-agent: *

  Disallow: /

  User-agent: Googlebot

  Allow: /category/

  Disallow: /

  范例说明:“*” 就是全部检索器,“/”所有档案,“Googlebot”就是Google的检索器名称,Disallow: / 全部拒绝的意思,Allow: /category/ 允许这个目录名称。

  范例六: 不可以爬取有admin名称网址、case-review.html、download 目录下网址、封锁全部.xls档案

  User-agent: *

  Disallow: */admin/*

  Disallow: /case-review.html

  Disallow: /downloads/*

  Disallow: /*.xls$

  范例说明:“*” 就是全部检索器的意思, “*”也代表任意字元,“*/admin/*”代表有出现admin,* 就是无论出现是什麽字元,“$”代表特殊字串的网址,无论出现哪一种模式。

  范例七: 所有的检索器都以五秒作为抓取网站内容的时间间隔。

  User-agent: *

  Crawl-delay: 5

  范例说明:“*” 就是全部的意思,每5秒抓一次,1000页就是5000秒,5000秒,就是指1.3小时可以抓完1000页,设定抓取时间可以纾缓主机的负载,特别是大型网站。

  范例八: 允许所有检索器来抓网站,告诉索引器 Sitema.xml 档案在哪个位置

  User-agent: *

  Allow: /

  Sitemap: http://www.example.com/sitemap.xml

  范例说明:“*” 就是全部的意思,“/”所有档案,告诉爬虫程式网站的 Sitemap 档案

       放在 

  robots.txt 的6个注意事项

  robots.txt 无法阻挡收录

  robots.txt 虽然限制了 Google 来抓取网站,但如果别人的网站放了你设定限制的连结,一样会被 Google 抓取并收录,所以 robots.txt 是无法限制搜寻引擎收录的,要限制收录要用noindex 而不是用 robots.txt。

  要有网站根目录的上传权限

  robots.txt 档案做好之后,只能传到网站的根目录,放到其他目录都是无效的,只能放在 https://www.domain.com/robots.txt,如果你没有上传根目录的权限,就无法使用 robots.txt ,要请网站设计公司帮忙放置,如果是 Wix、Wordpress 之类的网站,可以透过网站后台去编辑 robots.txt 档案。

  并非所有检索器的语法都一样

  大部分的搜寻引擎都会依照 robots.txt 指令,但不是每一个搜寻引擎都是看得懂 robots.txt 语法,因此要对不同搜寻引擎使用语法,如果只针对知名的进行限制或允许因此要对不同搜寻引擎使用不同语法,如果只针对常见的的几个搜寻引擎,那 robots.txt 基本语法已经很足够了。

  robots.txt 格式有限制

  网站的 robots.txt 只能有一个,而且名称只能是 robots.txt,一字不漏,且只能用小写不能用大写,robots.txt 档案大小限制 500K 以内,只能用 UTF-8 编码的纯文字档案,每行须以 CR、CR/LF 或LF 分隔,撰写完成后可用 robots.txt 测试工具去测试 robots.txt 写法是否正确。

  robots.txt 可以指定多种型态

  robots.txt 不是只有限制抓取网页,还可以限制档案、照片、影片…。

  robots.txt 要避免跟 noindex 衝突

  假设robots.txt 设定了abc.html 不抓取,又在abc.html 中设定不收录 (noindex),这样就会产生衝突,因为 robots.txt 设定abc.html 不抓取,造成 Google 爬虫找不到abc.html 中的不收录 noindex 的语法,如果有别的网站放置这个 abc.html 网址,就会造成收录,这时候只要把 robots.txt 的 abc.html 不抓取的指令移除,就可以化解衝突。

  robots.txt 产生器

  如果你不想打字,可以试试看 robots.txt 的产生器,但记得要移除第一行的“robots.txt generated by www.seoptimer.com”,将产生的 robots.txt 档案放到网站的根目录,再用测试工具测试一下语法的正确性。

  【工具连结:SEOptimer】


  robots.txt 测试工具

  robots.txt 文件做好之后,要上传到网站的根目录,可以用 Google Search Console (GSC) 的 robots.txt 测试工具对文件进行验证,robots.txt 测试工具可以检查指令是不是可以正常运作,如果在 robots.txt 有设定限制某些检索器抓取,测试工具就会显示错误与警告资讯。

  【工具连结:robots.txt 测试工具】

  检查 robots.txt 是不是正确


  如何撰写 noindex?

  noindex 是一个 html 的 meta 中继标记,通常会写在每个网页 html 的 标籤中,所以必须要有编辑网页 的权限,如果没有权限就只能请网页设计公司帮忙设定,如果是 Wix、Wordpress 之类的 CMS 网站,可以从后台修改 中继标记,也可以单元方式用程式自动写入,写 noindex 之前,必须先认识这五个指令栏位。

  noindex 的5个指令栏位

  meta name:检索器名称

  content:内容标籤

  index:允许网页索引(收录)

  noindex:拒绝网页索引(收录)

  follow:允许 Google 爬虫爬这个网页的所有连结

  nofollow:拒绝 Google 爬虫爬这个网页的所有连结

  noindex 是写在网页 html 裡面


  5个 noindex 范例

  范例一: 拒绝所有搜寻引擎收录网页


  范例二:拒绝 Google 检索器收录网页


  范例三:拒绝所有搜寻引擎收录网页,并拒绝爬所有连结


  注:如果是 ,可写成

  范例四:允许所有搜寻引擎收录网页与追踪所有连结


  说明:如果是 ,可写成

  范例五: 拒绝所有检索器追踪网页的所有连结,且拒绝 Google 检索器收录网页


  如何查询被 noindex 的网页?

  可以从 Google Search Console 的“索引”的“网页”单元去看是不是有被 noindex 的网页,这些网页是不是预设要限制收录的网页,如果网址清单没错就不需要变动,如果有设定错误的 noindex,就要将网页的语法移除,并且重新要求索引网页。

  检视 noindex 的网页


  如何移除已经被 Google 收录的网址?

  如果有被收录到不想被收录的资料该怎麽办呢?其他的搜寻引擎就不知道该怎麽移除,但如果是Google的话,在 Search Console 有一个移除网址的功能,可以暂时移除6个月,在这期间可以去设定网页的 noindex 语法,就可以让网页不再被收录。

  Google Search Console 移除网址功能


  结论

  一般网站很少需要去限制搜寻引擎的爬取(检索)、索引(收录),但如果真的有需要就可以使用 robots.txt 跟 noindex 这两个语法来限制搜索引擎,用 robots.txt 设定检索器的“限制爬取”,用 noindex 设定搜寻引擎的“限制收录”,如果想移除 Google 已经收录的网址,可以用 Google Search Console 的移除网址功能将网站移除,但还是要设定 noindex,不然6个月后还是会被 Google 收录,如果不会操作,可以找网页设计公司帮忙操作。

    延伸阅读

  • 如何用 robots.txt、noindex 限制搜寻引擎抓网站资料?

    大部分的网站都不需要限制搜寻引擎来爬取、索引资料,但如果有需要限制的时候,应该怎麽做呢?可以使用robots.txt跟noindex这两个语法来限制搜索引擎,robots.tx...

  • robots.txt文件与robots meta标签的应用

    robots.txt文件是搜索引擎蜘蛛来到网站后访问的第一个文件,我们在编写时有很多需要注意的地方,如果不注意语法的正确使用,有些语句可能发挥不了应有的作用,会影响搜索引擎对网...

  • SEO优化robots.txt文件应该如何使用?

    robots.txt是网站与搜索引擎之间不成文的协议,虽然没有明文去规定,但双方都会遵守这个协议。通过robots.txt文件我们可以限制搜索引擎蜘蛛的抓取轨迹,对seo来说有...

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://lnbdc.com/article/6992.html

(function(){ var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?1d7dde81dc0903e04d3ac0b9599444f6":"https://jspassport.ssl.qhimg.com/11.0.1.js?1d7dde81dc0903e04d3ac0b9599444f6"; document.write('<\/mip-script>'); })(); (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();