十行代码实现React App 的SEO优化
前端  /  管理员 发布于 6年前   363
搜索引擎真的需要已经预渲染的应用吗?
谷歌已经明确表示,他们会在抓取你的网站之前运行你的JavaScript代码。准确地说,他们的爬虫(crawler)中运用 Chrome 41浏览器打开网站,和真实用户用浏览器打开一样!但是还有其他搜索引擎和社交媒体网站可能并不会这么做。
我知道人们太关心搜索引擎优化了,总是试图尽可能地提高。很自然的,每个人都想在不运行任何JavaScript的情况下直接显示搜索引擎的内容。这不是一个坏主意,相信很多人都这么尝试过。
*这不仅有利于搜索引擎优化 *,而且还具一些性能优势。浏览器不必等待js文件加载后才开始渲染,首次有效渲染(First Contentful Paint)的时间会更短。
原理其实很简单,在我们使用npm run build构建react App后,我们用真实浏览器渲染build目录(通常是index.html), 然后获取产生的html代码保存到一个文件中,只是所有的内部页面都需要重复相同的操作。
感谢react-snap 让这一切变得简单。
在 dev 依赖中安装 npm i -D react-snap在package.json 的 scripts 中添加"postbuild": "react-snap"运行npm run buildWhat 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, 请参考文档。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号