Ajaxバリバリのページはクローラから見たらスカスカで価値がないページと判断される恐れがある
<html>
<head>
<title>sukasuka</title>
</head>
<body>
<div>{hogehoge}</div>
</body>
</html>
そこで、phantom jsを使ってページをレンダリングして静的ページに変換する。
phantomjsがなんだか分からないけど、webkitをシミュレーションしてくれる。便利なツール
var page = require('webpage').create();
page.open('http://target-ajax.page.com/index.html', function (status) {
window.setTimeout(function () {
if (status === 'success') {
console.log(status);
var html = page.evaluate(function () {
return document.documentElement.outerHTML;
});
console.log(html);
}
phantom.exit();
}, 200);
});
クーロンは適当にこのように。
0 * * * * /usr/bin/phantomjs /home/hoge/make_static.js > /var/www/hogehoge/production/current/public/static.html
そして、nginxここでハマる。。
if分で、プロキシは設定できないらしい。。
Restarting nginx: nginx: [emerg] "include" directive is not allowed here in /etc/nginx/sites-enabled/bar:21
nginx: configuration file /etc/nginx/nginx.conf test failed
nginx.conf
if ($http_user_agent ~* "googlebot|yahoo|bingbotbaiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") {
rewrite ^/$ http://target-ajax.page.com/static.html last;
}
Chromeでエージェントをgoogle-botに変えてテストしてみて、うまくstaticが見れればok
urlが変わってしまうので、効果のほどはいま様子を見てます。
参考サイト
http://havelog.ayumusato.com/develop/javascript/e526-make_static_html_using_phantomjs.html