什么是网络爬虫?
为了让您的网站在搜索结果中显示,谷歌(以及其他搜索引擎如必应、Yandex、百度、Naver、雅虎或 DuckDuckGo)会使用网络爬虫来浏览网站,以发现网站及其网页。
不同的搜索引擎在各个国家的市场份额不同。
在本指南中,我们主要介绍谷歌,它是大多数国家最大的搜索引擎。尽管如此,您可能需要查看其他搜索引擎及其指南,特别是如果您的目标客户位于中国、俄罗斯、日本或韩国。
虽然在排名(Ranking)和渲染(Rendering)方面存在一些差异,但大多数搜索引擎在爬取(Crawling)和索引(Indexing)方面的工作方式非常相似。
网络爬虫是一种模拟用户行为的机器人,它们通过网站上的链接导航来索引页面。网络爬虫使用自定义的用户代理(user-agents)来标识自己。谷歌拥有多种网络爬虫,但最常用的是 Googlebot Desktop 和 Googlebot Smartphone。
Googlebot 的工作原理
Googlebot 为索引网页所经历的流程
以下是该过程的概述:
- 发现 URL:谷歌从多个来源获取 URL,包括Google Search Console、网站之间的链接或XML 站点地图。
- 加入爬取队列:这些 URL 会被添加到爬取队列(Crawl Queue)中,供 Googlebot 处理。爬取队列中的 URL 通常只会停留几秒,但根据具体情况可能会长达几天,尤其是当页面需要渲染、索引,或者如果 URL 已被索引但需要刷新时。随后,这些页面会进入渲染队列(Render Queue)。
- HTTP 请求:爬虫会发起 HTTP 请求以获取响应头,并根据返回的状态码采取相应操作:
- 200:爬取并解析 HTML。
- 30X:跟随重定向。
- 40X:记录错误,不加载 HTML。
- 50X:可能会稍后返回检查状态码是否变化。
- 渲染队列:搜索引擎系统的不同服务和组件会处理 HTML 并解析内容。如果页面包含基于 JavaScript 的客户端内容,URL 可能会被添加到渲染队列中。渲染队列对谷歌来说成本更高,因为它需要更多资源来渲染 JavaScript,因此被渲染的 URL 只占互联网上所有页面的很小一部分。其他搜索引擎可能不具备与谷歌相同的渲染能力,而这就是 Next.js 可以帮助优化渲染策略的地方。
- 准备索引:如果满足所有条件,页面可能会被索引并显示在搜索结果中。
在接下来的几节中,我们将深入探讨搜索引擎系统的主要流程:爬取与索引(Crawling and Indexing)以及渲染与排名(Rendering and Ranking)。