У меня есть сайт, на котором реализован шебанг от Google «#!» синтаксис для сканирования ajax.
Обе стороны системы были реализованы, как обсуждалось на https://developers.google.com/webmasters/ajax-crawling/docs/specification
Другими словами, URL для страницы, созданной Ajax, такой как: http://avianguitars.ca/configurator/#!S
сопоставляется со статическими версиями HTML, которые кэшируются на стороне сервера в http://avianguitars.ca/configurator/?_escaped_fragment_=S
Google должен увидеть #! синтаксис, сканируйте _escaped_fragment_ версию и отображайте ее в Google вместе с оригиналом http://avianguitars.ca/configurator/#!S URL.
Я также добавил URL-адреса в формате http://avianguitars.ca/configurator/#!S к карте сайта, которая отправляется с помощью инструментов разработчика Google, однако URL-адреса! # все игнорируются и по-прежнему не индексируются.
Еще один пример URL-адреса «шебанг» http://avianguitars.ca/configurator/#!action=showline&lineid = 46 какие карты на http://avianguitars.ca/configurator/?_escaped_fragment_=action%3Dshowline%26lineid%3D46
Все другие (не-ajax) URL-адреса, отправленные через карту сайта, принимаются, и я предполагаю, что при общем сканировании URL-адреса тоже были бы получены.
Есть ли что-то очевидное, что мне не хватает, что препятствует индексации ссылок?
Да, вы что-то упустили. Вам нужно добавить <meta name="fragment" content="!" />
сказать, что в вашем URL-адресе используется фрагмент идентификатора.
Это скажет вам больше на стороне Google: https://developers.google.com/webmasters/ajax-crawling/docs/specification
Обязательно выводите ссылку rel = canonical tag в вашей HEAD, когда страница запрашивается с использованием параметра _escaped_fragment.
Поэтому, когда ваша страница запрашивается с использованием специального параметра, включите его в свой вывод:
<link rel="canonical" href="http://avianguitars.ca/configurator/#!action=showline&lineid=46"/>
У меня есть сайт, полностью основанный на хэш-банге, и он полностью проиндексирован (312 отправленных URL-адресов, 309 проиндексированных URL-адресов). Я только что сравнил ваш сайт с моим, и это единственное, что, кажется, отсутствует. Я не уверен, что это решение вашей проблемы, но я не вижу его в вашем HTML. Я добавил этот тег, потому что я прочитал его где-то в документации Google, но теперь я не могу найти его больше …
Кроме того, мой сайт не включает это:
<meta name="fragment" content="!" />
… но это не помешало его индексировать.
Кроме того, URL-адреса в карте сайта Google должны использовать синтаксис hashbang, а не синтаксис _escaped_fragment. Если у вас возникли проблемы, попробуйте зарегистрировать свой веб-сайт с помощью инструментов Google для веб-мастеров и посмотрите, есть ли там какие-либо проблемы: