Просто чтобы вмешаться, я тоже столкнулся с этой проблемой (у меня очень тяжелый сайт ajax / js), и я нашел это, которое может представлять интерес:
crawlme
Я еще не попробовал, но звучит так, будто весь процесс превратится в кусок пирога, если он будет работать так, как рекламируется! это часть связующего / экспресс-промежуточного программного обеспечения, которое просто вставляется перед любыми вызовами на страницы и, по-видимому, заботится об остальном.
Edit:
Попробовав crawlme, я добился некоторого успеха, но используемый для него безголовый браузер (zombie.js) не работал с некоторым содержимым моего javascript, вероятно потому, что он работает путем эмуляции DOM и, следовательно, не будет идеальным.
Ооо, вместо этого я получил полный браузер без заголовка, phantomjs и набор ссылок на него для него, например:
npm install phantomjs node-phantom
Затем я создал свой собственный скрипт, похожий на crawlme, но использующий phantomjs вместо zombie.js. Этот подход, кажется, отлично работает и прекрасно отрисовывает каждую из моих страниц на основе ajax. сценарий, который я написал для этого, можно найти здесь . чтобы использовать это, просто:
var googlebot = require("./path-to-file");
и затем перед любыми другими вызовами вашего приложения (это использует экспресс, но должно работать только с подключением:
app.use(googlebot());
источник очень прост, за исключением пары регулярных выражений, так что давайте посмотрим:)
Результат: веб-сайт AJAX heavy node.js / connect / express может сканироваться googlebot.