У нас есть сайт AngularJS, использующий маршруты HTML5. Я только что проверил тест "Fetch as Google". Результаты немного запутываются:
- На вкладке выбора я вижу наш сайт так, как он выглядит в источнике просмотра, со всеми привязками переднего конца {{}}, а не со всеми отображаемыми HTML
- На вкладке рендеринга наш сайт выглядит отлично, нет {{}} переменных, кажется, что бот Google получил и сделал сайт прекрасным, что, возможно, соответствует этому, http://googlewebmastercentral.blogspot.ae/2014/05/rendering-pages-with-fetch-as-google.html.
Однако мы уже готовы к тому, что Google не сможет сканировать наш сайт, поэтому мы уже добавили, поэтому бот Google пересматривает нашу страницу с помощью "? _escaped_fragment_ =". Мы следовали этому, https://developers.google.com/webmasters/ajax-crawling/docs/getting-started (раздел "Обработка страниц без хэш-фрагментов" ). В нашей конфигурации Nginx есть что-то вроде этого:
if ($args ~ "_escaped_fragment_=") {
serve the static HTML snapshots
}
и действительно, он отлично работает, если мы передадим _escaped_fragment_ = сами. Тем не менее, бот Google никогда не пытался обходить наш сайт с помощью этого параметра, поэтому он никогда не сканировал моментальный снимок. Мы что-то упускаем? Должны ли мы также добавлять обнаружение агента для робота Google в нашем Nginx conf? Что-то вроде этого?
if ($http_user_agent ~* "googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") {
server from snapshots
}
Было бы здорово, если мы сможем понять это лучше, спасибо вам заранее!
UPDATE:
Я просто прочитал это, http://scotch.io/tutorials/javascript/angularjs-seo-with-prerender-io?_escaped_fragment_=tag#caveats. Таким образом, кажется, что при использовании ручных инструментов (Fetch as Google) мы должны пройти либо #! или? _escaped_fragment_ = в нужном месте. Действительно, если я пройду? _escaped_fragment_ = в нашем случае, я вижу созданный снимок HTML.
Это правда? Действительно ли это работает?
ОБНОВЛЕНИЕ 2 В нижней части этой статьи сотрудник Google проверяет, что для Google Webmasters "Получить как Google" вам необходимо вручную передать _escaped_fragment_ = param самостоятельно, https://productforums.google.com/forum/#!msg/webmasters/fZjdyjq0n98/PZ-nlq_2RjcJ
Cheers,
Ираклис