📢 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> | ||