---
metadata:
  - name: generator
    content: Diplodoc Platform v5.55.2
alternate:
  - https://yandex.kz/support/webmaster/kk/yandex-indexing/rendering.md
  - href: kk/yandex-indexing/rendering.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/support/webmaster/kk/llms.txt


# Индексирование страниц с JavaScript ^β^

С помощью Яндекс Вебмастера вы можете управлять индексированием страниц сайта, на которых контент отображается через JavaScript — указать, следует ли роботу выполнять JavaScript на страницах при обходе вашего сайта. Это может быть полезно, если на сайте не реализован SSR (Server-Side Rendering) или пререндеринг.


{% note info %}

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

{% endnote %}


## Управление индексированием {#indexing}

1. Перейдите в Яндекс Вебмастер.
1. Перейдите на страницу **Индексирование**&nbsp;→ **Рендеринг страниц JavaScript**<sup >β</sup>.
1. Выберите одну из опций. По умолчанию включена опция **На усмотрение робота Яндекса**. Это значит, что робот самостоятельно определит, выполнять ли JavaScript-код на страницах сайта. Например, для принятия решения он может оценить качество и полноту контента на странице с JavaScript и без и загрузить ту, которая может оказаться более полезной для посетителя сайта.
    
    {% note tip %}
    
    Запретите рендеринг, если на сайте реализован SSR (Server-Side Rendering) или пререндеринг.
    
    {% endnote %}
    

## Расширенные настройки рендеринга {#spec}

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

На страницах сайта, где контент загружается с задержкой, создайте объект `window.YandexRotorSetting` таким образом, чтобы он обрабатывался до события [DomContentLoaded](https://developer.mozilla.org/en-US/docs/Web/API/Document/DOMContentLoaded_event). Внутри этого объекта можно указать параметры, на которые будет реагировать робот Яндекса при обработке страницы. Параметры приведены в таблице ниже.

Пример кода:

```javascript

```


#|
||
**Параметр**
|
**Тип**
|
**Описание**
||
||
`WaiterEnabled`
|
Boolean
|
Возможные значения:
- `true`;
- `false`.

При значении `true` возможна проверка состояний:
- `IsLoaded`;
- `IsError`.

Подробное описание состояний ниже.
||
||
`IsLoaded`
|
Boolean
|
Возможные значения:
- `true` — при условии выполнения события `DomContentLoaded` контент считается загруженным, содержимое страницы попадает в базу робота Яндекса.
- `false`.
- Произвольная функция. [Примеры](#isloaded-ex)
||
||
`IsError`
|
Boolean
|
Возможные значения:
- `true` — загрузка контента считается ошибочной, содержимое страницы не обрабатывается роботом Яндекса;
- `false`.
||
|#


#|
||
`FailOnTimeout`
|
Boolean
|
Возможные значения:
- `true` — по истечение тайм-аута страница не попадет в базу робота;
- `false` — в базу попадет часть контента, которую робот успеет загрузить до истечения тайм-аута.

Тайм-аут можно задать в пользовательских настройках при `WaiterEnabled: true`.
||
||
`NoJsRedirectsToMain`
|
Boolean
|
Возможные значения:
- `true` — робот Яндекса проигнорирует редирект на главную страницу сайта;
- `false`.

Используйте параметр, если на вашем сайте реализован вызов `window.history.back()`, например, при использовании [History API](https://yandex.kz/support/webmaster/kk/robot-workings/ajax-indexing.md).

Робот Яндекса воспринимает вызов `window.history.back()` как переход на главную страницу без изменения содержимого. В результате на главную страницу может попадать контент с других страниц.

{% cut "Как определить подмену контента" %}


Вы можете заметить, что в результатах поиска описание главной страницы меняется на описание внутренних или атрибут [rel="canonical"](https://yandex.kz/support/webmaster/kk/robot-workings/canonical.md) меняется на атрибут внутренних страниц.


{% endcut %}
||
|#

**Примеры реализации JavaScript-кода**

 
:   {% cut "Дождаться загрузки элемента с нужным CSS-селектором" %}
    
    
    ```javascript
    <!-- Хотим дождаться элемента с классом '.observable-class'.
    Он будет создан через 10 секунд --->
    
    <!-- Этот код должен быть вставлен прямо в html --->
    
    
    <!-- Этот код можно загружать через 
    
    <!-- Скрипт для примера. Создаем элемент с нужным классом -->
    
    ```
    
    
    {% endcut %}
    
    {% cut "Подождать 5 секунд после загрузки" %}
    
    
    ```javascript
    <!-- Рекомендуем полагаться на ожидание конкретных элементов.
    Загрузка ресурсов роботом может занимать неопределенное время --->
    
    <!-- Этот код должен быть вставлен прямо в html --->
    
    
    <!-- Этот код можно загружать через 
    ```
    
    
    {% endcut %}

**Примеры реализации функции внутри isLoaded**{#isloaded-ex}

 
:   {% cut "Проверить состояние страницы" %}
    
    
    ```javascript
    <!--В примере проверяем, что на странице размещено больше 10 элементов div-->
    
    window.YandexRotorSettings = {
                WaiterEnabled: true,
                IsLoaded: function() {
                    return document.body.querySelectorAll('div').length > 10;
                }
            };
    ```
    
    
    {% endcut %}
    
    {% cut "Дождаться загрузки контента в элементе title" %}
    
    
    ```javascript
    window.YandexRotorSettings = {
        WaiterEnabled: true,
        IsLoaded: function() {
            return document.title.length > 0;
        }
    }
    ```
    
    
    {% endcut %}

## Узнайте больше

- [Проверка страницы](https://yandex.kz/support/webmaster/kk/service/check-url.md)


<div class="cut-button">

{% cut "Написать в службу поддержки" %}

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


<div style="padding: 15px;
        margin: 10px 0;
        background: #FFFFFF;
        border-radius: 10px;
        border: 1px solid var(--yc-color-line-generic);">
    <iframe style="background: #FFFFFF;"
        height="700"
        width="100%"
        frameborder="0"
        src="https://forms.yandex.kz/surveys/4545/?&iframe=1&lang=ru">
    </iframe>
</div>




{% endcut %}

</div>



<!-- source: kk/_includes/footer.md -->
<div width="100%" align="center" class="main-footer"> 
<br><br><br>
Также вы можете перейти на сервис 
<br><br>



[![](../_assets/logo/logo-pic.svg)](https://webmaster.yandex.kz/) [![](../_assets/logo/logo-ru.svg)](https://webmaster.yandex.kz/)




</div>


<!-- source: kk/_includes/styles/footer-style.md -->

<!-- endsource: kk/_includes/styles/footer-style.md -->
<!-- endsource: kk/_includes/footer.md -->

<!-- source: kk/_includes/cut-button-style.md -->

<!-- endsource: kk/_includes/cut-button-style.md -->
