📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

339行目: 339行目:
   ]
   ]
  }
  }
<br>
===== 複数のURLを送信する例 =====
まず、サイトマップから送信するためのURLリストを作成する。<br>
<syntaxhighlight lang="sh">
#!/usr/bin/env sh
SITEMAP_URL="https://www.example.com/sitemap.xml"
 
# サイトマップをダウンロードしてURLを抽出
curl -s "$SITEMAP_URL" | grep -oP '<loc>\K[^<]+' > urllist.txt
echo "URLリストを urllist.txt に保存しました"
wc -l urllist.txt
</syntaxhighlight>
<br>
次に、IndexNowペイロードファイルを作成する。<br>
<syntaxhighlight lang="sh">
#!/usr/bin/env sh
# IndexNow設定
API_KEY="<APIキー>"
HOST="<ドメイン名>"
KEY_LOCATION="https://${HOST}/${API_KEY}.txt"
URL_FILE="urllist.txt"
OUTPUT_FILE="indexnow_payload.json"
# URLファイルの存在確認
if [ ! -f "$URL_FILE" ]; then
    echo "エラー: URLファイルが見つかりません: $URL_FILE"
    exit 1
fi
# JSONファイルを作成
echo "IndexNow ペイロード作成"
cat > "$OUTPUT_FILE" <<EOF
{
  "host": "${HOST}",
  "key": "${API_KEY}",
  "keyLocation": "${KEY_LOCATION}",
  "urlList": [
EOF
# URLリストを追加
URLS=$(cat "$URL_FILE" | sed 's/^/    "/;s/$/",/' | sed '$ s/,$//')
echo "$URLS" >> "$OUTPUT_FILE"
# JSONを閉じる
cat >> "$OUTPUT_FILE" <<EOF
  ]
}
EOF
# URLの数をカウント
URL_COUNT=$(cat "$URL_FILE" | wc -l)
echo "ペイロード作成完了"
echo "統計情報:"
echo "  URL数: $URL_COUNT"
echo "  ファイルサイズ: $(du -h "$OUTPUT_FILE" | cut -f1)"
</syntaxhighlight>
<br>
最後に、IndexNowにペイロードを送信する。<br>
curl -X POST "https://api.indexnow.org/indexnow" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @indexnow_payload.json
<br><br>
<br><br>