Документация

Отправка одного URL-адреса


Чтобы отправить URL-адрес с помощью HTTP-запроса (замените URL-адресом, предоставленным поисковой системой), отправьте запрос по следующему URL-адресу:

                https://<searchengine>/indexnow?url=url-changed&key=your-key
            
  • url-changed — это URL-адрес вашего веб-сайта, который был добавлен, обновлен или удален. URL-адрес должен быть экранирован и закодирован, и убедитесь, что ваши URL-адреса соответствуют стандарту RFC-3986 для URL-адресов.
  • Ваш ключ должен содержать от 8 до 128 шестнадцатеричных символов. Ключ может содержать только следующие символы: строчные (a-z), прописные (A-Z), цифры (0-9) и тире (-).

Например, если вы хотите уведомить поисковые системы об обновлении https://www.example.com/product.html и хотите использовать этот ключ , ваш URL-адрес будет таким:

                https://<searchengine>/indexnow?url=https://www.example.com/product.html&key=
            

Вы можете отправить HTTP-запрос, используя свой браузер, wget, curl или любой другой механизм по вашему выбору. Успешный запрос вернет код ответа «HTTP 200». Если вы получили другой ответ, проверьте, что вы не отправляете запрос слишком часто, что ключ и URL-адрес действительны, и повторно отправьте запрос. Код ответа «HTTP 200» означает только то, что поисковая система получила ваш URL.

Отправка набора URL-адресов


Чтобы отправить набор URL-адресов с помощью HTTP-запроса, отправьте запрос POST JSON на URL-адрес, предоставленный поисковыми системами. Замените именем хоста поисковой системы.

                POST /indexnow HTTP/1.1
                Content-Type: application/json; charset=utf-8
                Host: <searchengine>
                {
                  "host": "www.example.com",
                  "key": "",
                  "urlList": [
                      "https://www.example.com/url1",
                      "https://www.example.com/folder/url2",
                      "https://www.example.com/url3"
                      ]
                }
            

Вы можете отправить до 10 000 URL-адресов в одном сообщении, при необходимости смешивая URL-адреса http и https.

Вы можете отправить HTTP-запрос, используя wget, curl или любой другой механизм по вашему выбору. Успешный запрос вернет код ответа «HTTP 200». Если вы получили другой ответ, проверьте свой запрос и, если все в порядке, отправьте его повторно. Код ответа «HTTP 200» означает только то, что поисковая система получила ваш набор URL-адресов.

Рекомендуется автоматизировать отправку URL-адресов, как только содержимое добавляется, обновляется или удаляется до определенного предела; см. лучшие методы работы с пользовательским содержимым в разделе «Вопросы и ответы».

Проверка права собственности с помощью ключа


Чтобы отправить URL-адреса, вы должны «подтвердить» право собственности на хост, для которого отправляются URL-адреса, разместив на этом хосте хотя бы один текстовый файл. После того, как вы отправите свои URL-адреса в поисковые системы, они будут выполнять обход содержимого файла ключа для проверки права собственности и использовать этот ключ до тех пор, пока вы его не смените. Только вы и поисковые системы должны знать ключ и местонахождение вашего файла ключа.

Мы предлагаем два способа проверки права собственности.

Вариант 1
Размещение текстового файла ключа в корневом каталоге вашего хоста.

Вы должны разместить текстовый файл ключа {your-key}.txt в кодировке UTF-8 с указанием ключа в файле в корневом каталоге вашего веб-сайта.

Например, для предыдущих примеров вам нужно разместить ваш файл ключа в кодировке UTF-8 по адресу: https://www.example.com/.txt, и этот файл должен содержать ключ

Вариант 2
Размещение текстового ключевого файла на вашем хосте.

Вы также можете разместить от одного до нескольких файлов ключа в кодировке UTF-8 в других местах на том же хосте, и вы должны сообщать поисковым системам местоположение этого файла ключа в каждом уведомлении IndexNow с помощью переменной keyLocation.

Если вы отправляете URL-адрес, укажите местоположение файла ключа как значение параметра URL-адресов keyLocation.

                    https://<searchengine>/indexnow?url=http://www.example.com/product.html&key=&keyLocation=http://www.example.com/myIndexNowKey63638.txt
                

Если вы отправляете набор URL-адресов, укажите местоположение файла ключа как переменную keyLocation в содержимом JSON.

                    POST /indexnow HTTP/1.1
                    Content-Type: application/json; charset=utf-8
                    Host: <searchengine>
                    {
                      "host": "www.example.com",
                      "key": "",
                      "keyLocation": "https://www.example.com/myIndexNowKey63638.txt",
                      "urlList": [
                          "https://www.example.com/url1",
                          "https://www.example.com/folder/url2",
                          "https://www.example.com/url3"
                          ]
                    }
                

В этом варианте 2 расположение файла ключа определяет набор URL-адресов, которые могут быть включены в этот ключ. Файл ключа, расположенный по адресу: http://example.com/catalog/key12457EDd.txt, может включать любые URL-адреса, начинающиеся с http://example.com/catalog/, но не может включать URL-адреса, начинающиеся с http://example.com/help/.

К URL-адресам, которые не считаются действительными в http://example.com/catalog/sitemap.xml, относятся:

URL-адреса, которые не считаются действительными в варианте 2, могут не рассматриваться для индексации. Настоятельно рекомендуется использовать вариант 1 и поместить файл ключа в корневом каталоге вашего веб-сервера.

Response format


HTTP Code
Response
Reasons
200
OK
URL submitted successfully
202
Accepted
URL received. IndexNow key validation pending.
400
Bad request
Invalid format
403
Forbidden
In case of key not valid (e.g. key not found, file found but key not in the file)
422
Unprocessable Entity
In case of URLs which don’t belong to the host or the key is not matching the schema in the protocol
429
Too Many Requests
Too Many Requests (potential Spam)

Требования к поисковым системам


Search engines adopting the IndexNow protocol agree that submitted URLs will be automatically shared with all other participating search engines. To participate, search engines must have a noticeable presence in at least one market or be closely linked to the search market and make a significant contribution to the number of url submissions. Learn more