在 React 中为爬虫处理元标记和文档标题

Handle meta tags and document title in React for crawlers

我有一个使用客户端渲染的 React (redux) 应用程序。我希望我的网站描述和标题可以被 google 抓取(他们似乎抓取异步内容因为我的网站在 google 中显示良好,带有我的 h1 标签中的文本)所以我找到了一个名为 react-helmet 建立在 react-document-library 之上。该库允许我根据当前所处的路线更改文档标题和描述。

所以这是我的问题:

  1. 目前(1 周后)我的 google 搜索结果没有变化,这让我觉得要么 google 没有抓取我的网站,要么 google 抓取了它但没有注意到描述的动态变化,只使用了我的 h1 标签。但是我怎样才能检查发生了哪一个呢?
  2. 我注意到 Instagram 有一个客户端呈现的应用程序,但不知何故,当我检查页面源时,他们已经更改了每个页面上的标题和描述,即使 body 标签只是一个空 div 作为典型的客户端呈现的应用程序。我不明白他们是怎么做到的。

react-helmet

遵循 React Helmet 服务器渲染文档:https://github.com/nfl/react-helmet#server-usage

使用 Google Search Console 查看 Google 如何抓取您的网站,并启动 crawl/index 您的网页:https://www.google.com/webmasters/tools/

至于 instagram 如何在客户端应用程序中显示元标记——当它们检测到爬虫或机器人正在查看时,它们可能会在服务器端呈现和提供静态内容。您可以自己为您的内容执行此操作,而无需将整个应用程序转换为服务器端呈现。 Google 预渲染服务。 (我不会提及任何示例,因为我不想在不对他们发表意见的情况下提升他们的 SEO。)

另一种选择是静态呈现您的 React 应用程序,并在必要时提供它。请参阅 Graphcool 的准备(似乎有点过时)、react-snap 和 react-snapshot。所有人都在本地服务器上呈现网站并下载呈现的 html 文件。如果你只需要 <head> 那么你应该很好!