robots.txt生成器怎么用?预设别照抄,通配符判定会和规范打架

张文保 28 分钟阅读 1,442 阅读
本文目录
  1. 这个robots.txt生成器到底替你做了什么?
  2. 为什么生成器和验证器必须连起来用?
  3. 六个预设模板里,哪几个不能直接抄?
  4. 填了“全局Crawl-delay”为什么文件里没有?
  5. 规则漏填一个路径会发生什么?
  6. 验证器能查出哪些问题,又漏掉哪些?
  7. 验证器抓不到别人家的文件时该怎么办?
  8. URL路径测试的判定什么时候会和Google相反?
  9. 这张爬虫名单在AI时代还缺什么?
  10. 哪些事本来就不该指望robots.txt来办?
  11. 改robots.txt的完整流程该怎么走?
  12. 常见问题解答
  13. 生成器输出的内容可以直接传到线上吗?
  14. 为什么在“Crawl-delay全局”里填了值,生成的文件里没有?
  15. URL路径测试的结果可信吗?
  16. 预设模板可以照抄吗?
  17. 验证器说我的文件有一堆“缺少冒号”错误,是怎么回事?
  18. 被Disallow的页面就不会出现在搜索结果里了吗?
  19. 改完robots.txt多久生效?
  20. 权威参考资料
摘要:这款robots.txt生成器实际是两个独立的东西拼在一起——左边的生成器负责把表单拼成文本,一个字都不校验;右边的验证器负责挑错,但看不见文件的HTTP状态。所以正确用法是生成完立刻点“发送到验证器”再跑一遍,而不是复制就传。我们团队实测出三处必须知道的行为:填在“全局Crawl-delay”里的数字根本不会进入输出文件;规则里漏填路径会静默生成空的 Disallow,把“屏蔽”翻转成“允许全部”;URL路径测试器在通配符规则和Allow规则打架时,判定结论会和RFC 9309的规范相反。预设模板同样不能照抄,WordPress那套会屏蔽插件目录,和“别拦CSS与JS”的常识自相矛盾。

robots.txt是全站唯一一个“写错一行、全站消失”的文件。它只有几百字节,没有语法高亮,没有编译器报错,传上去之前谁也不会拦你。正因为这样,线上才会有那么多站长在某个周一早上发现流量归零,翻了三天最后在根目录里找到一行多打的斜杠。

生成器这类工具就是冲着这个痛点来的:把手写变成点选,把记忆变成表单。但工具能替你规避的只是“打字打错”,替不了“想错了”。这篇把这款生成器的每个开关拆开讲清楚,包括它做得对的地方、它虚标的地方,以及几处我们团队实测出来、页面上完全没有提示的行为。

这个robots.txt生成器到底替你做了什么?

先把架构说明白,后面所有的坑都从这里长出来。这个页面顶部有两个标签,“生成器”和“验证器”,它们是两套完全独立的代码,共享的只有一个“发送到验证器”的按钮。

生成器这一侧是纯粹的字符串拼接。你在界面上添加的每一个User-agent规则组、每一条Allow或Disallow、每一个Sitemap地址,最后都只是被按顺序拼成一行行文本。没有语法检查,没有路径合法性判断,没有冲突检测。你填什么它输出什么,一个字都不会替你把关。

验证器这一侧才是有智力的部分。它把文本按行拆开,逐行识别指令类型,统计规则条数,标出错误和警告,还能测试某个路径对某个爬虫是放行还是拦截。这部分的解析逻辑写得相当扎实,识别得出行内注释、缺冒号的语法错误、路径没以斜杠开头、Sitemap写了相对地址这些常见问题。

整个页面只有一处需要联网:验证器的“输入网址”模式。浏览器自己抓不了别人域名的文件,所以这一步会把域名发到后端,由服务器代抓robots.txt再把内容送回前端解析。抓取时先伪装成Googlebot试一次,被拒了再换成普通Chrome的身份重试一次。除此之外的所有操作——生成、解析、路径测试——都在你自己的浏览器里跑完,内容不出本机。

