javascript - reactjs - 获取作为谷歌仅显示空白页面

标签 javascript reactjs google-search google-search-console i18next

我刚刚使用 reactjs 编写了我的第一个网站,但是当我检查谷歌如何查看我的网站时,我收到以下结果: enter image description here

我的 HTML 文件如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>MySite</title>
</head>
<body>
    <div id="root"></div>
    <script async type="text/javascript" src="index.browser.js"></script>
</body>
</html>

我已停用所有用于测试的 AJAX 调用,ReactDOM.render 在其 js 文件加载后立即执行。 JS 文件本身经过编译、压缩,不到 300 KB(包括所有库,如 React 本身)。

在这一点上,我不明白我可以做哪些改变来让谷歌正确呈现我的页面?据我所知,reactjs 的谷歌渲染问题通常源于 AJAX 调用或在网站本身渲染和 DOM 更改之前在应用程序代码中完成的其他长期工作。但是在删除大型库(除了 i18next 和 React 本身)、最小化和压缩代码之后,我看不出我可以做些什么来显着提高性能或渲染时间。 PageSpeed Insights 是 99/100 点(桌面,只是提示我可以最小化 html 以节省 110 字节)。

有什么想法可能是我的错误所在吗?服务器端渲染对我来说并不是一个合适的选择。

您可以在此处查看演示页面:http://comparo.com.mx

如您所见,内容不多 - 但显示的 HTML 内容在加载 index.browser.js 后立即呈现,这是一个 < 300KB 的文件,因此应该不会阻止谷歌搜索控制台正确呈现页面。

编辑:我的服务器位于欧洲,据我所知,谷歌服务器从美国抓取。这会是一个问题吗?

最佳答案

将 babel polyfill 添加到你的项目中:

npm install --save babel-polyfill

然后将其导入您的 index.js(入口点):

import 'babel-polyfill';

希望这能解决您的问题。

关于javascript - reactjs - 获取作为谷歌仅显示空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48902026/

相关文章:

javascript - 默认添加导出自定义

javascript - 设置下一个通知时间表LocalNotification Titanium Appcelerator

javascript - react / Gatsby ;无法读取 null 的属性 'map'

seo - 谷歌只为多语言网站索引英文内容——默认不是英文

html - Angular 元标记信息未在 google 中显示

python - beautiful soup 从谷歌搜索中提取一个 href

javascript - 在 NodeJS 中使用 UDP 连接到同一服务器的多个客户端

javascript - 如果选择了某个选择选项,则将 div 的 css 更改为 "Display:None"

reactjs - 如何使用 react-router v4 预加载数据?

javascript - 没有requirejs如何使用redux?