Dokumentacja

Przesyłanie pojedynczego adresu URL


Aby przesłać adres URL za pomocą żądania HTTP, zastąp adresem URL dla danej wyszukiwarki i wyślij żądanie na następujący adres:

                https://<searchengine>/indexnow?url=zmieniony-url&key=twój-klucz
            
  • Zastąp wartość „zmieniony-url” adresem URL Twojej witryny, który został dodany, zaktualizowany lub usunięty. Adres URL musi być zakodowany i zgodny ze standardem RFC-3986 dotyczącym identyfikatorów URI.
  • Wartość „twój-klucz” powinna zawierać co najmniej 8, ale nie więcej niż 128 znaków szesnastkowych. Klucz może zawierać tylko następujące znaki: małe litery (a-z), wielkie litery (A-Z), cyfry (0-9) i łączniki (-).

Na przykład jeśli chcesz powiadomić wyszukiwarki, że został zaktualizowany adres https://www.example.com/product.html, i chcesz użyć klucza , adres URL będzie wyglądał następująco:

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

Możesz wysłać żądanie HTTP za pomocą przeglądarki internetowej, wget, curl lub dowolnego innego wybranego przez siebie mechanizmu. W odpowiedzi na pomyślne przesłanie żądania otrzymasz kod HTTP 200. W przypadku innej odpowiedzi sprawdź, czy nie przesyłasz żądań zbyt często oraz czy klucz i adres URL są prawidłowe. Następnie prześlij żądanie ponownie. Kod odpowiedzi HTTP 200 wskazuje tylko, że wyszukiwarka otrzymała od Ciebie adres URL.

Przesyłanie zestawu adresów URL


Aby przesłać zestaw adresów URL za pomocą żądania HTTP, wyślij żądanie POST w formacie JSON na adresy URL poszczególnych wyszukiwarek. Zastąp nazwą hosta wyszukiwarki.

                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"
                      ]
                }
            

Pojedyncze żądanie POST może zawierać do 10 000 adresów URL. Dozwolone jest mieszanie adresów URL z przedrostkami http i https.

Możesz wysłać żądanie HTTP za pomocą wget, curl lub innego wybranego przez siebie mechanizmu. W odpowiedzi na pomyślne przesłanie żądania otrzymasz kod HTTP 200. W przypadku innej odpowiedzi sprawdź treść żądania. Jeśli wygląda prawidłowo, prześlij je ponownie. Kod odpowiedzi HTTP 200 wskazuje tylko, że wyszukiwarka otrzymała Twój zestaw adresów URL.

Zalecamy, aby zautomatyzować przesyłanie adresów URL w momencie dodania, aktualizacji lub usunięcia treści – do pewnego limitu. W sekcji Często zadawane pytania możesz zapoznać się ze sprawdzonymi metodami dotyczącymi treści generowanych przez użytkowników.

Weryfikacja własności hosta za pomocą klucza


Aby przesłać adresy URL, musisz udowodnić, że jesteś właścicielem hosta przesyłanych adresów URL. Możesz to zrobić, umieszczając na hoście co najmniej jeden plik tekstowy. Gdy prześlesz adresy URL do wyszukiwarek, zindeksują one plik z kluczem w celu weryfikacji własności hosta i będą używać tego klucza, dopóki go nie zmienisz. Tylko Ty i wyszukiwarki powinniście znać klucz i lokalizację pliku z kluczem.

Oferujemy dwa sposoby weryfikacji własności.

Opcja 1
Umieszczenie pliku tekstowego z kluczem w katalogu głównym hosta

Umieść plik tekstowy {twój-klucz}.txt z kluczem w katalogu głównym Twojej witryny. Zapisz plik w formacie UTF-8.

W poprzednich przykładach należałoby umieścić plik UTF-8 z kluczem pod adresem https://www.example.com/.txt, przy czym plik ten musiałby zawierać klucz .

Opcja 2
Umieszczenie pliku tekstowego z kluczem w dowolnej lokalizacji na hoście

Możesz również przechowywać jeden lub kilka plików tekstowych UTF-8 z kluczem w różnych lokalizacjach na tym samym hoście. Musisz wówczas poinformować wyszukiwarki, gdzie znajdują się pliki tekstowe z kluczem, za pomocą oddzielnych powiadomień zawierających zmienną keyLocation.

Przesyłając adres URL, określ lokalizację pliku z kluczem jako wartość parametru keyLocation.

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

Jeśli przesyłasz kilka zestaw adresów URL, określ lokalizację pliku z kluczem za pomocą zmiennej keyLocation w kodzie 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"
                          ]
                    }
                

W opcji 2 lokalizacja pliku z kluczem determinuje, jakie adresy URL można w nim umieścić. Plik z kluczem zlokalizowany pod adresem http://example.com/catalog/key12457EDd.txt może zawierać adresy URL rozpoczynające się ciągiem http://example.com/catalog/, ale nie może zawierać adresów URL rozpoczynających się od http://example.com/help/.

Adresy URL, które nie zostaną uznane za prawidłowe, jeśli będą figurować pod adresem http://example.com/catalog/sitemap.xml, obejmują:

Adresy URL, które nie zostaną uznane za prawidłowe w przypadku opcji 2, nie będą brane pod uwagę przy indeksowaniu. Zdecydowanie zalecamy korzystanie z opcji 1 i umieszczenie pliku z kluczem w katalogu głównym serwera WWW.

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)

Requirement for search engines


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