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 機能の目的からすると、更新のあったページだけに絞って通知すべき
- 守らない場合は 信頼されない通知(スパム扱い)されて優先度が下がることになるかも?