SEO与Node.js的快递

我正在寻找向HTML中的漫游器提供内容,然后是所有其他的请求,只是渲染index.html ,让我的Backbone.js应用程序踢。

我最好尝试为Google,Facebook等创build一系列已知的机器人,然后如果用户代理不在该数组中,请呈现index.html ,或者在Node的Express中有可以说“这是一个真正的用户,而不是任何一种机器人“?

 app.use(function(req, res) { var ua = req.headers['user-agent']; // TODO res.render('index.html'); }); 

考虑将dynamic页面预呈现为静态HTML,并使用您所描述的类似方法使用快递进行漫游。
您可以使用phantomjs和一些准备好的库来处理页面渲染。

请记住,谷歌不喜欢,当你不同的事情,僵尸机器人戏剧性,他们采取自己的机器人来处理dynamic内容,单页面的经验越来越stream行的networking。

我们为节点(expressjs)编写了中间件,可以让您确定用户是否是bot,然后将请求转发给提供预呈现HTML的服务器。 代码可以在这里find: https : //github.com/prerender/prerender-node

它通过支持_escaped_fragment_协议工作,所以我们只检查用户代理服务不支持协议(脸谱,微博,linkedin等)。

目前,它构build为将请求转发给我们的Prerender.io服务,该服务处理将JavaScript页面转换为静态HTML的所有工作,但我们也有我们的phantomjs服务器开源: https : //github.com/prerender/prerender 。 这样,如果你愿意,你可以自己托pipe所有东西。

这不被视为掩盖,因为你真的服务于用户看到的东西。 只要不改变静态的HTML是什么不同于用户实际看到的时候访问这些网页,你会没事的。 我们的服务每天为search引擎提供超过100万页的服务,而且我们的用户也没有因为伪装而受到惩罚。

检查出来,让我知道如果你有任何问题。