Веб-краулеры меняют параметры запроса и путь при очистке страниц

У нас есть веб-приложение на основе AngularJS, которое в настоящее время использует URL-адреса hashbang, такие как:

www.example.com/#!/item?id=1.  

В целях сканирования мы используем сервис prerender.io для рендеринга/кеширования страниц. Для наших метатегов (в частности, og, twitter) мы используем библиотеку angular, называемую angular-view-head. Примерно месяц назад все это работало прекрасно, и наши страницы были доступны для поиска и обмена, как и ожидалось.

В настоящее время при очистке страниц нашего сайта поисковые роботы меняют путь для строк запроса. Например,

www.somesite.com/#!/item?id=1 

становится

www.somesite.com/?id=1#!/item

Который, как вы могли подозревать, всегда возвращает 404.

После некоторой проверки это, кажется, началось где-то около 7 февраля. Мы ничего не изменили ни в наших настройках пререндеринга, ни в нашей схеме URL. Я проверил инструменты Google для веб-мастеров и вижу много 404 для таких URL-адресов.

Мне не повезло в моих исследованиях за последние несколько дней, чтобы найти какие-либо подобные проблемы.

Кто-нибудь сталкивался с чем-то подобным при таком стиле настройки? Любые идеи о том, как решить эту проблему?


person Eric    schedule 04.03.2016    source источник
comment
Любой из этих URL-адресов технически действителен, и строка запроса перед хэшем так же верна, но похоже, что AngularJS видит их разными, когда вы используете # в URL-адресе. Вам почти придется обнаружить эти URL-адреса и перенаправить их, чтобы поместить строку запроса после хэша. Вы можете переключиться в состояние push html5?   -  person Prerender.io    schedule 05.03.2016
comment
Благодарю за ваш ответ. Мы рассмотрим переназначение. На данный момент мы хотели бы избежать перехода в состояние push, но это вариант, если он неизбежен. Что-то недавно вызвало переключение? Это что-то на стороне пререндера или на сканерах?   -  person Eric    schedule 07.03.2016
comment
Мы всегда делали наши URL-адреса одинаково, поэтому я не думаю, что это будет проблемой Prerender. Не стесняйтесь, присылайте нам электронное письмо по адресу [email protected], если вам нужна помощь в его изучении.   -  person Prerender.io    schedule 08.03.2016


Ответы (1)


Для всех, кто находит этот вопрос, мы решили его, перейдя на навигацию по состоянию HTML5.

person Eric    schedule 13.03.2019