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.phpdefine('WP_SITEURL', ...) が設定されている場合、その値が使われます

まとめ

Yoast SEOのXMLサイトマップは SEO → 設定 → XMLサイトマップ から有効化できます。有効化後は sitemap_index.xml をGoogle Search Consoleに送信し、インデックス登録状況を定期的に確認してください。

お気軽にご相談ください

お見積りへ お問い合わせへ