【发布时间】:2015-07-20 11:51:39
【问题描述】:
我每天都在使用 Phantom 在我的网站上预呈现动态页面。然后,我编写了一些代码来检查请求的用户代理,如果请求来自机器人,则提供预呈现的 HTML 快照。我的机器人数组是:
var socialBots = [
"facebookexternalhit/1.0", "facebookexternalhit/1.1", "FacebookExternalHit",
"twitterbot", "TwitterBot", "Twitterbot/1.0",
"LinkedInBot",
"rogerBot", "rogerBot/1.0"
];
然后我的 nodeJS 代码(使用 Express)来监听机器人并提供快照:
app.use(function(req, res, next){
var userAgent = req.get("user-agent"),
socialBot = false;
for (i=0; i<socialBots.length; i++) {
if (userAgent.indexOf(socialBots[i]) > -1) {
socialBot = true;
break;
}
}
if (socialBot) {
//serve snapshot
}
});
这适用于 Facebook 和 Twitter,但数组的最后一行 rogerBot 应该用于 Moz SEO 并且似乎不起作用。 Moz SEO 在上次抓取时没有得到我的快照。我只是弄错了用户代理还是其他原因?
【问题讨论】:
标签: javascript node.js seo user-agent bots