express - 在 Isomorphic React 上处理 SEO

标签 express reactjs seo react-router isomorphic-javascript

我正在使用 React 和 Node JS 构建通用应用程序 ()。我还使用 react-helmet 作为库来处理页面标题、元数据、描述等。 但是我在使用 ajax 动态加载内容时遇到了一些麻烦,谷歌爬虫无法正确获取我的网站,因为内容将被动态加载。有什么建议可以解决这个问题吗? 谢谢!

最佳答案

我有过类似的情况,但后端是 django,但我认为你使用哪个后端并不重要。

首先让我了解一下基础知识,谷歌机器人实际上不会等待您的 ajax 调用完成。如果你想测试它在谷歌网站管理员工具上注册你的页面并尝试以谷歌方式获取,你会看到你的页面是如何被机器人看到的(我的只是带有加载图标的空页面),所以由于调用没有完成,没有数据和页面是空的,这对于 SEO 来说不好,因为机器人会阅读文本。

所以您需要做的是尝试服务器端渲染。您可以通过两种方式做到这一点 prerender.io或在后端创建模板,这些模板在首次调用页面时加载,之后您的单页应用程序就会启动。

如果您使用 prerender,它是付费的,但 pre-render 内部使用您可以直接使用的 phantom.js。但它对我来说并不是很好,所以我开始在后端创建模板。 因此当机器人或用户第一次(或第一次进入)页面时,页面是从后端或前端提供的。

如有任何问题,请随时提问 :)

关于express - 在 Isomorphic React 上处理 SEO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39696071/

相关文章:

javascript - 如何处理网络请求失败错误?

seo - Isapi Rewrite 301 重定向解析为 404 - 循环引用?

ruby-on-rails - Ruby on Rails 允许跟踪/索引 protected 页面

javascript - 序列化年份和月份

ruby-on-rails - Rails3 还是 Express.js?谁在开发过程中更有效率?

html - Jade 中不允许重复属性 "{"

javascript - 设置状态和过滤。跳过数据 - React/Javascript

javascript - Node.js + Express 如何在请求体中添加字符串?

javascript - 如何调用 lodash/fp get 并使用默认值?

c# - 保存状态的选项