Блог Яндекса для вебмастеров

Рендеринг страниц JavaScript (β) и Проверка страницы (β): передавайте поиску контент в полном объёме

В последнее время мы работали над тем, чтобы сделать роботов Яндекса еще более функциональными и повысить прозрачность их работы. Спешим рассказать вам о нескольких важных обновлениях.

Рендеринг страниц JavaScript (β)

Теперь роботы Яндекса лучше индексируют ваши страницы, дают больше сигналов и технической информации о сайтах, предоставляют возможность управления и настройки JavaScript для получения поиском контента с вашего сайта в полном объеме.

Управление индексацией JS-сайтов

На некоторых сайтах активно используется JS, что приводит к загрузке важного контента уже после открытия страницы пользователем. В таких случаях оптимизаторы обычно настраивали SSR (серверный рендеринг), чтобы поисковый робот гарантированно получил весь контент страницы. Это требует квалификации, ресурсов на стороне сайта и затрат на настройку.

Чтобы упростить задачу владельцам таких сайтов и не терять ценный контент, команда поискового робота использует технологию рендеринга, то есть выполнения JS-кода на стороне поискового робота. Сравните модели индексирования вашего сайта с применением рендеринга и без него в новом разделе Рендеринг страниц JavaScript (β).

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

Настройка исполнения JS

Большинство страниц не требуют рендеринга при индексировании и скачиваются без JavaScript. Но если выполнение JS даёт новый ценный контент поиску, алгоритм может рекомендовать использование рендеринга. Это решение принимается автоматически, но вы можете выбрать подходящий вашему сайту статус самостоятельно. Укажите нужные настройки в инструменте Рендеринг страниц JavaScript (β):

  1. «Рекомендую рендерить» — рендеринг страниц будет осуществляться при наличии технической возможности и необходимости.
  2. «На усмотрение робота Яндекса» — решение о рендеринге будет принято автоматически поисковой системой по результатам анализа сайта.

Если версия страницы с JavaScript содержит больше полезного контента, то Вебмастер рекомендует использовать рендеринг JS для вашего сайта.

  1. «Не рендерить» — рендеринг вашего сайта осуществляться не будет. Такие настройки можно выставить, если контент, получаемый в результате исполнения JavaScript, отличается от желаемого по каким-то причинам.

Можно ли узнать, исполняет ли робот JavaScript на конкретных страницах моего сайта?

Да. Мы также запустили новую версию инструмента Проверка страницы (β). В нём можно увидеть контент, который проиндексирован поиском, и в том числе — был ли выполнен JavaScript при сканировании страницы. 

Нужно ли дать доступ роботу к вызываемым скриптам?

Да, нужно, иначе робот не сможет корректно выполнить JavaScript на странице. Это можно сделать через директивы Allow, Clean-param или проверить запрещающий http-заголовок noindex.

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

Оказывает ли исполнение JavaScript дополнительную нагрузку на сервер?

При выполнении JavaScript-кода робот может создавать дополнительную нагрузку на ваш сервер.

Если уже реализован пререндеринг/SSR, нужно ли отключить это и выбрать настройку «Рекомендую исполнять JS» в Вебмастере?

Необходимости в этом нет. Такой статус настройки — рекомендация роботу, а не строгое требование. Поскольку робот уже получает полный контент страниц благодаря пререндеру/SSR, весьма вероятно, что робот не использует рендеринг на вашем сайте, это не даёт пользы прямо сейчас. Но при выключении пререндера/SSR робот со временем должен понять, что на сайте стоит выполнять JS. На это может уйти какое-то время, в связи с чем контент определенных страниц может временно быть доступным не в полном объеме. Чтобы снизить вероятность этой проблемы, рекомендуем на всякий случай предупредить поддержку поиска о таком переключении.

Нужно ли делать пререндер/SSR на новом сайте? Или достаточно настройки «Рекомендую исполнять JS» в Вебмастере?

Выбор остаётся за вами. Можно либо сделать пререндер/SSR и выключить рендеринг в Вебмастере, либо наоборот, не делать пререндер/SSR и выбрать опцию «Рекомендую исполнять JS». Эти методы равноценны, исполнение JS на стороне робота не даёт преимуществ. Главное, чтобы робот мог получить контент страниц — выбор конкретного метода не играет роли.

Скорое прекращение поддержки страниц с escaped_fragment

Для индексирования динамических AJAX-сайтов каждой его странице необходима HTML-версия. Ранее о ее наличии поиску можно было сообщить через параметр #! в адресе страницы. Поисковая система определяла соответствие между #! и элементом «?_escaped_fragment_=» и индексировала страницу в HTML (например, страница http://www.example.com/#!blog индексировалась как http://www.example.com/?_escaped_fragment_=blog).

Страницы с параметром #! больше не будут поддерживаться поисковой системой Яндекса. Чтобы контент был доступен пользователям и не пропал из результатов выдачи, необходимо настроить с таких страниц редирект 301 на новые с корректными адресами (а именно — без параметра #!). Настраивать редирект нужно как со страниц по адресам вида http://www.example.com/?_escaped_fragment_=blog, так и со страниц вида http://www.example.com/#!blog.

Страницы с тегом «meta fragment» также скоро перестанут индексироваться, поэтому рекомендуем проверить для них технологию рендеринга и настроить ее в Вебмастере в случае необходимости. 

Более подробно о том, что случится с AJAX-страницами в будущем, мы расскажем в отдельном посте.

Проверка страницы (β)

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

