Google индексирует страницы с #! хотя у нас нет

11

Наша компания разработала одностраничное приложение с использованием AngularJS и его маршрутизации. Google неплохо проиндексировал наш сайт с помощью JavaScript, но не очень хорошо проиндексировал некоторые страницы, поэтому мы разработали версию только для HTML.

Мы следовали опубликованной здесь спецификации сканирования Ajax, и у нас есть <meta name='fragment' content='!'>тег и канонические ссылки. Мы ожидаем, http://www.example.com/foo/barчто будут получены от http://www.example.com/?_escaped_fragment_=/foo/bar.

Тем не менее, мы обнаружили, что когда мы катили спецификацию AJAX, теперь все страницы проиндексированы дважды, один раз с версией JavaScript как http://www.example.com/foo/barи один раз с новой версией как http://www.example.com/#!/foo/bar. Это вредно для нас, так как это дублированный контент, а также неправильное представление нашего сайта.

Я пытался найти похожие вопросы здесь и на форуме по продуктам Google, но ничего не смог придумать.

Бенджамин Грюнбаум
источник
Вы подняли эту проблему с Google? На их форуме?
Жером Верстринге
@JVerstry да - я сделал это сразу после того, как опубликовал этот вопрос: productforums.google.com/forum/… Однако мои первые предположения состоят в том, что мы неправильно поняли протокол, а не что-то не так с их продуктом, поэтому мои шансы получить справка здесь довольно приличная, в дополнение к тому, что этот вопрос актуален для большой целевой аудитории (все с одностраничным приложением, которое не использует #! в URL-адресах и хочет, чтобы Google их проиндексировал). Спасибо за предложение, кстати.
Бенджамин Грюнбаум
1
Вы определили канонические URL через rel="canonical"?
Кв Кв
3
перенаправление #! URL и маскировка уродливых URL не похоже на то, что вы следуете спецификации.
Тони МакКрит
1
Просто интересно, если вы не используете #!URL, почему вы используете _escaped_fragment_и спецификации Google AJAX?
MrWhite

Ответы:

2

Если есть сомнения, используйте rel="canonical". Это может быть так же просто, как положить <link rel="canonical" href="http://blog.example.com/dresses/green-dresses-are-awesome" />в ваш <head>. Смотрите Google для получения дополнительной информации.

Это не помешает ботам сканировать обе «версии», но скажет Google (и другим SERP) индексировать только канонический документ.

Фил Тьюн
источник
В том же духе, он может использовать файл robots.txt ??
eyoung100
У нас таковые они не помогли в этом деле.
Бенджамин Грюнбаум
1

Я не очень понимаю о JavaScript.
В индексации Google мы используем канонический URL-адрес <head>вроде @philtune. Но если ты не можешь ожидать, что тебя http://www.example.com/foo/barзаберут http://www.example.com/?_escaped_fragment_=/foo/bar.

Google Fetch только что загрузил canonical url.

В этом случае URL-адрес http://www.example.com/foo/bar, Google будет индексировать http://www.example.com/foo/barтоже.

Если вы хотите, чтобы Google индексировал вашу страницу, добавьте этот скрипт в <head>:

<meta content = 'index, follow' name = 'googlebot' />

и затем получить снова, используя Google Fetch.

Note:
Google будет проверять и следить и сканировать веб-сайт и переходить по всем ссылкам на странице. Если на вашей странице есть ссылка, как http://www.example.com/?_escaped_fragment_=/foo/barи перенаправить на http://www.example.com/foo/bar, Google будет индексировать, http://www.example.com/foo/barпотому что http://www.example.com/?_escaped_fragment_=/foo/barперенаправить на http://www.example.com/foo/bar.

Mitchell
источник