2026年5月20日
2026年5月20日
Yoast SEOでXMLサイトマップを設定する方法
はじめに
XMLサイトマップはGoogleに「このサイトにはこんなページがあります」と伝えるファイルです。Yoast SEOのサイトマップ機能を正しく設定し、Google Search Consoleに送信することでインデックス登録が促進されます。
解決手順
ステップ1:Yoast SEOのサイトマップを有効化する
SEO → 設定 → 詳細設定 → XMLサイトマップ
→ 「XMLサイトマップ機能を有効化」をONにする
有効化すると https://example.com/sitemap_index.xml でサイトマップインデックスにアクセスできます。
ステップ2:サイトマップに含めるコンテンツを設定する
SEO → 設定 → コンテンツタイプ
→ 各コンテンツタイプで「検索での見え方」を設定
投稿(post): indexを許可 → サイトマップに含まれる
固定ページ(page): indexを許可 → サイトマップに含まれる
メディア(attachment): noindex推奨 → サイトマップから除外
カスタム投稿タイプ: 必要に応じて設定
ステップ3:WP-CLIでサイトマップURLを確認する
# サイトマップの存在確認
wp eval "echo get_sitemap_url('sitemap');"
# サイトマップ設定を確認
wp option get wpseo --format=json | python3 -m json.tool | grep -i sitemap
# サイトマップキャッシュをクリア
wp cache flush
wp rewrite flush
# サイトマップURLにアクセスしてXMLを確認
curl -s https://example.com/sitemap_index.xml | head -50
ステップ4:Google Search Consoleにサイトマップを送信する
1. Google Search Console にアクセス
2. 対象プロパティを選択
3. 左メニュー「サイトマップ」をクリック
4. sitemap_index.xml を入力して「送信」
5. ステータスが「成功しました」になることを確認
ステップ5:サイトマップのカスタマイズ
// functions.php — 特定の投稿をサイトマップから除外
add_filter('wpseo_sitemap_exclude_post_type', function($excluded, $post_type) {
// 'product_review' カスタム投稿タイプをサイトマップから除外
if ($post_type === 'product_review') {
return true;
}
return $excluded;
}, 10, 2);
// 特定の投稿IDをサイトマップから除外
add_filter('wpseo_sitemap_entry', function($url, $type, $object) {
$excluded_ids = [123, 456, 789];
if (in_array($object->ID ?? 0, $excluded_ids, true)) {
return false; // falseを返すと除外される
}
return $url;
}, 10, 3);
注意事項
- サイトマップが表示されない場合は 設定 → パーマリンク で「変更を保存」をクリックして
.htaccessを再生成してください noindexに設定したページはサイトマップに含まれません(Yoast SEOが自動的に除外します)- サイトマップのURLは
wp-config.phpにdefine('WP_SITEURL', ...)が設定されている場合、その値が使われます
まとめ
Yoast SEOのXMLサイトマップは SEO → 設定 → XMLサイトマップ から有効化できます。有効化後は sitemap_index.xml をGoogle Search Consoleに送信し、インデックス登録状況を定期的に確認してください。