Documentation for search engines

Search engines adopting the IndexNow protocol agree to support the protocol and future evolutions of the protocol. To participate, search engines must have a noticeable presence in at least one market and agree to share URLs with other search engines participating in the protocol.

Sharing URLs with other search engines


Search engines adopting IndexNow agree to share all submitted key-validated URLs with all other IndexNow search engines within 10 seconds after receiving key-validated URLs, or within 10 seconds after validating the key.

To share URLs, search engines will send a POST JSON request to all other search engines IndexNow API from specific IP addresses with a noreping URL parameter to notify search engines to not ping again these URLs.

Example:

If a IndexNow adopted search engine searchengine0 receives nearly simultaneously two requests:

A GET request

                https://searchengine0.com/indexnow?url=http://www.example1.com/product.html&key=
            

and a POST request

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

This search engine will re-ping all other IndexNow search engines within 10 second with the noreping parameter, with up to 10,000 URLs per post.

For instance, if searchengine0 notifies searchengine1, the call will be as follows:

                POST /indexnow?noreping HTTP/1.1
                Content-Type: application/json; charset=utf-8
                Host: searchengine1.com
                {
                  "host": "www.searchengine0.com",
                  "key": "",
                  "urlList": [
                    "https://www.example1.com/product.html",
                    "https://www.example2.org/url1",
                    "https://www.example2.org/folder/url2",
                    "https://www.example2.org/url3"
                  ]
                }
            

Communication between search engines will be https encrypted by public and private keys. The public key will be listed in the post; the private key of each search engines will be shared by each engine to other IndexNow search engines.

Search engines will identify them by listing their host and their public key in the request.

Identifying Search Engines

Search engines must share IndexNow IP ranges used to notify other search engines allowing high volume of calls per day.

The list of search engines supporting IndexNow is at this location https://www.indexnow.org/searchengines.json. It lists all IndexNow search engines configuration locations.

                {
                  "searchengine0": "https://www.searchengine0.com/indexnow/meta.json",
                  "searchengine1": "https://searchengine1.com/indexnow/meta.json"
                }
            

Search engines need to host a json file listing IndexNow API location and IP ranges authorizing reping. Search Engines are required to change their IPs file at least 24 hours in advance prior to changing their IP addresses.

                {
                  "api": "https://www.searchengine0.com/indexnow",
                  "IPs": [
                    {"ipv4Prefix": "55.55.1.1/32"},
                    {"ipv6Prefix": "2404:f340::/32"}
                  ]
                }
            

Search engines will not re-ping if IndexNow API request is not following search engines API terms of service. Search Engines will not re-ping more than once the same URLs received within the last 60 seconds.