MEAN-SEO не работает должным образом

У меня есть проект в mejs.

У него отключен режим html5, поэтому мои URL-адреса такие:

http://localhost:3000/#!/products

Я пытаюсь реализовать снимки AJAX, чтобы Google Crawlers мог видеть контент, сгенерированный javascript на стороне клиента.

Я установил модуль под названием MEAN-SEO:

http://blog.meanjs.org/post/78474995741/mean-seo

Теперь, когда я получаю доступ к следующему URL-адресу:

http://localhost:3000/?_escaped_fragment_=

Меня перенаправляют на:

http://localhost:3000/?_escaped_fragment_=/#!/

И когда я нажимаю «продукты» или когда я обращаюсь напрямую, меня перенаправляют на:

http://localhost:3000/?_escaped_fragment_=/#!/products

После прочтения подробной спецификации Google здесь https://developers.google.com/webmasters/ajax-crawling/docs/getting-started , мне нужно получить что-то без хэш-бангов, например следующее:

http://localhost:3000/?_escaped_fragment_=/products

Что я делаю неправильно? С уважением.


person wildbyte    schedule 27.08.2015    source источник
comment
похоже, что проблема с маршрутизацией связана с тем, что на сервере правильно установлено SEO, как при добавлении фрагментов кода в express.js? app.use(seo({ cacheClient: 'disk', // can also be 'redis' but not sure if needed // redisURL: 'url/port', if we were actually using redis cacheDuration: 2 * 60 * 60 * 24 * 1000, // in ms, so I think this is currently set to 2 days }));   -  person Leo    schedule 02.10.2015


Ответы (1)


Любые конкретные причины, по которым вы хотите отключить html5mode?

Вот что многие упустили из виду: Поисковые системы (и Google, и Bing) теперь могут обрабатывать контент на основе AJAX.

Их поисковые роботы теперь понимают pushstates, так что если вы просто включите html5mode, вам не потребуется никакой специальной обработки, чтобы SEO заработало. Вы можете загружать свой контент через AJAX, вы можете устанавливать теги заголовков и метатеги с помощью javascript и т. д. и т. д., и сканеры будут понимать ваш контент так же, как если бы вы отрендерили его на стороне сервера. Больше нет необходимости делать html-snapshotting или обрабатывать escaped_fragment для SEO.

Об этом было объявлено в их блогах разработчиков, но, к сожалению, большая часть документации не была обновлена ​​​​с этой информацией, поэтому для многих это осталось незамеченным.


Однако одно предупреждение: Facebook не обрабатывает push-состояния, поэтому, если вы хотите поддерживать поисковый робот Facebook, вам все равно придется обрабатывать это отдельно.

person Erik Honn    schedule 25.09.2015
comment
Просто убедитесь, что ваш robots.txt не блокирует сканирование ваших файлов .js :) - person Erik Honn; 25.09.2015