ReactJS-提取为Google,仅适用于首页,而不适用于其他路线?

时间:2019-01-09 03:12:13

标签: reactjs google-search-console

我使用create-react-app创建了我的react应用。

我已将其部署在AWS Cloudfront + S3上。当我访问以下网站时,一切似乎都正常:https://www.remotecareers.io

但是,当我尝试使用Google抓取方式的“抓取并呈现”功能时,会看到以下信息:

enter image description here

This is how a visitor to your website would have seen the page:部分为空很奇怪。但是,我的主要问题是,当我尝试对非根路径执行相同的操作时。

例如,我有此页面:https://www.remotecareers.io/remote-jobs/new。看起来一切正常。但是,当我尝试通过Google抓取它时,它说的是Not Found

enter image description here

它在新版Google Search Console中也说了同样的话:

enter image description here

到目前为止,即使只安装This is how Googlebot saw the page:部分,我也进行了安装和添加:

import "babel-polyfill"; // I tried this by itself as well as with the 2 below
import "url-search-params-polyfill";
import "whatwg-fetch";

奇怪的是,首页正在(部分)运行,但是其余页面根本没有被扫描。我认为可能是因为我遗漏了robots.txt文件,所以我添加了它,但是似乎没有任何影响(https://www.remotecareers.io/robots.txt)。有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,依靠googlebots运行javascript来呈现应用程序不是很可靠。为了获得最佳SEO性能,您需要通过服务器呈现您的React应用。

您将需要一个专用的NodeJS服务器,该服务器将呈现您的应用程序,然后将呈现的HTML发送到浏览器。浏览器将收到HTML响应,其中也包含一些脚本标签。加载脚本后,它将运行并充实您的react应用,以使一切正常运行。

尝试阅读本article,以使您开始学习此主题。