为 google 爬虫程序提供不同的页面

Serve different page to google bot crawler

我有一个 SPA,里面有很多图片。我想将这些图像公开给搜索引擎。所以我想创建 "special" 只被机器人看到的页面。这些页面将包含有关图像的元数据。

是否可以让 googlebot 抓取一个页面但将其编入索引?

是的,可以通过 HTTP_USER_AGENT 检测到 Google Bot,但您可能会 Google Ban 和 PR 设置为 0。

您可以设置只有 Google 机器人能看到的页面。

工作原理:

你基本上设置了一个像客户端浏览器一样服务的服务器,它 "sits" 在你的 "real server" 之间,它提供 HTML 和资产(JS/CSS/images)和爬虫机器人。该服务器称为 pre-render 服务器,它只将数据发送给机器人,而不是真正的客户端,因为它有自己的 URL 映射使用它。 URL 想要您的任何页面的 URL,但在末尾添加一些特殊内容(可能)。

pre-render 服务器就像一个浏览器,所以 Javascript 被解析,只有当页面准备好时(你需要小心地触发一个在调用所有 ajax 并且内容具有 "settled down" 之后,您的代码中某处的 ready 命令,并且仅当调用该命令时, pre-render 服务器会将内容转发给机器人,因此机器人会看到 "static page"、"fed to it with a spoon".

https://developers.google.com/webmasters/ajax-crawling/docs/learn-more#what-the-user-sees-what-the-crawler-sees

In order to make your AJAX application crawlable, your site needs to abide by a new agreement. This agreement rests on the following:

  1. The site adopts the AJAX crawling scheme.

  2. For each URL that has dynamically produced content, your server provides an HTML snapshot, which is the content a user (with a browser) sees. Often, such URLs will be AJAX URLs, that is, URLs containing a hash fragment, for example www.example.com/index.html#key=value, where #key=value is the hash fragment. An HTML snapshot is all the content that appears on the page after the JavaScript has been executed.

  3. The search engine indexes the HTML snapshot and serves your original AJAX URLs in search results.


这项技术不太容易设置,但它是可能的。