SEO与Node.js的Express

时间:2014-03-17 10:28:59

标签: node.js express seo user-agent

我正在寻找以HTML格式提供机器人内容,然后针对所有其他请求提交index.html并让我的Backbone.js应用程序启动。

我最好尝试为Google,Facebook等创建一系列已知机器人...然后如果用户代理不在该数组中,则渲染index.html,或者Node中有什么东西快递可以说“这是一个真正的用户,而不是任何类型的机器人”?

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

2 个答案:

答案 0 :(得分:0)

考虑将动态网页预渲染为静态HTML,并使用您所描述的类似方法使用快递服务机器人。
您可以使用phantomjs和一些现成的库来处理页面呈现。

请记住,谷歌不喜欢当你为机器人提供不同的东西时,他们会采用他们的机器人来处理动态内容,因为单页体验在网络上越来越受欢迎。

答案 1 :(得分:0)

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

它的工作原理是支持_escaped_fragment_协议,因此我们只检查用户代理是否支持不支持该协议的服务(facebook,twitter,linkedin等)。

它目前用于将请求转发到我们的Prerender.io服务,该服务处理将javascript页面转换为静态HTML的所有工作,但我们也开放了我们的phantomjs服务器:https://github.com/prerender/prerender。这样,如果你愿意,你可以自己主持一切。

这不被视为隐藏真实内容,因为您实际上正在为用户看到的内容提供服务。只是不要将静态HTML更改为与用户访问这些页面时实际看到的不同,你会没事的。我们的服务每天为搜索引擎提供超过100万的页面,我们的用户都没有因为隐藏真实内容而受到惩罚。

如果您有任何问题,请查看并告诉我。