Проиндексированное содержимое страницы

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

Стало проще отлаживать мобильную версию сайта: можно посмотреть на страницу с мобильным или десктопным типом запроса

Это поможет узнать, какой именно контент получает поисковый робот при сканировании страниц, верно ли указаны редиректы, тег rel=«alternate» и другие технические параметры.

Данные о том, присутствует ли страница в поиске, есть ли запреты индексации

Это упрощает анализ, помогает найти и исправить проблемы при их наличии.

Теперь можно узнать, выполнял ли робот JS при обращении к странице сайта

Робот выполняет JavaScript, если при загрузке содержимого страницы это необходимо. Теперь статус теперь доступен в обновлённом инструменте.

Технические данные страницы в одном разделе

Все они собраны в одном разделе и представлены в детальном и понятном виде.

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

Следите за нашими новостями и подписывайтесь на каналы:
Блог Яндекса для Вебмастеров
Канал Яндекса о продвижении сайтов на YouTube
Канал для владельцев сайтов в Яндекс Дзен

17 комментариев
SSR создаёт нагрузку на сервер - на мой взгляд проще отдавать роботу статический html с микроразметкой.
platon
Сотрудник Яндекса11 июля, 18:31
dorisk8er,
вы действительно можете отдавать на запросы наших роботов статический html-документ, это позволит ему корректно индексировать содержимое страниц без использования SSR. В этом случае рендеринг страниц JavaScript можно отключить, предварительно убедившись в корректности отдачи содержимого нашим роботам.
Алексей Гизатуллин
11 июля, 15:41
Из-за того что бот пытался рендерить сам. Напилил себе страниц с 500 ответом. Переключил не рендерить, вроде стало уходить. 
Поддержка не имеет понятия почему при рендеринге они получают 500 и показать как это воспроизвести не могут. В итоге наши разработчики просто не могут найти проблему. Как воспроизвести разработчикам рендеринг на стороне бота. 
platon
Сотрудник Яндекса11 июля, 22:47
Алексей Гизатуллин,
напишите, пожалуйста, повторно в рамках переписки с поддержкой, которую вы вели ранее, или пришлите номер тикета. Коллеги постараются помочь вам с воспроизведением рендеринга робота.
Дмитрий Новожилов
11 июля, 16:40
после нескольких минут ожидания сервис вывалился в ошибку. Проверить рендеринг не удалось
platon
Сотрудник Яндекса11 июля, 22:55
Дмитрий Новожилов,
чтобы мы с коллегами могли детальнее проверить, с чем это связано, напишите, пожалуйста, нам через форму на странице https://yandex.ru/support/webmaster/yandex-indexing/rendering.html . Так мы сможем подробно проанализировать ситуацию.
Интересно, как вы предлагаете редиректить якорные ссылки? 
http://www.example.com/#!blog
Если такое http://www.example.com/?_escaped_fragment_=blog на стороне сервера легко можно обработать, то с якорными еще та задачка так как #!blog автоматом преобразовывается в ?_escaped_fragment_=blog
platon
Сотрудник Яндекса12 июля, 19:39
dmitryslam,
якорные ссылки не индексируются отдельно и не участвуют в поиске. Такие ссылки начинаются на #, например: https://yandex.ru/support/webmaster/indexing-options/link-metrica.html#indexing-settings . Сочетание #! сообщает о наличии HTML-версии AJAX-страницы. Что касается редиректа, то можно настроить перенаправление на саму страницу, содержащую якорную ссылку.
Уже месяц как включили "рекомендуем рендерить", но настройка никакого влияния на индексацию не оказала. Проверка показывает, что контент может рендериться корректно, но на практике робот всё также обрабатывает страницы без рендеринга. Поддержка ничего ответить не смогла и порекомендовала SSR. Кароче говоря, задумка хорошая, до реализации когда доживём - неизвестно.
platon
Сотрудник Яндекса12 июля, 18:14
nectarinseo,
в данный момент функционал ещё дорабатывается, поэтому действительно могут возникать ситуации, при которых робот не может полноценно отрендерить всё содержимое страницы в полной мере.
m00nk@tut.by
12 июля, 17:24
На странице "Проверка страницы (β)" выскочило окошко с предложением оценить работу сервиса. Оценку звездочками поставил, а комментарий ввести не смог - поле ввода есть, но курсор в него не становится.

Яндекс такой яндекс )))
platon
Сотрудник Яндекса12 июля, 19:42
m00nk@tut.by,
спасибо, что обратили наше внимание на это обстоятельство. Передали информацию специалистам.
Роман Комлев
12 июля, 17:39
Нужно ли дать доступ роботу к вызываемым скриптам?
Да, нужно, иначе робот не сможет корректно выполнить JavaScript на странице. Это можно сделать через директивы Allow, Clean-param или запрещающий http-заголовка noindex.




ЧТО????
platon
Сотрудник Яндекса13 июля, 17:52
Роман Комлев,
уточните, пожалуйста, что именно вызывает вопросы в этой формулировке?
Роман Комлев
14 июля, 06:29
platon,
Дать доступ через запрещающий NOINDEX?


Поясните пожалуйста?
platon
Сотрудник Яндекса15 июля, 05:10
Роман Комлев,
нужно проверить, в том числе, и запрещающий http-заголовок, чтобы убедиться в доступности файлов скриптов. Спасибо за сигнал о не совсем однозначной формулировке!
Роман Комлев
15 июля, 06:12
platon,
вот теперь логично изложили.