Я просматривал документацию Googles и бесчисленные посты в блогах на эту тему, и, в зависимости от даты и источника, может показаться противоречивая информация.Просветите свою мудрость на этом скромном крестьянине, и все будет хорошо.
Я создаю бесплатный веб-сайт, где большая часть аудитории из африканских стран с плохим интернет-соединением, а клиент не может позволить себе какую-либо приличную инфраструктуру.Поэтому я решил использовать все в качестве статических html-файлов, и, если javascript доступен, я загружаю содержимое страницы непосредственно в DOM, если пользователь нажимает навигационную ссылку, чтобы предотвратить загрузку всей страницы.
Мои клиентские маршруты выглядят так:
//domain.tld/#!/page
Мой первый вопрос:Гуглбот переводит это на:
//domain.tld/_escaped_fragment_/page
или //domain.tld/?_escaped_fragment_=/page
?
Я сделал простой серверный маршрутизатор в php, который создает запрошенные страницы для googlebot, и я планировал перенаправить //d.tld/_escaped_fragment_/page
на //d.tld/router/page
.
Но при использованииGoogle «Получить как Googlebot» (впервые, я мог бы добавить), похоже, не распознает никаких ссылок на странице.Он просто возвращает «Успех» и показывает мне HTML-код главной страницы ( Обновление: При указании Fetch as Googlebot на //d.tld/#!/page
он просто возвращает содержимое главной страницы, не применяя магию _escaped_fragment_).Что приводит меня ко второму вопросу:
Нужно ли следовать определенному синтаксису при использовании ссылок hashbang, чтобы googlebot мог их сканировать?
Мои ссылки выглядят так в HTML:
<a href="#!/page">Page Headline</a>
Update1: Итак, когда я спрашиваю Fetch как Googlebot, чтобы получить //d.tld/#!/page
, это отображается в журнале доступа:"GET /_escaped_fragment_/page HTTP/1.1" 301 502 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Но, похоже, он не соответствует 301, который я настроил, и вместо этого показывает главную страницу.Должен ли я использовать 302 вместо этого?Это правило, которое я использую: RedirectMatch 301 /_escaped_fragment_/(.*) /router/$1
Обновление 2: я изменил свои планы и буду учитывать googlebot как часть моей резервной тактики без использования JavaScript.Так что теперь все ссылки указывают на маршрутизатор /router/page
и затем меняются на /#!/page/
onLoad с javascript.Я пока держу вопрос открытым, если у кого-то есть блестящее решение, которое может помочь другим.