很多年前,要让您的网站被搜索引擎收录,您需要填写表格、注册网站并手动编辑您希望网站被收录的关键词。随着搜索引擎网络爬虫或蜘蛛的出现,这个过程发生了改变。
什么是网络爬虫?
网络爬虫是自动化程序,它们沿着从一个网页到另一个网页的链接在互联网上爬行,对内容进行索引并将其添加到数据库。这意味着,只要您的网站有搜索引擎已知的其他网站的链接,它就会随着时间的推移找到您。链接到您的网站的网站越多,这种情况发生的速度就越快。
不幸的是,这些爬虫可能会成为您网站的密集访问者。这是因为它们会加载每个页面和文件以将其编入数据库。爬虫可能会给您的 VPS 造成高负载,并可能给访问者带来问题。为了帮助解决这些负载问题,有一种标准化的方法来控制这些爬虫的行为,即在您网站的根目录中放置一个名为 robots.txt 的文件。但是,没有什么强制遵守这个文件。因此,虽然大多数网络搜索引擎爬虫都会遵守它,但有些爬虫可能不会。
robots.txt 格式
robots.txt 文件具有特定格式。请参阅以下示例:
User-agent:googlebot
Disallow:/images
Allow:/images/metadata
crawl-delay:2
sitemap:/sitemap.xml
让我们按顺序看一下每条指令:
- 我们从 User-agent 行开始:机器人或网络浏览器将使用用户代理来标识自己,而各种搜索引擎抓取工具将拥有自己的用户代理。用户代理指令之后的任何其他指令将被视为仅对给定的用户代理有效。星号 (*) 的用户代理将被视为指代所有用户代理。在我们的示例文件中,我们的指令与 googlebot 抓取工具相关。
- Disallow 指令用于告诉爬虫您不希望它加载的目录或文件。需要注意的是,虽然爬虫不会在跟随链接时加载文件,但它仍会将其列在搜索结果中。因此,它不能用于阻止页面出现在搜索结果中。Disallow 可能是所有爬虫都支持的唯一指令。因此,在我们的示例中,我们禁止抓取 /images 目录。
- Allow 指令可用于指定爬虫可以加载的禁止目录中的文件或目录。虽然并非所有爬虫都支持此功能,但大多数都支持。在我们的示例中,我们允许爬虫加载 /images/metadata 目录中的文件。
- 下一个指令是 crawl-delay,它给出爬虫在加载下一个页面前等待的秒数。这是减慢爬虫速度的最佳方法,但除非您网站上的页面很少,否则您可能不想将数字设置得太高,因为这将大大限制爬虫每天可以加载的页面数量。
- 最后,我们有站点地图指令,它可用于将爬虫引导至您网站的 XML 站点地图文件,它还可以使用它来帮助其对网站进行索引。
掌控网络爬虫
您可以根据自己想要控制爬虫程序访问您网站的方式,在 robots.txt 中填写任意数量的用户代理部分。最好先为所有爬虫程序设置一个用户代理部分,然后在发现特定爬虫程序会给您的网站带来问题时,为其添加单独的部分。创建 robots.txt 后,最好对其进行测试,以确保其有效。如果语法中存在拼写错误或错误,则可能导致爬虫程序忽略您为其设置的规则。幸运的是,有许多工具可用于测试它,Google 等主要搜索引擎也提供了测试工具。