Googlebot против Google Plus +1 Share Button bot?

Настройка сайта

У меня есть полностью одностраничное веб-приложение на стороне клиента, которое динамически обновляется и маршрутизируется на стороне клиента. Я перенаправляю любой #! запросы к безголовому серверу, который обрабатывает запрос с выполненным javascript и возвращает окончательный HTML-код боту. В шапке сайта также есть:

<meta name="fragment" content="!">

Получить, пока Google работает

Используя инструмент Fetch as Google для веб-мастеров, на странице Fetch Status я вижу, что jQuery, который я использовал для обновления og:title, og:image и og:description, был выполнен, а значения по умолчанию заменены. Все выглядит хорошо, и если я наведу курсор мыши на URL-адрес, скриншот будет правильным.

Однако с помощью кнопки Google Plus независимо от того, на какие значения обновлены теги og:title, og:image и og:description, всплывающее окно общего доступа всегда использует значения по умолчанию/начальные.

Попытка использования

Я вызываю это каждый раз, когда контент сайта обновляется, перенаправляется и обновляется мета-контент.

gapi.plusone.render("plusone-div");

Я предполагал, что если этот подход работает для робота Googlebot, он также должен работать и для кнопки +1. Есть ли разница между роботом Googlebot и тем, что +1 использует для извлечения метаданных сайта?

edit: Передача URL-адреса, содержащего #! выдает "сайт не найден"

gapi.plusone.render("plusone-div", {"href" : 'http://www.site.com/#!city/Paris');

person r3su    schedule 17.10.2013    source источник


Ответы (2)


Сканер Google отображает фрагмент не при отображении кнопки +1, а тогда, когда пользователь нажимает кнопку +1 (или кнопку «Поделиться»). Что вам следует попробовать, так это определить, что ваш сервер отправляет роботу Google во время этой инициированной пользователем и асинхронной загрузки поисковым роботом Google.

Вы можете эмулировать это с помощью следующей команды cURL:

curl -A "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google (+https://developers.google.com/+/web/snippet/)" http://myurl.com/path/to/page

Вы можете вывести эту команду в файл, добавив -o testoutput.html к команде.

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

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

Если вы можете предоставить реальные URL-адреса для тестирования, я, вероятно, смогу дать более конкретный отзыв.

person BrettJ    schedule 17.10.2013
comment
То, что я получаю с помощью команды curl, — это состояние по умолчанию для html-файла без выполнения javascript, поэтому ни один из метатегов не был обновлен. Тогда имеет смысл, что сканер Google не подхватывает обновленные метатеги/контент. Я все еще немного озадачен тем, как, учитывая идентичный URL-адрес, инструмент Fetch as Google смог перевести #! в escaped_fragment и вернуться с выводом, где был выполнен javascript. Является ли логика сканирования Fetch as Google такой же, как и для индексации поиска? Похоже, в этом случае мне, возможно, придется пойти по пути на стороне сервера. - person r3su; 17.10.2013
comment
Я не знаком с Fetch, но да, насколько я знаю, поисковый робот Google+ в основном ищет метаданные, которые, как он ожидает, могут быть доступны в статическом контенте. Интересно, сработает ли для вас создание чего-то вроде синопсиса, подобного тому, о чем Гас писал здесь в своем блоге: gusclass.com/blog/2012/08/15/ - person BrettJ; 17.10.2013
comment
Спасибо, что подтвердили Бретта. В этом случае у меня нет другого выбора, кроме как выполнить некоторую работу на стороне сервера, чтобы заставить это работать. Спасибо, что указали мне правильное направление! - person r3su; 17.10.2013

Google+ извлекает страницы, используя параметр запроса _escaped_fragment_, но без знака равенства.

Таким образом, будет получено http://www.site.com/?_escaped_fragment, а НЕ https://www.site.com?_escaped_fragment_=.

Сканер Google Search по-прежнему использует фрагмент со знаком равенства, это только для сканера Google plus.

person Sergio David Acosta    schedule 28.01.2014