把这个结构记住,你就能理解这款工具真正的定位:它是一台组装机加一台质检仪,而不是一个“帮你想清楚该屏蔽什么”的顾问。该屏蔽哪些目录、要不要拦AI爬虫、分页要不要放行,这些判断它一个都不替你做。想先补齐这层判断,可以看看 robots协议的完整机制拆解,那篇讲的是规则本身怎么起作用。

为什么生成器和验证器必须连起来用?

这是这款工具最重要、也最没被说清楚的一条使用方法。

因为生成器零校验,你在表单里犯的任何错误都会原样进入输出。路径忘了写开头的斜杠,它照拼;Sitemap填了相对地址,它照拼;User-agent名字拼成了Googlbot,它也照拼。这些错误在生成的那一刻全是隐形的——文本看上去整整齐齐,像模像样。

而这些错误恰恰全都在验证器的检测范围内。路径没以斜杠开头会被标红为错误并给出改法,Sitemap不是绝对地址会被标红,未知指令会被标成警告。也就是说,工具有能力抓住这些错,只是这个能力被放在了另一个标签页里,默认不会自动执行。

所以正确的动作顺序是:生成完,先别急着复制,点输出框右上角那个“发送到验证器”,它会自动切到验证标签并把内容贴进粘贴框,再点一次“验证”。这一步只多花五秒,但它把工具从“照打不误的打字机”变成了“带质检的流水线”。

说得再直白一点:这款工具的生成器一侧,价值主要在于帮你回忆起该有哪些指令、格式长什么样;真正替你兜底的是验证器。只用左边不用右边,等于买了台带质检工位的机器却绕着质检走。

动作生成器会做验证器会做
路径没以斜杠开头原样输出标为错误并给出改法
Sitemap写成相对地址原样输出标为错误
写了非标准指令原样输出标为警告
整站被 Disallow: / 拦死原样输出标为警告并提示后果
完全没写Sitemap不提示标为警告

六个预设模板里,哪几个不能直接抄?

预设是这类工具最讨喜的功能,点一下就有一份看着很专业的配置。也正因为讨喜,它最容易被原样传到线上。这六个预设的质量参差不齐,得分开说。

“允许全部”和“屏蔽全部”这两个没有争议。前者生成一条空的 Disallow,这确实是“放行一切”的标准写法;后者生成 Disallow: /,并且很懂事地不给你配Sitemap——毕竟整站都不让抓了,再声明站点地图就精神分裂了。这两个可以放心用。

“标准配置”屏蔽了后台、私有目录和临时目录,最后补了一条 Allow: /。这条Allow其实是多余的:按最长匹配的规则,/admin/x 会同时命中 Disallow: /admin/Allow: /,前者路径更长所以生效,屏蔽依然成立。多余但无害,看着别慌。

真正需要警惕的是WordPress那一套。它里面有一条 Disallow: /wp-content/plugins/,会把插件目录整个拦住——而插件目录里装着大量前端要用的CSS和JS。搜索引擎渲染页面时拿不到这些资源,看到的可能是一个排版崩掉的半成品。有意思的是,这个工具自己的使用说明里白纸黑字写着“避免屏蔽CSS与JS文件,Google需要渲染页面来理解内容”,结果自家预设先违反了这一条。

同一套预设里还有 Disallow: /page/,屏蔽的是分页列表。分页是深层文章最主要的抓取通道,一刀切掉之后,那些沉在第五页第六页的老文章就少了一条被发现的路。这个做法在特定站点上讲得通,但绝不该是默认值。

