Я использую jQuery для извлечения контента из базы данных с помощью запроса json. Затем он заменяет подстановочный знак в HTML (например, %title%) фактическим содержимым. Это прекрасно работает, и таким образом я могу хранить свои многоязычные тексты в базе данных, но робот Googlebot видит только подстановочные знаки, а не фактический контент. Я знаю, что Googlebot видит страницы без javascript, но есть ли способ справиться с этим? Спасибо!
Googlebot не видит контент, сгенерированный jquery
Ответы (3)
Вам следует тщательно изучить этот документ в Google. читать.
В нем обсуждается, как разрешить Googlebot индексировать:
- страницы, содержимое которых меняется в зависимости от изменения значений
#hashfragment
в URL-адресе. - страницы, содержимое которых меняется сразу после загрузки, но не имеют каких-либо специальных
#hashfragment
как таковых.
Короче говоря, вы планируете добавить <meta name="fragment" content="!">
, как обсуждалось в «шаге 3», и отвечать на специальные запросы на серверной стороне, доставляя обратно все содержимое сразу, что ваш клиентский код в противном случае он был бы сгенерирован после загрузки страницы. Эти специальные запросы на самом деле представляют собой запросы с ?_escaped_fragment_=...
в URL-адресе, указывающие серверу, что он должен предварительно запечь (мои слова) всю окончательную презентацию в один ответ для робота Googlebot.
Тем не менее, поскольку вам придется приложить усилия для вывода заполненного контента для этого особого случая, вам может быть лучше сделать это в вашем общем случае (избегая необходимости иметь дело с запросами Google _escaped_fragment_
), возможно, еще способ чтобы при необходимости поменять местами ваши маркеры после загрузки страницы (например, с помощью промежутков с определенными class
или id
для их идентификации).
На момент этого ответа у Google, похоже, был почти полностью или полностью функциональный бот для сканирования javascript:
В 2009 году Google предложил решение, позволяющее сделать AJAX доступным для сканирования: https://webmasters.googleblog.com/2009/10/proposal-for-making-ajax-crawlable.html
В 2015 году Google устарел описанный выше подход: https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html
Я успешно создал несколько одностраничных приложений, которые корректно отображаются в инструментах Google для веб-мастеров.
В Интернете есть много ресурсов, если вы хотите погрузиться глубже:
that are correctly rendered in Google's Webmaster tools
: вы имеете в виду, что можно увидеть, как страница отображается для GoogleBot? Каким именно инструментом? Другое замечание: основной контент моего веб-сайта загружается после того, как 1) карта Google отображается на странице 2) вызов AJAX импортирует контент. Как вы думаете, это сработает, или вы думаете, что GoogleBot не будет ждать 1) и 2) и вместо этого увидит мой веб-сайт пустым?
- person Basj; 19.05.2016
Робот Googlebot явно не отрисовывает загружаемую им страницу. Вероятно, это будет то же самое поведение, что и другие поисковые роботы.
Вам нужно использовать решение для написания сценариев или компиляции на стороне сервера (есть из чего выбирать, включая PHP, ASP.NET и т. д.). Таким образом, вы по-прежнему сохраняете свои динамические функции и функции i18n, а робот Googlebot видит вашу страницу так, как вы предполагали. Или, по крайней мере, сделайте это для основных атрибутов страницы, таких как заголовок, который, как вы знаете, оценивает Googlebot, и продолжайте обновлять jQuery для не столь важных частей страницы.
(Если честно, использование jQuery для замены токенов после загрузки страницы, вероятно, не самый эффективный способ сделать что-то, особенно когда сценарии на стороне сервера настолько просты и бесплатны).