React app SEO优化之预渲染

栏目: IOS · Android · 发布时间: 5年前

内容简介:谷歌已经明确表示,他们会在抓取你的网站之前运行你的JavaScript代码。准确地说,他们的爬虫(crawler)中运用我知道人们太关心搜索引擎优化了,总是试图尽可能地提高。很自然的,每个人都想在不运行任何JavaScript的情况下直接显示搜索引擎的内容。这不是一个坏主意,相信很多人都这么尝试过。*

谷歌已经明确表示,他们会在抓取你的网站之前运行你的JavaScript代码。准确地说,他们的爬虫(crawler)中运用 Chrome 41 浏览器打开网站,和真实用户用浏览器打开一样!但是还有其他搜索引擎和社交媒体网站可能并不会这么做。

我知道人们太关心搜索引擎优化了,总是试图尽可能地提高。很自然的,每个人都想在不运行任何JavaScript的情况下直接显示搜索引擎的内容。这不是一个坏主意,相信很多人都这么尝试过。

* 这不仅有利于搜索引擎优化 *,而且还具一些性能优势。浏览器不必等待JS文件加载后才开始渲染, 首次有效渲染(First Contentful Paint) 的时间会更短。

React App 如何预渲染?

原理其实很简单,在我们使用 npm run build 构建React App后,我们用真实浏览器渲染 build 目录(通常是 index.html ), 然后获取产生的 HTML 代码保存到一个文件中,只是所有的内部页面都需要重复相同的操作。

感谢 react-snap 让这一切变得简单。

  1. dev 依赖中安装   npm i -D react-snap
  2. package.jsonscripts 中添加 "postbuild": "react-snap"
  3. 运行 npm run build

What it will do is after the normal build, it will run react-snap which will render them in a Puppeteer browser, scrape content and generate new build.

build 之后,将运行 react-snap ,在 无头浏览器(Puppeteer browser) 中渲染,抓取内容并产生新的 build

{
  "scripts": {
    "postbuild": "react-snap"
  },
  "reactSnap": {
    "skipThirdPartyRequests": true
  },
  "devDependencies": {
    "react-snap": "^1.23.0"
  }
}
复制代码

和原作者一样,我在尝试 react-snap 的时候,也碰到了一些问题,例如著名的 'Protocol error (Runtime.callFunctionOn): Object reference chain is too long' } , 一般在 官方问题 都能找到相应的解决方案,或者你选择 StackOverFlow

所以当我们在使用第三方脚本的时候,应该尽可能对他们多一些了解,比如有哪些限制或者是 options , 请参考 文档

原文地址: coffeencoding.com/prerender-r… 感谢作者Gijo Varghese


以上所述就是小编给大家介绍的《React app SEO优化之预渲染》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning Python, 5th Edition

Learning Python, 5th Edition

Mark Lutz / O'Reilly Media / 2013-7-6 / USD 64.99

If you want to write efficient, high-quality code that's easily integrated with other languages and tools, this hands-on book will help you be productive with Python quickly. Learning Python, Fifth Ed......一起来看看 《Learning Python, 5th Edition》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具