如何生成 robots.txt 文件来设置搜索引擎抓取规则
填写 User-agent、访问方式以及需要的路径、Sitemap 和 Crawl-delay 内容,就能生成 robots.txt 文本。生成后请逐行核对各项内容,再按网站安排处理结果。
开始前确认规则目标
robots.txt 是用于表达搜索引擎抓取规则的文本。这个工具适合在你需要指定 User-agent、选择访问方式、列出禁止路径,或补充 Sitemap 与 Crawl-Delay 内容时使用。开始填写前,先确定规则面向哪个爬虫,以及你希望结果呈现允许访问还是禁止访问的路径。生成内容会按照输入组合出相应文本,因此先明确目标,能让后续逐行检查更有针对性。需要注意的是,工具生成的是文本内容;看到某条指令出现在结果中,不等于相关抓取或索引结果已经确定。你还应结合网站本身的安排,判断这些文字是否符合想表达的规则。本文使用简体中文说明常见输入之间的关系,重点放在空白内容、默认值和可选行的变化上。这样处理后,你能更容易分辨是输入没有生效,还是某一行本来就不会出现。与此同时,也不要把输入框中的站点地图文本或延迟文本当成已经经过语义判断的配置。不需要在路径示例中加入额外说明,先观察工具如何保留有效内容。
按字段组合规则文本
- 在 User-agent 输入框中填写目标爬虫标识。如果暂时不填写,工具会采用默认值
*;生成文本的开头会出现包含该值的 User-agent 行。 - 查看允许全部访问设置。该设置默认开启,保持开启时,结果会加入一条空的
Disallow指令。这里的空指令是由当前选择产生的结果,不需要另行填写路径。 - 如需关闭允许全部访问,请在禁止路径输入框中按行填写路径。工具会去除每行首尾空白,并忽略空行;每个处理后仍有内容的行都会形成一条
Disallow指令。若没有任何可用路径,结果会使用/作为禁止路径。 - 如需加入 Sitemap,在对应输入框中填写内容。只要其中含有非空白字符,结果就会增加一个空行和一条使用该内容的 Sitemap 行。需要添加抓取延迟时,在 Crawl-delay 输入框中填写相应文本;含有非空白字符后,结果会增加一条使用该内容的 Crawl-Delay 行。
- 生成文本后,从上到下检查 User-agent、Disallow、Sitemap 和 Crawl-Delay 行,特别留意路径是否因空行或首尾空白处理而改变。确认文字符合你的设想后,再按自己的网站安排使用这份文本。
阅读行结构与适用边界
先检查开头的 User-agent 行。User-agent 留空时出现 * 是默认行为;如果输入了其他值,生成行会使用你提供的值。接着根据允许全部访问的选择理解 Disallow:设置保持开启时,空的 Disallow 指令属于预期结构,不表示结果缺少内容;设置关闭后,逐行填写的有效路径会分别出现。若关闭设置却没有可用路径,看到 / 表示工具采用了禁止根路径的后备内容。
Sitemap 与 Crawl-Delay 不是固定行。只有相应输入含有非空白字符时,结果才会加入对应内容,其中 Sitemap 前还会出现一个空行。查看这些行时,应把它们当作对所填文本的呈现,不要据此认为网址、数字或其他语义已经得到判断。生成结果也只是规则文本本身,不能仅凭文本中的指令断定爬虫必然执行这些规则,或断定抓取、索引会达到某种结果。最后,将每个输入值与自己的规则目标逐项对照,避免把默认值误认为手动填写的内容。
使用示例
某网站管理员需要面向默认爬虫生成保留访问设置并带有站点地图提示的 robots.txt 文本。
在 User-agent 输入框留空,保留允许全部访问设置,在 Sitemap 输入框填写“站点地图地址文本”,然后生成文本并查看这些行的排列结构。
结果开头会出现包含 * 的 User-agent 行,随后出现空的 Disallow 指令;由于 Sitemap 输入含有“站点地图地址文本”,后面还会出现一个空行和对应的 Sitemap 行。
使用限制
- 工具生成的是 robots.txt 文本,文本中的指令不能单独证明爬虫会按相同方式处理,也不能确定抓取或索引结果。
常见错误
- 关闭允许全部访问后只输入空格或空行,会使工具找不到可用的禁止路径;请按行填入需要表达的路径,否则结果会采用
/。
常见问题
不填写 User-agent 可以生成 robots.txt 吗?
可以。User-agent 输入允许留空,此时结果会使用 *,并以包含该值的 User-agent 行开头。若要面向特定爬虫,则填写相应标识后再查看生成行。
如何禁止多个路径?
关闭允许全部访问后,把路径分别写在不同的行中即可;工具会忽略空行,并为每个去除首尾空白后仍有内容的行生成一条 Disallow 指令。没有可用路径时则使用 /。
Sitemap 和 Crawl-delay 会自动出现在结果中吗?
只有对应输入含有非空白字符时,结果才会加入 Sitemap 或 Crawl-Delay 行。工具会使用你填入的内容,因此出现这些行不代表网址或延迟数值已经经过语义判断。