最も必要とされている時に、信頼できるWordPressチュートリアルを。
WordPress入門ガイド
WPBカップ
2500万人以上
当社のプラグインを使用しているウェブサイト
16+
WordPress経験年数
3000+
専門家によるWordPressチュートリアル

YoastのWordPress SEOサイトマップ404エラーを修正する方法

XMLサイトマップで404エラーが表示されるのは非常にイライラします。これにより、検索エンジンが新しいページを見つけられなくなり、ウェブサイトのトラフィックに悪影響が出ます。

初期の頃、Yoast SEOを使用しており、まさにこの頭痛の種を抱えていました。複数の修正策を試した後、最終的にサイトをAll in One SEOに切り替えたことで、このバグの原因が正確にわかりました。

良いニュースは、技術的なスキルがなくてもこれを解決できることです。数分でサイトマップを再び機能させるための正確な手順を説明します。

WordPressでYoast SEO XMLサイトマップの404エラーを修正する

WordPress で Yoast SEO サイトマップの 404 エラーが発生する原因は何ですか?

Yoast SEOのサイトマップは、検索エンジンがウェブサイト上の見つけてインデックスしてほしいすべてのコンテンツを見つけるのに役立ちます。

エラーを修正することで、検索エンジンがサイトマップにアクセスし、サイト上のすべてのページとコンテンツを発見できるようになります。これにより、検索エンジンの可視性とランキングが向上し、サイトマップがない場合よりもコンテンツのランキングが速くなります。

WordPressにはデフォルトのXMLサイトマップがあり、これをGoogle Search Consoleやその他の検索エンジンに送信できます。

ネイティブのWordPressサイトマップは/wp-sitemap.xmlにありますが、ほとんどのSEOプラグインは標準の/sitemap.xmlアドレスを自動的に独自のカスタムサイトマップにリダイレクトします。

しかし、このデフォルトのWordPress生成サイトマップは非常に基本的です。これを修正するために、Yoast SEOやAll in One SEOプラグインのようなトップWordPress SEOプラグインは、より多くの機能を備えた独自のXMLサイトマップを作成します。

WordPress SEOプラグインによって生成されたXMLサイトマップを使用すると、プラグインはデフォルトのWordPress XMLサイトマップショートカットを上書きします。

これは、上記で言及したサイトマップURLが、WordPress SEOプラグインによって生成されたサイトマップにユーザーを送信することを意味します。

残念ながら、プラグインの競合やWordPressの設定が正しくないために、一部のウェブサイトでは404エラーが発生する可能性があります。

次のセクションでは、Yoast SEOプラグインでWordPressサイトマップの404エラーを簡単に修正する方法を説明します。ここで、取り上げるすべての方法の簡単な概要を示します。

準備はいいですか?早速始めましょう。

WordPressには、パーマリンクと呼ばれるSEOフレンドリーなURL構造が組み込まれています。このURL構造はリダイレクトシステムを使用して、ユーザーがブラウザにURLを入力したときに、どのページを読み込むかをウェブホスティングサーバーに伝えます。

通常、これらのパーマリンク設定は、ウェブサイトに変更を加えると自動的に更新されます。

悪いニュースは、WordPressがパーマリンク構造を更新できない場合があり、それがYoast SEOのサイトマップ404エラーの原因となる可能性があることです。

とはいえ、これはWordPress管理画面の設定 » パーマリンクページに移動し、「変更を保存」ボタンをクリックするだけで簡単に修正できます。

パーマリンクを更新

これにより、WordPressパーマリンク設定がリフレッシュされ、ウェブサイトの内部アドレス帳(リライトルールとして知られる)が強制的に更新されます。ほとんどの場合、これにより壊れたサイトマップURLが即座に再接続されます。これでXMLサイトマップページにアクセスして、問題が解決したかどうかを確認できます。

それでも問題が解決しない場合は、読み進めてください。

