googlebot 抓取页面时是否有会话?例如,我在会话中存储了一些变量并在我的站点页面中使用它们。当 googlebot 抓取这些页面时,我还会有会话变量吗?在我global.asax
的会话开始时,我在会话中存储了一些变量。我对 Google bot 有任何问题吗?
4 回答
Googlebot 会主动尝试避免会话,并且不支持 cookie。从第一次使用 Googlebot 开始:标头和压缩(2008 年 3 月)
我通常避免使用 cookie(所以没有“Cookie:”标题),因为我不希望内容受到会话特定信息的太大影响。而且,如果服务器在动态 URL 中使用会话 ID 而不是 cookie,我通常可以弄清楚这一点,这样我就不会用一百万个不同的会话 ID 抓取您的同一页面一百万次。
我想大多数常规搜索引擎机器人在这方面都会是相似的。Google 正在尝试建立唯一 URL 的索引。URL 是标识唯一内容页面的唯一键。当用户单击 SERPS 中的链接时,不会传递 Cookie(和会话)。谷歌主要是索引页面,而不是网站。
您的一个问题的答案是:是的,您会遇到 Google bot 的问题。
通常,我们在使用 google bot 时遇到了两种类型的问题:
它有时不会在请求之间保留 HTTP cookie。我们的应用程序依赖于自定义 cookie,并且有大量的谷歌机器人请求被捕获,根本没有携带任何 cookie。
它在连续请求之间进行长时间的休息。例如,它检索您的页面并稍后要求它的脚本。
两者都会给您的会话带来麻烦。首先 - 您需要在请求之间传递一个精确的 ASPNETSessionID cookie。Googlebot 有时可能无法做到这一点。其次 - 如果请求之间的时间跨度很长,即使 cookie 存在,您的会话也会终止。
通常答案是否定的,但是其他爬虫(其中有很多)以其他方式工作。
我应该注意到我已经看到了一个用于 Adwords(不是普通的 googlebot)的谷歌爬虫实例,它确实提供了一个会话 cookie。
我认为这不太可能。每次抓取您的网站时,它都应该创建一个新会话。