Googlebot не видит контент, сгенерированный jquery

Я использую jQuery для извлечения контента из базы данных с помощью запроса json. Затем он заменяет подстановочный знак в HTML (например, %title%) фактическим содержимым. Это прекрасно работает, и таким образом я могу хранить свои многоязычные тексты в базе данных, но робот Googlebot видит только подстановочные знаки, а не фактический контент. Я знаю, что Googlebot видит страницы без javascript, но есть ли способ справиться с этим? Спасибо!


person John    schedule 06.06.2011    source источник


Ответы (3)


Вам следует тщательно изучить этот документ в Google. читать.

В нем обсуждается, как разрешить Googlebot индексировать:

  • страницы, содержимое которых меняется в зависимости от изменения значений #hashfragment в URL-адресе.
  • страницы, содержимое которых меняется сразу после загрузки, но не имеют каких-либо специальных #hashfragment как таковых.

Короче говоря, вы планируете добавить <meta name="fragment" content="!">, как обсуждалось в «шаге 3», и отвечать на специальные запросы на серверной стороне, доставляя обратно все содержимое сразу, что ваш клиентский код в противном случае он был бы сгенерирован после загрузки страницы. Эти специальные запросы на самом деле представляют собой запросы с ?_escaped_fragment_=... в URL-адресе, указывающие серверу, что он должен предварительно запечь (мои слова) всю окончательную презентацию в один ответ для робота Googlebot.

Тем не менее, поскольку вам придется приложить усилия для вывода заполненного контента для этого особого случая, вам может быть лучше сделать это в вашем общем случае (избегая необходимости иметь дело с запросами Google _escaped_fragment_), возможно, еще способ чтобы при необходимости поменять местами ваши маркеры после загрузки страницы (например, с помощью промежутков с определенными class или id для их идентификации).

person DuckMaestro    schedule 06.06.2011
comment
Я уже использую PHP для извлечения данных, поэтому для переводов я удалил jQuery как промежуточный вариант и позволил PHP выполнять подстановочные знаки. Ваше здоровье! - person John; 07.06.2011

На момент этого ответа у Google, похоже, был почти полностью или полностью функциональный бот для сканирования javascript:

person BatteryAcid    schedule 18.05.2016
comment
Спасибо! that are correctly rendered in Google's Webmaster tools : вы имеете в виду, что можно увидеть, как страница отображается для GoogleBot? Каким именно инструментом? Другое замечание: основной контент моего веб-сайта загружается после того, как 1) карта Google отображается на странице 2) вызов AJAX импортирует контент. Как вы думаете, это сработает, или вы думаете, что GoogleBot не будет ждать 1) и 2) и вместо этого увидит мой веб-сайт пустым? - person Basj; 19.05.2016
comment
Я использовал инструменты Google для веб-мастеров, и он зафиксирует, как выглядит ваш сайт, и представит его вам. Вы должны создать учетную запись и подтвердить, что вы являетесь владельцем сайта. Следует дождаться загрузки карты. Если у вас есть учетная запись, вы можете поиграть с инструментами для веб-мастеров. - person BatteryAcid; 19.05.2016

Робот Googlebot явно не отрисовывает загружаемую им страницу. Вероятно, это будет то же самое поведение, что и другие поисковые роботы.

Вам нужно использовать решение для написания сценариев или компиляции на стороне сервера (есть из чего выбирать, включая PHP, ASP.NET и т. д.). Таким образом, вы по-прежнему сохраняете свои динамические функции и функции i18n, а робот Googlebot видит вашу страницу так, как вы предполагали. Или, по крайней мере, сделайте это для основных атрибутов страницы, таких как заголовок, который, как вы знаете, оценивает Googlebot, и продолжайте обновлять jQuery для не столь важных частей страницы.

(Если честно, использование jQuery для замены токенов после загрузки страницы, вероятно, не самый эффективный способ сделать что-то, особенно когда сценарии на стороне сервера настолько просты и бесплатны).

person slugster    schedule 06.06.2011