WordPress のパーマリンク構造を更新しても 404 エラーが解決しない場合は、ウェブサーバーに Yoast SEO のサイトマップページにユーザーをリダイレクトするように手動で指示できます。

重要: この方法は、Apacheサーバーでホストされているウェブサイトで機能します。.htaccessファイルは、ApacheがリダイレクトとURL構造を処理するために使用する設定ファイルです。

サイトがNginxサーバーを使用するホストにある場合、このファイルは使用されません。その場合は、次の方法にスキップするか、ホスティングプロバイダーにサーバーレベルのリダイレクトについて支援を求めることをお勧めします。

これを行うには、次のコードを.htaccessファイルに慎重に追加する必要があります。このコードをファイルの一番上、他のすべてのルールより前に貼り付けてください。

# Yoast SEO - XML Sitemap Rewrite Fix
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^locations.kml$ /index.php?sitemap=wpseo_local_kml [L]
RewriteRule ^geo_sitemap.xml$ /index.php?sitemap=geo [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
RewriteRule ^([a-z]+)?-?sitemap.xsl$ /index.php?yoast-sitemap-xsl=$1 [L]
# END Yoast SEO - XML Sitemap Rewrite Fix

重要: このファイルを編集すると、間違いがあった場合にサイトが破損する可能性があります。変更を加える前に、FTPクライアントまたはWebホスティングのファイルマネージャーを使用して、バックアップとして.htaccessファイルをコンピューターにダウンロードしてください。このコードは、他のすべてのルールよりも前に、ファイルの先頭に貼り付けてください。

WordPressウェブサイトがサブディレクトリまたはフォルダ(例: https://example.com/mywebsite/)にインストールされている場合は、上記のコードを使用しないでください。代わりに、次の代替コードを使用する必要があります。

# Yoast SEO - XML Sitemap Rewrite Fix
RewriteEngine On
RewriteBase /mywebsite/
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^locations.kml$ /index.php?sitemap=wpseo_local_kml [L]
RewriteRule ^geo_sitemap.xml$ /index.php?sitemap=geo [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
RewriteRule ^([a-z]+)?-?sitemap.xsl$ /index.php?yoast-sitemap-xsl=$1 [L]
# END Yoast SEO - XML Sitemap Rewrite Fix

/mywebsite/ をサブディレクトリ名に置き換えるのを忘れないでください。

このコードは、ユーザーが Yoast SEO の XML サイトマップにアクセスしたときに、どのページを表示するかをウェブサーバーに指示するだけです。

これでXMLサイトマップを表示して、問題が解決するかどうかを確認できます。

3. XMLサイトマッププラグインに切り替える

上記の方法で404エラーが解決しない場合、簡単な代替策は、サイトマップ作成専用のプラグインを使用することです。この目的のために、人気があり信頼性の高いGoogle XML Sitemapsプラグインをお勧めします。これにより、Yoastのサイトマップ機能を無効にして、代わりにこの専用ツールを使用できます。

このアプローチの欠点は、XMLサイトマップを生成するために別のプラグインに依存し、他のSEO機能についてはYoast SEOに依存する必要があることです。

まず、プラグインをインストールして有効化する必要があります。詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。

Yoast SEOを使用しているため、Google XML SitemapsプラグインまたはYoast SEOのサイトマップ機能のいずれかを無効にする通知が自動的に届きます。

Yoast SEO XMLサイトマップの競合に関する警告

次に、「Yoast SEOのXMLサイトマップを切り替える」ボタンをクリックして続行できます。

これで設定エリアに移動します。Yoast SEO » 設定 » サイト機能に移動し、「XMLサイトマップ」オプションまでスクロールダウンしてオフに切り替える必要があります。

Yoastサイト機能

設定を保存するには、「変更を保存」ボタンをクリックしてください。

これで、Yoast SEO » 設定 » サイト機能でサイトマップがアクティブになっていることを確認できます。

デフォルト設定はほとんどのサイトで機能しますが、Yoast設定メニュー内の個々のコンテンツタイプまたは分類法セクションにアクセスすることで、サイトマップに表示されるコンテンツをさらにカスタマイズできます。

XMLサイトマップ設定

ただし、ニーズに応じていつでも設定を構成できます。

これで、XMLサイトマップURLをGoogle Search Consoleやその他の検索エンジンに送信できます。

サイトマップURL

4. WordPress用All in One SEOに切り替える

まだ問題が解決しない場合や、より強力でモダンなサイトマップソリューションをご希望の場合は、All in One SEO for WordPressに切り替えるのに最適な時期です。これは市場で最高のWordPress SEOプラグインであり、Yoast SEOの代替としてずっと優れています。

詳細については、YoastとAll in One SEOの比較をご覧ください。

All in One SEO (AIOSEO) には、高度なXMLサイトマップと管理しやすいオプションが付属しており、サイトマップに含めるものまたは除外するものに対する完全な制御が可能です。

さらに良いことに、AIOSEOのサイトマップはWordPressのネイティブリライトAPIと動的に統合されており、静的ファイルとの競合によって引き起こされる404エラーを事実上排除します。

まず、All in One SEO for WordPressプラグインをインストールして有効化しましょう。詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。

注意: All in One SEO for WordPressには無料版もあり、ビデオとニュースを除くほとんどのXMLサイトマップ機能が含まれています。

有効化すると、プラグインがセットアップウィザードを通じて案内します。セットアップ中にヘルプが必要な場合は、WordPress用のAll in One SEOプラグインを正しくセットアップする方法ガイドに従ってください。

All in One SEOセットアップ

All in One SEOでは、Yoast SEOからSEOデータをインポートすることもできます。

これにより、以前のすべてのSEOメタタグとタイトルは変更されません。

Yoast SEOデータをインポート

初期設定後、All in One SEO » Sitemaps ページに移動してXMLサイトマップの設定を構成できます。

「サイトマップを開く」ボタンをクリックすると、WordPressでサイトマップ404エラーが修正されたかどうかを確認できます。

All in One SEO のサイトマップ設定

その後、必要に応じてサイトマップ設定を構成します。

例えば、All in One SEOでは、サイトマップに含めるものを選択できます。投稿タイプ、タクソノミー、個々の投稿、ページを追加または削除できます。

All in One SEOサイトマップの詳細設定

All in One SEOでは、ビデオ、ニュース、RSSサイトマップ、およびウェブサイト用のHTMLサイトマップを作成することもできます。

設定をさらに構成したい場合は、タブを探索してください。

その他のサイトマップ設定

これらのサイトマップは、Google Search Consoleやその他の検索エンジンに送信することもできます。これにより、検索エンジンはウェブサイトの新しいコンテンツをすばやく見つけることができます。

サイトマップエラーに関するよくある質問

WordPressのサイトマップエラーの修正に関する、最もよくある質問とその回答をご紹介します。

1. XMLサイトマップとは何ですか?なぜ重要ですか?

XMLサイトマップは、検索エンジンにとってのウェブサイトのロードマップのようなものです。重要なページ、投稿、その他のコンテンツをすべてリスト化し、検索エンジンボットが検索結果に表示したいすべてを見つけてインデックス化しやすくします。

動作するサイトマップは、コンテンツが迅速に発見されることを保証するのに役立ちます。これは、優れたSEOの重要な部分です。

2. Yoast SEOサイトマップが404エラーを返すのはなぜですか?

最も一般的な原因は、WordPressのパーマリンクまたは「リライト」システムとの競合です。パーマリンク設定を保存すると、WordPressは.htaccessというファイルにルールを作成します。これらのルールが正しく更新されない場合があり、サイトマップURLで404エラーが発生します。

その他の原因としては、他のプラグインとの競合や特定のサーバー構成の問題が考えられます。

3. YoastからAll in One SEOに切り替えると、SEO設定は失われますか?

いいえ、重要なSEOデータを失うことはありません。All in One SEOにはセットアップウィザードが含まれており、Yoast SEOを自動的に検出し、すべての設定をワンクリックでインポートできます。

これには、SEOタイトル、メタディスクリプション、その他の設定が含まれ、ランキングを損なうことなくスムーズな移行を保証します。

9. Google にサイトマップをどのくらいの頻度で送信すべきですか?

メインのサイトマップURL(sitemap_index.xmlなど)をGoogle Search Consoleに送信するのは一度だけで十分です。新しいコンテンツを公開したり、サイトに変更を加えたりすると、All in One SEOを含むモダンなSEOプラグインは、サイトマップを自動的に更新し、検索エンジンに通知します。

追加リソース

このガイドがサイトマップのエラー修正に役立ったことを願っています。サイトのSEOとパフォーマンスを向上させるためのヒントについては、これらの役立つ記事をご覧ください。

この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterFacebookでも私たちを見つけることができます。

開示: 当社のコンテンツは読者によってサポートされています。これは、一部のリンクをクリックすると、手数料が発生する可能性があることを意味します。WPBeginnerがどのように資金調達されているか、なぜそれが重要なのか、そしてどのように私たちをサポートできるかを確認してください。こちらが当社の編集プロセスです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

242 CommentsLeave a Reply

  1. こんにちは、プラグインのコアファイルを編集した2番目のバージョンを試したところ、サイトが消えてしまいました??バックエンドも含めて。白い画面だけ??コードを元のものに戻しましたが、何も起こりません。

  2. ありがとうございます!.htaccessファイルにコードを記述し、サイトマップオプションのチェックを外し保存、その後再度チェックを入れて保存することで解決しました。ありがとうございます!

  3. 何が間違っているのかを見つけるのにかなりの時間を費やした後、あなたの提案「YoastのSEOプラグインでサイトマップオプションのチェックを外し、「保存」設定を行う。その後、サイトマップのオプションを再チェックするとエラーが修正される」で動作するようになりました。
    本当にありがとうございます!

  4. 本当にありがとうございます!チェックを外し保存、再度チェックを入れて保存することでうまくいきました!

  5. htaccess にコードを追加し、プラグインでサイトマップのチェックを外して再度チェックした後、機能しました!ありがとうございます!

  6. チェックを外し、保存してから、もう一度チェックして保存すると、問題が解決しました。誰かが何かを試す前に、最初にこれを実行すべきです!私にはうまくいきました、ありがとう

  7. やったー!ありがとうございます。私のサイトはまだソフトローンチ段階なので、Googleはまだ気にしていないかもしれません。…でも、サイトはまだソフトローンチ段階なので、クロールは遅いかもしれません。幸い、本格的なプロジェクトを立ち上げる前にサイトを改善しています(うまくいけばすぐに)。

    Anyway I cannot thank you enough. :)

  8. class-sitemaps.php ファイルを開きましたが、「functiion () init code..」というセクションが見つかりません。もう少し具体的に教えていただけますか?

  9. .htaccessファイルを編集し、サイトマップ生成のチェックを外し、設定を保存し、再度チェックを入れ、設定を保存…で解決しました!本当にありがとうございました。

  10. I found my issue was actually fixed purely by turning Yoasts sitemaps on and off from UI. Which is great! :)

  11. この問題を解決できましたか?私も同じ問題を抱えています。post-sitemap.xmlで404エラーが出ます。エラーの原因をPHPログで確認していませんが、おそらくあなたと同じエラーだと思います。

    • 修正なし。WordPressのサポートスレッドにも返信はなく、他の人は無効にして別のサイトマッププラグインを使用しているようです。

  12. XMLサイトマップを無効にしてから再度有効にすると、この問題が解決しました。ありがとうございます!

  13. サイトマップにアクセスしようとすると404エラーが出ていた問題がありました。

    最初のifmoduleを追加してみましたが、うまくいきませんでした。その後、パーマリンク構造を更新した後にリダイレクトを処理するために別のifmoduleが配置されていることを思い出しました。

    redirect ifmoduleを削除し、Worpress SEOを再起動したところ、サイトマップが機能し始めました。redirect ifmoduleを再度追加したところ、すべて正常に機能しているようです。GWTとBing WTでもステータスを確認しましたが、すべて良好です。助けてくれてありがとう!

  14. 最初のIfmoduleを.htaccessに入れましたが、奇妙な単一行のコンテンツが出力され、リンクはありませんでした。

    コメントを読みました

    その後、Yoastのサイトマップオプションを再起動しました。

    「XMLサイトマップを有効にする」のチェックを外し、保存しました

    再確認して保存しました

    サイトマップを確認したところ、そこにあり、XSLスタイルシートが適用され、リンクもすべて機能していました

  15. そのコードをどこに配置すればよいかわかりません。“function init()”のような行はclass-sitemaps.phpにありません

  16. パーマリンク設定に入り、再度保存してみてください。500エラーでサイトのバックエンドにアクセスできない場合は、htaccessファイルを削除してください。

  17. こんにちは!最初のステップをもう一つ追加すべきだと思います:パーマリンク設定を再保存してください!パーマリンク設定を再保存することで問題が解決しました。htaccessファイルにアクセスする必要はありませんでした。

  18. post-sitemapでのみ以下のエラーが発生します。他のすべてのサイトマップは正常に動作します:
    致命的なエラー:許可されたメモリサイズ../plugins/wordpress-seo/inc/class-sitemaps.php の 713 行目
    .htaccess と wpseo-functions の編集を試しましたが、うまくいきませんでした。
    すべてのプラグインを無効化しましたが、それでもうまくいきませんでした。
    wpseo を削除して再インストールしましたが、問題は同じで、現在 wpseo のダッシュボードとサイトマップページでこのエラーが表示されます:
    警告:call_user_func_array() は、パラメータ 1 に有効なコールバック、関数 'wpseo_xml_sitemaps_init' が見つからないか、無効な関数名を期待しています /home/justplay/public_html/wp/wp-includes/plugin.php の 470 行目

    同じテーマ、プラグインなどを実行しているサイトが2つあり、1つは正常に動作し、もう1つはこれらのエラーが発生しています。奇妙です。

  19. ありがとうございます – チェックを外して保存し、その後Yoastプラグインのサイトマップオプションを再チェックするだけで、Googleウェブマスターがサイトマップを見つけることができました。

  20. htaccessメソッドを試したところ、サイトがクラッシュしました。Yoastプラグイン経由で、このコードをhtaccessファイルに追加しました。

    # WordPress SEO – XMLサイトマップリライト修正

    RewriteEngine On
    RewriteBase /
    RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
    RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]

    # END WordPress SEO – XMLサイトマップ書き換え修正

    そして、「.htaccess に変更を保存」ボタンをクリックしました。今では 500 エラーなしではどこにも行けません。何が間違っていたのでしょうか?これを修正する方法を知っている人はいますか?

  21. それでも私にはうまくいきません…頭を壁に打ち付けたい気分です。プラグインは大好きですが、実際に機能するものに置き換えるしかないと思います。

  22. @Matt Klein、'init'関数は現在wpseo-functions.phpの'wpseo_xml_sitemaps_init'になっています、@461行目

    追加するだけです:
    $GLOBALS 定義の前に
    global $wp_rewrite;
    そして
    add_rewrite_rule… の後に
    $wp_rewrite->flush_rules();

    /**

    *サイトマップを初期化します。サイトマップとXSLの書き換えルール、およびクエリ変数を追加します

    */

    function wpseo_xml_sitemaps_init() {

    $options = get_option( ‘wpseo_xml’ );

    if ( $options[‘enablexmlsitemap’] !== true ) {

    return;

    }

    // sitemap.xmlをsitemap_index.xmlにリダイレクトします

    add_action( ‘template_redirect’, ‘wpseo_xml_redirect_sitemap’, 0 );

    if ( ! is_object( $GLOBALS[‘wp’] ) ) {

    return;

    }

    global $wp_rewrite;

    $GLOBALS[‘wp’]->add_query_var( ‘sitemap’ );

    $GLOBALS[‘wp’]->add_query_var( ‘sitemap_n’ );

    $GLOBALS[‘wp’]->add_query_var( ‘xsl’ );

    add_rewrite_rule( ‘sitemap_index.xml$’, ‘index.php?sitemap=1’, ‘top’ );

    add_rewrite_rule( ‘([^/]+?)-sitemap([0-9]+)?.xml$’, ‘index.php?sitemap=$matches[1]&sitemap_n=$matches[2]’, ‘top’ );

    add_rewrite_rule( ‘([a-z]+)?-?sitemap.xsl$’, ‘index.php?xsl=$matches[1]’, ‘top’ );

    $wp_rewrite->flush_rules();

    }

  23. class-sitemaps.phpファイルにinitエリアの機能がありません。別の名前で呼ばれているのでしょうか?何行目ですか?

  24. .htaccessの修正でうまくいきました。

    しかし、上記の最初のコメントにあるScottさんが言うように、XMLサイトマップのチェックボックスのチェックを外して保存する必要がありました。その後、再度チェックして保存すると、サイトマップが表示されるようになります。この記事で言及する価値があると思います。

  25. .htaccessファイルを編集してくれたおかげでうまくいきました。サイトマップのチェックをオフにしてからオンに戻し、1,000から400に変更しました。共有サーバーを使用している場合は、CPU使用率を低くするために、より低い数値を使用することをお勧めします。

  26. 皆さん、こんにちは。

    私もこの問題をトラブルシューティングする必要がありました。私のサイトはメインサイトのサブディレクトリにホストされています。そのため、次の行を設定する必要がありました:

    RewriteBase /scottmortiz/

    その後、プラグインでサイトマップXMLオプションのチェックを外し、保存する必要がありました。次にプラグインを再チェックして保存しました。これが皆さんの何人かに役立つことを願っています。

    -スコット

  27. スティーブン様
    ありがとうございます。これも役に立ちました。しかし、リライトを機能させるには、xml関数を無効にして保存し、再度有効にして(保存して)する必要がありました。当然のことのように思えますが、この記事に追記する価値があるかもしれません。この記事は私の個人的なWordPressヘルプリストに保存しておきます。
    ありがとうございます。
    クリス

    • ああ、一度オフにしてから、もう一度オンにしてください。ありがとうございます:-) 思っているほど明白ではありません。私もこれを実行するまで、サイトマップが機能しませんでした(404エラーが発生していました)。この投稿で説明されている他の変更は何も行う必要はありませんでした。

  28. @PEKKO こんにちは、あなたのテクニックを試しました。本当にうまく機能しました。共有していただきありがとうございます…

  29. .htaccess ファイルの編集がうまくいきました。投稿してくれてありがとう!時間と手間を大幅に省けました。

  30. まさに同じ問題に直面していました。(XMLサイトマップ機能を有効にするにはこのボックスをチェック) のチェックを外し、保存を押してから、もう一度チェックを入れると、サイトマップが再び見つかりました。これで大丈夫だと思います!

  31. 私にうまくいったことを共有します。「サイトマップあたりの最大エントリ数」を250(つまり1000未満)に変更することで、404エラーを修正できました。サーバーがデフォルトの1000エントリを処理するのに問題があったのだと思います。

    • スティーブンさん、これは素晴らしい解決策です!あなたの方法で問題を解決しました。本当にありがとうございます!

    • Stevenさん、ありがとうございます。私もこの方法で問題が解決しました。「最大エントリ数…」のフィールドが空白でした。値を入力するだけで機能するようになりました。250は少し低いと感じていたので、これは良いことです。非常にシンプルですが効果的な解決策です。

返信する

コメントいただきありがとうございます。すべてのコメントは、コメントポリシーに従ってモデレーションされ、メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で意味のある会話をしましょう。