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

XML サイトマップが表示されるべき場所に 404 エラーが表示されるのは、特にサイトの SEO にとってその重要性を知っている場合、非常にフラストレーションのたまる経験です。私たちは、初期の頃にこの Yoast SEO の問題を経験し、簡単な解決策を見つけるのに苦労したことを覚えています。

朗報は、何千人ものユーザーを支援してきた結果、この修正は通常、見た目よりもはるかに簡単であることがわかっています。この一般的な問題を解決するために、技術的な専門家である必要はありません。

このガイドでは、サイトマップのエラーを修正するために使用している実績のある手順を説明します。数分でサイトマップを正常に機能させることができます。

検索エンジンがコンテンツを適切に見つけてランク付けできるように、この問題を解決しましょう。

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

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

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

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

WordPressには、XMLサイトマップがデフォルトで用意されており、これをGoogleサーチコンソールなどの検索エンジンに送信できます。

このXMLサイトマップは、ブラウザのアドレスバーに次のURLを入力することでアクセスできます。

https://example.com/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エラーを簡単に修正する方法を説明します。ここで、取り上げるすべての方法の簡単な概要を示します。

  1. WordPressパーマリンク構造をリフレッシュする(プラグインなし)
  2. パーマリンクを手動で更新する(上級者向け)
  3. XMLサイトマッププラグインに切り替える(簡単)
  4. WordPress 用 All in One SEO (推奨) に切り替える
  5. サイトマップエラーに関するよくある質問
  6. 追加リソース

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

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

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

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

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

パーマリンクを更新

これにより、WordPressパーマリンク設定が更新されます。これで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

注意: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サイトマップを切り替える」ボタンをクリックして続行できます。

これにより、「SEO »一般」の「機能」タブが表示されます。ここから、「XMLサイトマップ」オプションまでスクロールダウンし、オフに切り替える必要があります。

Yoast SEOでXMLサイトマップを無効にする

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

これで、設定 » XMLサイトマップ ページに切り替えてサイトマップを設定できます。ほとんどのウェブサイトでは、デフォルト設定でそのまま機能します。

XMLサイトマップ設定

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

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

サイトマップ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サイトマップと管理しやすいオプションが付属しており、サイトマップに含めるものや除外するものを完全に制御できます。

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

注意: WordPress用のAll in One SEOの無料版もあり、ビデオとニュースを除いてほとんどの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 にサイトマップをどのくらいの頻度で送信すべきですか?

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

追加リソース

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

この記事が、WordPressでYoast SEOサイトマップの404エラーを修正するのに役立ったことを願っています。次に、WordPressのデフォルトサイトマップを簡単に無効にする方法に関するガイドや、WordPress向けの最高のオンラインコンテンツ最適化ツールの専門家による選び方もご覧ください。

この記事が気に入ったら、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は少し低いと感じていたので、これは良いことです。非常にシンプルですが効果的な解決策です。

返信する

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