Ser*_*gan 5 seo googlebot reactjs
我正在使用一个简单的控制器来更改我显示的 ReactJS 视图,如下所示:
getInitialState: function() {
return {view: null};
},
setViewFromHash: function () {
var that = this;
var address = window.location.hash;
if(address != "")
{
address = address.substring(1);
require(["jsx!" + address], function (View) {
that.setState({view: View});
});
}
else
{
require(["jsx!Home"], function (View) {
that.setState({view: View});
});
}
},
componentWillMount: function () {
var that = this;
window.onhashchange = function () {
that.setViewFromHash();
};
this.setViewFromHash();
},
onTitleUpdate: function(title, canonical) {
document.title = title + titleDefault;
$('link[rel=canonical]').prop('href', canonicalDefault + canonical);
},
render: function () {
var viewToLoad = null;
if (this.state.view === null) {
viewToLoad = "Loading...";
} else {
viewToLoad = this.state.view({ onTitleUpdate: this.onTitleUpdate });
}
return (
<article>
{viewToLoad}
</article>
);
}
Run Code Online (Sandbox Code Playgroud)
在视图中,我触发了一个回调:
var Home = React.createClass({
render: function () {
this.props.onTitleUpdate("Home", "");
...
Run Code Online (Sandbox Code Playgroud)
我的问题是,此回调是否发生在有利于 SEO 的点上,即页面标题和规范更改,它们是否以触发 Google 机器人意识到标题和规范已更改的方式更新?
我也在考虑使用Cortex来管理我的数据,那会更好吗?更差?没有什么不同?至于搜索引擎优化/谷歌机器人对其正在查看的“页面”的看法?
Google 通常会保密有关何时执行 JavaScript 的详细信息;考虑一下 2010 年的这句话:
“有一段时间,我们在 JavaScript 中进行扫描,并寻找链接。Google 在 JavaScript 方面变得更加聪明,并且可以执行一些 JavaScript。我不会说我们执行所有 JavaScript,所以在某些情况下我们不执行不执行 JavaScript。当然,有一些常见的、众所周知的 JavaScript 东西,例如 Google Analytics,您甚至不想执行它们,因为您不想尝试生成从 Googlebot 到您的 Google Analytics 的虚拟访问”。
总的来说,我会简单地假设 Google(当然还有其他一些搜索引擎)不会执行我的 JavaScript,这意味着我对页面所做的任何更改都不会被采纳。当然,你可以简单地尝试一下,看看谷歌看到了什么,就知道它是否有效。
无论哪种情况,React 都能够在服务器端渲染并透明地将其事件处理程序连接到客户端,使您能够轻松处理这两种情况。(您可能需要重新调整一些代码以使其在两种上下文中运行。)
| 归档时间: |
|
| 查看次数: |
4095 次 |
| 最近记录: |