ドキュメンテーション

1 つの URL を送信する


HTTP リクエストを使用してURL を送信するには ( を検索エンジンによって指定された URL に置き換えます)、次の URL にリクエストを発行します。

                https://<searchengine>/indexnow?url=url-changed&key=your-key
            
  • url-changed は、追加、更新、または削除された Web サイトの URL です。URL は URL エスケープされ、エンコードされている必要があります。URL が URI の RFC-3986 標準に従っていることを確認してください。
  • -key には、最小 8 文字、最大 128 文字の 16 進数を指定します。このキーに使用できる文字は、小文字 (a ~ z)、大文字 (A ~ Z)、数字 (0 ~ 9)、ダッシュ (-) のみです。

たとえば、https://www.example.com/product.html 更新されたことを検索エンジンに通知し、このキー を使用する場合、URL は次のようになります。

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

ブラウザー、wget、curl、またはその他の任意のメカニズムを使用して、HTTP リクエストを発行することができます。リクエストが成功すると、HTTP 200 応答コードが返されます。別の応答を受け取った場合は、頻繁に送信しないことと、キーと URL が有効であることを確認してから、リクエストを再送信します。HTTP 200 応答コードは、検索エンジンが URL を受信したことのみを示すものです。

複数の URL をまとめて送信する


HTTP リクエストを使用して複数の URL をまとめて送信するには、検索エンジンによって提供された URL に POST JSON リクエストを発行します。 を検索エンジンのホスト名で置き換えます。

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

1 回の投稿あたり最大 10,000 個の URL を送信でき、必要に応じて http と https の URL を混在させることができます。

wget、curl、または選択した別のメカニズムを使用して、HTTP リクエストを発行できます。リクエストが成功すると、HTTP 200 応答コードが返されます。別の応答を受け取った場合は、リクエストを確認し、問題がなければそのリクエストを再送信する必要があります。HTTP 200 応答コードは、検索エンジンが URL 一式を受信したことのみをすものです。

推奨される方法は、コンテンツの追加、更新、または削除がある程度行われた時点で、URL の送信を自動化することです。ユーザー生成コンテンツのベストプラクティスについては、「よくある質問」を参照してください。

キーによる所有権の確認


URL を送信するには、ホスト内の少なくとも 1 つのテキスト ファイルをホストすることによって、URL が送信されるホストの所有権を「証明」する必要があります。URL を検索エンジンに送信すると、検索エンジンはキー ファイルをクロールして所有権を確認し、そのキーをユーザーが変更するまで使用します。ユーザーと検索エンジンのみが、キーとファイル キーの場所を知っている必要があります。

所有権を確認する方法は 2 つあります。

オプション 1
ホストのルート ディレクトリにテキスト キー ファイルをホスする。

UTF-8 でエンコードされたテキスト キー ファイル {your-key}.txt をホストする必要があります。このファイルには、Web サイトのルート ディレクトリにあるキーがリストされています。

たとえば、前述の例では、UTF-8 キー ファイルをhttps://www.example.com/.txt にホストする必要があり、このファイルにはキーが含まれている必要があります。

オプション 2
ホスト内でテキスト キー ファイルをホストする。

1 つ以上の UTF-8 でエンコードされたテキスト キー ファイルを同じホスト内の他の場所にホストすることもできます。また、keyLocation 変数を使用して場所を指定することにより、各IndexNow 通知でこのテキスト キー ファイルの場所を検索エンジンに教える必要があります。

URL を送信する場合は、キー ファイルの場所を keyLocation URL パラメータ値として指定します。

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

複数の URL をまとめて送信する場合は、JSON コンテンツでキー ファイルの場所を keyLocation変数として 指定します。

                    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 あるキー ファイルには、http://example.com/catalog/ で始まるすべての URL を含めることができますが、http://example.com/help/ で始まる URL を含めることはできません。

http://example.com/catalog/sitemap.xml では有効と見なされない URL は次のとおりです。

オプション 2 で有効と見なされていない URL は、インデックス作成の対象と見なされない場合があります。オプション 1 を使用して、ファイル キーを Web サーバのルート ディレクトリに置くことを強くお勧めします。

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