Skip to main content

IndexNow を有効にする

操作

1. 管理ページへ

Bing Webmaster Tools 画面の左メニュー [IndexNow] → [Get Started] と辿る

→ API キーが生成されるので、Download する

<APIキー>.txt という名前で、ファイルの中身も <APIキー>

2. 生成された API キーの配置

生成されたAPI キーを、サイトのトップに配置する

https://sugoi-domain.com/<APIキー>.txt

→ これは毎回ではなく、使い回す

3: 検索エンジンからインデクス作成してほしいページにアクセス

curl -s -o /dev/null -w "%{http_code}\n" "https://www.bing.com/indexnow?url=https://sugoi-domain.com/<インデックス作成してほしいページのURL>&key=<APIキー>"

→ 200 が返ってくれば OK

→ Bing Webmaster Tools 画面の左メニュー [IndexNow] に、リクエスト済の URL が表示される

POST で渡す場合の例 (Python)
py
#!/usr/bin/env python

import requests

API_KEY = "xxxxxxxxxxxxxxxxxxxxx"
SITE_URL = "tips.takaaki024.com"

urls = [
"https://tips.takaaki024.com/memo/bing-webmaster-tools-memo/add-site",
"https://tips.takaaki024.com/memo/peripherals-memo/keyboard-pfu-hhkb",
"https://tips.takaaki024.com/memo/peripherals-memo/keyboard-topre-realforce",
"https://tips.takaaki024.com/memo/peripherals-memo/keyboard-logicool-keys-to-go-2-etc",
]

payload = {
"host": SITE_URL,
"key": API_KEY,
"keyLocation": f"https://{SITE_URL}/{API_KEY}.txt",
"urlList": urls,
}

response = requests.post(
"https://www.bing.com/indexnow",
json=payload,
headers={"Content-Type": "application/json"},
)

print(f"Status: {response.status_code}")
print(response.text)

→ 自動化するなら s3 にアップロード後に、スクリプトで呼び出せば良さそう

疑問点

Q1. sitemap.xml と IndexNow との役割の違いは?

  • sitemap.xml はサイト内の URL 全部を載せているもの。急がなければこちらの巡回を待てば、じきインデックス作成される
  • 更新したものだけ優先的にインデックス作成してほしい場合は、IndexNow を使う

Q2. 全ページ必要なページだけに絞る必要がある?

  • スクリプト化で手を抜いて sitemap.xml の全部を呼び出したくはなるが
  • IndexNow 機能の目的からすると、更新のあったページだけに絞って通知すべき
  • 守らない場合は 信頼されない通知(スパム扱い)されて優先度が下がることになるかも?