“电商网站”预设屏蔽购物车、结算页、订单页这些,方向是对的,这类页面本来就没有被收录的价值。但它后面跟着的 Disallow: /*?sort= 之类的参数屏蔽要想清楚:拦住抓取并不等于不被索引,被拦的地址照样可能凭外链进搜索结果,只是显示不出描述而已。这个区别是robots.txt最经典的误解,robots.txt和meta robots的分工那篇讲得更细。

“SPA应用”预设最需要停下来想一秒:它默认追加了两个规则组,把GPTBot和CCBot整站拦死。这不是技术默认值,这是一个商业判断——要不要让自己的内容进入大模型的训练语料,是每家自己的战略选择。工具替你预设了“不给”,你至少得知道自己点了什么。

最后一个所有预设的通病:Sitemap地址一律写死成 https://example.com/sitemap.xml。忘了改就上线,等于在自己的robots.txt里郑重其事地向搜索引擎推荐了一个不存在的域名的站点地图。这种错误不会报错、不会掉排名,只会安静地什么都不发生,所以特别难发现。

填了“全局Crawl-delay”为什么文件里没有?

这是我们团队实测出来的第一个确凿问题,页面上没有任何提示。

生成器的Sitemap面板下面有两个输入框,一个叫Host,一个叫“Crawl-delay全局”,下面还配了说明文字“部分爬虫支持,控制抓取间隔”。看着是个正经功能。

实测的做法很简单:选“标准配置”预设,在Host里填 example.com,在“Crawl-delay全局”里填10,然后点生成。输出结果是这样的——User-agent组、三条Disallow、一条Allow、一条Sitemap,最后一行 Host: example.com。Host好端端地出现了,Crawl-delay那一行完全不存在

翻代码能看到原因:生成函数里确实把这个输入框的值读进了一个变量,读完之后就再也没被用过,拼接文本时只处理了Sitemap和Host。这是一段典型的死代码,功能做了一半停在半路。

影响有多大?取决于你有多信它。如果你是因为服务器被爬得喘不过气才特地来设这个值的,那你会带着“我已经限速了”的错觉离开,而文件里其实一个字都没加。真要设Crawl-delay,得用每个User-agent规则组内部的那个Crawl-delay输入框,那个是有效的,会正确输出在对应规则组的末尾。

顺带说一句这个指令本身的处境:Google明确不理会Crawl-delay,要控制Google的抓取速率得去Search Console里调;Bing和Yandex会遵守。所以就算这个框修好了,它也管不住你最在意的那个爬虫。这大概是全篇最哭笑不得的一处——一个坏掉的开关,控制着一个对主流搜索引擎本来就无效的指令。

规则漏填一个路径会发生什么?

第二个实测出来的静默陷阱,比上一个危险得多。

场景很日常:你在一个规则组里加了两条规则,第一条填了 /admin/,第二条点了“添加规则”之后被别的事打断,路径框空着就去点了生成。

输出是 User-agent: *,然后 Disallow: /admin/,然后 Disallow: ——一条冒号后面什么都没有的空指令。

问题在于,空的 Disallow 在协议里不是“无效行”,它有明确且强烈的语义:等同于允许抓取一切。它是“完全放行”的标准写法。所以你以为自己只是漏填了一格,实际输出的是一条语义完全相反的指令。

好消息是这条并不会覆盖掉前面的 Disallow: /admin/,后台目录依然拦得住,不至于酿成大祸。真正的风险在心理层面:你打算屏蔽的那个目录,因为空着,从头到尾没被屏蔽,而界面上、输出里都没有一丝一毫的提示告诉你“这里空了”。生成器不校验,前面说过了。

这也再一次说明为什么必须走验证器:把这段内容送进验证器,它会明明白白告诉你“Disallow空值——等同于允许抓取所有页面”。同一个工具,右边的标签页能救左边的命。

验证器能查出哪些问题,又漏掉哪些?

先说它做得好的。逐行解析这块是实打实的:注释行、空行、行内注释剥离处理得都对;缺冒号的行会被明确标成语法错误;路径不以斜杠开头会被抓出来;Sitemap不是绝对地址会被抓出来;Disallow: / 配上通配符User-agent会被特别标成警告,并附一句“这将使网站从搜索结果中完全消失”。文件超过500 KiB也会提醒,这个阈值和Google的解析上限、RFC 9309要求的最低解析量都对得上。

它认得出二十来种爬虫标识,从Googlebot、Baiduspider这些老面孔到GPTBot、CCBot这些新面孔,还包括AhrefsBot、SemrushBot这类第三方SEO工具的爬虫。验证的时候会把爬虫名翻译成人话,这对不熟悉标识的人挺友好。

接下来是它漏掉的,而且漏掉的恰恰是杀伤力最大的那一类。

它完全不关心这个文件的HTTP状态。后端抓取时其实拿到了状态码,也一路传回了前端,但渲染结果的那段代码从头到尾没用过这个值。这意味着:文件返回404、被302跳到了别处、或者服务器在闹5xx,验证结果里都看不到任何相关信息。而这几种状态的后果天差地别——按RFC 9309,4xx意味着爬虫可以随便抓;而按 Google对robots.txt状态码的处理说明,5xx会让Google在最长30天里继续沿用上一份能用的旧文件。

更常见的一种翻车是根目录的404页返回了200状态码的HTML。这时抓回来的是一整页网页代码。我们团队试了一下把这种HTML丢进验证器,它给出的是:错误5个、警告2个,逐行结果清一色是“语法错误:缺少冒号”。从头到尾没有一句话提示你“这压根不是一个robots.txt文件”。要靠一堆缺冒号的报错自己反推出真相,对新手来说门槛不低。

另一个会让人虚惊的是“未知指令”警告。它只认六个指令,别的一律标警告。可现实中的robots.txt里,Yandex的 Clean-param、老站遗留的 Request-rate 都算合法存在,它们会被一并算进警告数。所以警告数字偏高不代表文件有病,得点开逐条看。

还有一条它没查、说明里却写了的:那份使用说明主张“每个User-agent块之间应有空行分隔”。按RFC 9309的定义,一个规则组由一行或多行User-agent开头、后面跟着规则,组的结束条件是下一行User-agent或者文件结尾——空行并不是分组的必要条件。这条属于流传很广但并不准确的民间说法。

验证器抓不到别人家的文件时该怎么办?

验证器的“输入网址”模式是全站唯一需要联网的功能,它的工作方式值得单独说一下,因为抓失败的场景比想象中多。

浏览器有同源策略,你的页面没法直接去读另一个域名下的文件。所以这一步走的是服务器代抓:你输入域名,后端替你去请求那个域名的 /robots.txt,把内容取回来再交给前端解析。你输入的如果不是完整的文件地址,它会自动帮你补成根目录下的标准路径,填 example.com 和填完整地址是一样的效果。

抓取用了两套身份,先后试。第一次把自己伪装成Googlebot,因为不少站点对搜索引擎爬虫格外客气;如果被拒(返回403或者429),会稍等一下换成普通Chrome浏览器的身份再试一次。这个设计挺聪明,能绕开一部分只挡机器人的简单防护。

抓不到的常见原因有这么几类:站点用了较严的CDN防护规则,认出请求不是真人直接拦;文件在需要登录才能访问的环境里;测试站在内网或者用了自签证书;还有就是对方压根没有这个文件。返回404时工具会明确告诉你“该网站没有robots.txt文件”,并且顺带解释这意味着搜索引擎可以抓取所有页面——这句解释是对的,也确实是很多人不知道的常识。

有一处行为需要留个心眼:代抓时会自动跟随跳转,最多跟八跳。也就是说如果对方的robots.txt被重定向到了别处,你最终看到的是跳转终点的内容,而界面上不会显示中间跳过几次、跳去了哪里。这在排查时可能误导你——你以为在看A站的规则,其实看的是跳转之后B站的规则。而Google的处理方式还不一样,它只跟五跳,超了就当这个文件是404。

抓不动的时候不用纠结,切到“粘贴内容”模式就行。自己用浏览器打开那个地址,全选复制粘进去,后面所有的解析、统计、路径测试功能完全一样——它们本来就都是在你的浏览器里跑的,只有取文件这一步需要服务器帮忙。真要说的话,粘贴模式反而更可靠:你看到什么就验什么,中间没有任何代理环节。

顺带提一个正当用法:抓竞品的robots.txt看他们屏蔽了什么,是公开信息,也是一种成本极低的情报。对方屏蔽的路径往往泄露了站点的目录结构和他们认为不值得被收录的东西。看到同行把某类筛选页全屏了,多半说明他们在那上面吃过重复内容的亏。

URL路径测试的判定什么时候会和Google相反?

这是全篇技术含量最高的一处,也是最该记住的一处。

验证完之后页面下方有个“URL路径测试”,填一个爬虫名和一个路径,告诉你放行还是拦截。这个功能对于验证复杂规则非常有用,但它的判定算法和规范有一处关键偏差。

多条规则同时命中一个路径时,该听谁的?RFC 9309对最具体匹配的定义说得很干脆:必须采用最具体的匹配,而最具体指的是字节数最多的那一条。Google自己的文档表述一致,按规则路径的长度取最具体的那条。

这款工具也按长度比,但它在比之前先把 *$ 这两个通配符字符从长度里剔掉了。绝大多数时候这没影响,可一旦通配符规则和普通规则打架,结论就会翻。

我们团队用这段规则实测:User-agent: *Disallow: /*.pdf$Allow: /docs/,测试路径 /docs/report.pdf。工具的回答是允许抓取,匹配规则Allow那条。而按规范算,屏蔽那条有7个字节、放行那条只有6个,最具体的应该是屏蔽那条。同一份规则,工具说能抓,规范说不能抓。

公平地说,它另一处判定是对的:两条规则长度相同时,它让Allow胜出,这和Google“冲突时取限制最少的那条”完全一致。所以问题不在思路,在那一行剔通配符的写法。

另一个更容易踩到的坑是输入格式。测试框要的是路径,不是完整网址。我们团队试着把 https://example.com/docs/report.pdf 整个粘进去,工具在前面补了个斜杠变成 /https://example.com/docs/report.pdf,然后一本正经地判定“禁止抓取,匹配 /*.pdf$”。它不会告诉你输入格式错了,只会给你一个煞有介事的错误答案——这比直接报错难发现得多。

结论怎么用:规则里没有通配符时,这个测试器的判定可以信;一旦出现 *$ 和Allow规则搅在一起,把它的结果当成参考而不是结论,去Search Console的robots.txt报告里复核一遍。毕竟最终按哪套算法执行的是Google,不是我们。

这张爬虫名单在AI时代还缺什么?

工具内置的爬虫对照表里有一行是 Claude-Web,注解写着Anthropic的爬虫。这个标识已经过时了。

Anthropic说明自家爬虫与屏蔽方式的官方条目里列的是三个:ClaudeBot 负责收集可能用于模型训练的网页内容,Claude-User 用于用户提问时的实时访问,Claude-SearchBot 用于改进搜索结果质量。Claude-Web 已经不在这份名单上。

这个变化对写规则的人是实质性的。过去拦AI爬虫是一个笼统的开关,现在是三个可以分开的开关,对应三种完全不同的诉求:不想让内容进训练语料,但希望用户问到相关问题时自己的站能被读到并引用——这在今天是很多内容站的真实立场。用一条规则把三个全拦了,等于把“不进训练集”和“不进答案”一起放弃了。

同样缺席的还有几个主流标识:控制内容是否用于Google生成式产品的 Google-Extended,以及Perplexity的爬虫。名单是一份会过期的资产,工具里那张表可以当入门参考,真要动手拦之前还是得去各家的官方文档核对当期名称。

爬虫标识用途工具内置名单
ClaudeBot收集可能用于模型训练的网页内容缺,表里仍是已过时的 Claude-Web
Claude-User用户向Claude提问时的实时访问
Claude-SearchBot改进搜索结果质量
Google-Extended控制内容是否用于Google的生成式产品
GPTBotOpenAI抓取网页用于模型训练
CCBotCommon Crawl的公开语料抓取

这张表的用法不是照抄,而是提醒你在写规则前先分清楚三件不同的事:内容要不要进训练语料、要不要在用户实时提问时被读到、要不要进AI产品的搜索索引。过去这三件事只能用一条规则一起决定,现在至少在部分厂商那里可以分开表态。对靠内容获客的站来说,全拦和全放之间那片中间地带,才是真正该花时间想的。

另外提醒一句:拦不拦AI爬虫这件事没有标准答案,也没有“业界最佳实践”可抄。做资讯和教程的站,被AI引用可能是新的流量来源;做付费数据和深度报告的站,被白嫖走的就是全部生意。先想清楚自己靠什么挣钱,再决定这几行怎么写。想把拦截策略想透,拦AI爬虫的三层选型框架那篇给的是决策思路,不只是名单。

还有个绕不开的前提:robots.txt全程靠自觉。它是一份公开张贴的告示,守规矩的爬虫会读会遵守,不守规矩的连看都不看。真要拦住铁了心要抓的,得靠服务器层面的手段。指望一份文本文件挡住所有人,等于在自家院子门口插块“请勿入内”的牌子然后就去睡觉。

哪些事本来就不该指望robots.txt来办?

工具能帮你把规则写对,但写对的前提是这件事该由它来做。有四类需求经常被塞进这个文件,塞进去的结果从无效到帮倒忙都有。

第一类是藏东西。把后台路径、备份目录、内部接口写进 Disallow,想的是“不让搜索引擎看见”。但这个文件是公开的,任何人访问你的域名加上文件名都能读到全文。你等于在门口贴了张告示,上面详细列出了自己所有不想让人看的地方在哪。真要保护,靠的是权限验证和访问控制,不是一份公开的君子协定。

第二类是让已经收录的页面消失。这是最容易帮倒忙的一种:页面已经在搜索结果里了,你急着加一条Disallow想让它下去。结果恰恰相反——爬虫从此不再访问这个页面,也就永远读不到你后来加上的noindex标记,那条结果反而卡在搜索结果里下不来。正确顺序是先让noindex生效、确认页面掉出索引,再决定要不要屏蔽抓取。屏蔽抓取和阻止索引是两件事,顺序反了会把自己锁死。

第三类是防采集、防恶意爬虫。这份文件从始至终没有强制力,遵不遵守全凭对方自觉。正规搜索引擎会守规矩,铁了心要扒你内容的脚本连读都不会读。想真拦住,得在服务器或者防护层面按请求特征来处理,那是另一套工程。

第四类是把它当成抓取预算的总开关。屏蔽掉大量低价值路径确实能让爬虫把力气花在正经页面上,这个逻辑成立,但它只是众多杠杆里的一个。站点响应速度、内链结构、重复内容的比例、站点地图的质量,每一项的影响都不比它小。指望改几行文本换来收录量翻倍,多半要失望。

说回工具本身:以上这四类判断,生成器和验证器都不会替你把关。你写 Disallow: /backup-2026/,工具只会告诉你这条语法正确、路径合法、格式规范——它不会问你一句“你确定要把备份目录名公开写出来吗”。这是所有配置类工具的共同边界,它管对不对,不管该不该。

改robots.txt的完整流程该怎么走?

把上面所有的坑串成一条能落地的动线,顺序很重要。

动手之前先存一份现状。直接在浏览器里打开自己域名的 /robots.txt,全选复制存成一个带日期的文本文件。这一步花不了十秒,但它是唯一能让你在改错之后立刻退回去的东西。robots.txt没有版本历史,覆盖了就是覆盖了。

然后是生成。用预设起个头,但把每一条都过一遍:插件目录那条要不要留,分页那条要不要留,AI爬虫那几条符不符合自己的立场,Sitemap地址改成自己的了没有。预设是草稿不是成品。

生成完立刻点“发送到验证器”,跑一次完整验证。重点看错误数是不是零;警告数不用追求零,但每一条都要点开确认是“知道且接受”,而不是“没看懂就放过”。

接着用路径测试器做定向抽查。挑三类地址各测一个:一个你确定要屏蔽的、一个你确定要放行的、一个规则边界上最容易出歧义的。第三类最有价值,比如同时命中通配符和Allow的那种。测出来的结论如果涉及通配符,记得按前面说的打个问号。

如果这次改动波及的是一整批页面,光测三个路径不够踏实,得挨个打开看真实渲染结果。这种“一列地址挨个过一遍”的活可以交给网址批量打开工具的实测与避坑那篇里讲的做法,把GSC导出的地址一批批开出来用眼睛扫。

传上去之后还有两件事。一是用浏览器无痕窗口直接访问自己的 /robots.txt,确认返回的是纯文本、内容是新的、状态是正常的——这一步补的正是验证器不看状态码的那个盲区。二是去Search Console看robots.txt报告,那里能看到Google实际抓到的是哪一版、什么时候抓的。改动通常几小时到几天生效,不必刷。

改完之后还值得再抽查一遍老规则。robots.txt这个文件有个特点:它只增不减,每任站长都往里加两行,没人敢删别人加的。几年下来一堆没人说得清用途的规则堆在里面,其中往往就藏着当年为了临时应急加的、早该撤掉的那条。趁着这次改动,把每一行都问一遍“这条现在还需要吗”,删掉的比加上的更有价值。

最后一件事是很多人不做的:把这次改了什么、为什么改,记一行在自己的运维笔记里。半年后有人问“这条 Disallow: /search/ 是谁加的”,这一行能省下一下午。

我们团队去年帮一个做出海乐器配件的独立站做技术体检时,就撞上过这类无头案。站点有小半年新品页进不了索引,查来查去发现根目录那份文件里有一条屏蔽了带参数的筛选路径,而他们的新品页恰好挂在同一套参数结构下。没人记得那条是什么时候加的、为什么加。改回来之后,新品的收录在两周内恢复了正常节奏。整件事的技术含量约等于零,成本却是小半年的新品曝光。

🔧 动手试试:robots.txt生成器/验证器——按表单点选生成规则,再一键送进验证器逐行挑错,还能测某个路径对指定爬虫是放行还是拦截。保哥自研免费在线工具,浏览器打开就能用。→ 打开robots.txt生成器/验证器

常见问题解答

生成器输出的内容可以直接传到线上吗?

不建议。生成器一侧不做任何校验,你填错什么它就输出什么。正确做法是生成后点“发送到验证器”再跑一次验证,确认错误数为零、警告逐条看过,再复制上传。整个过程多花不到十秒。

为什么在“Crawl-delay全局”里填了值,生成的文件里没有?

这是工具的一个功能缺陷。生成逻辑读取了这个输入框的值但从未使用它,属于做了一半的死代码。要设置抓取间隔,请用每个User-agent规则组内部的那个Crawl-delay输入框,那个能正常输出。另外要知道Google本来就不遵守这个指令,只有Bing和Yandex会遵守。

URL路径测试的结果可信吗?

规则里不含通配符时可信。一旦出现 *$ 且和Allow规则同时命中同一路径,它的判定可能和规范相反——因为它在比较规则长度时把通配符字符剔除了,而RFC 9309要求按字节数最多的那条算。这种情况请以Search Console的robots.txt报告为准。

预设模板可以照抄吗?

“允许全部”和“屏蔽全部”可以。其余四个都需要逐条审:WordPress预设会屏蔽插件目录,可能挡住渲染需要的CSS与JS,还屏蔽了分页;SPA预设默认拦截GPTBot和CCBot,这是商业判断不是技术默认;所有预设的Sitemap地址都写死成示例域名,必须改成自己的。

验证器说我的文件有一堆“缺少冒号”错误,是怎么回事?

大概率你的robots.txt根本没返回纯文本,而是返回了一整页HTML——常见于根目录404页返回200状态码,或者文件被重定向到了别处。验证器不检查HTTP状态,只能逐行报语法错。先用浏览器直接访问自己的 /robots.txt 确认返回的是什么。

被Disallow的页面就不会出现在搜索结果里了吗?

不是。Disallow拦的是抓取,不是索引。被拦的地址如果有外链指向,依然可能出现在搜索结果里,只是搜索引擎读不到内容,所以显示不出描述。真要让页面不进索引,得用noindex,而noindex要能被读到,前提是这个页面没有被robots.txt拦住。

改完robots.txt多久生效?

通常几小时到几天,取决于搜索引擎重新抓取的节奏。可以在Search Console的robots.txt报告里看到Google实际抓到的版本和抓取时间。不必反复提交,也不必频繁刷新,改完确认文件本身能正常访问才是关键。

权威参考资料

分享到
标签
版权声明

本文标题:《robots.txt生成器怎么用?预设别照抄,通配符判定会和规范打架》

本文链接:https://zhangwenbao.com/robots-generator-preset-validator-wildcard-match-guide.html

版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交