概要
タイトルの通り、wordpressのyoastプラグインSEOのサイトマップが作れない問題に遭遇しました。
色々と調べて試してみてもなかなか解決しませんでした。
しかし、自分で考えながらたどり着いた手法がうまくいったので紹介します。
発生した問題
上記画像は、wordpress ダッシュボード左側のタブの「yoast SEO」>「設定」の一部です。
画像の中央にある「XMLサイトマップ」の機能を有効にした場合、通常であればドメイン名+//sitemap_index.xml
にブラウザでアクセスすると、xmlサイトマップが表示されるはずでした。
しかし、問題を解決するまではドメインのメインページにリダイレクトされてしまうケースが発生。
この記事では、本件の解決方法をご紹介します。
解決手順
前提として、私はこちらのサイトを参考にして、wordpressを構築しました。
サイト構築環境は以下の通り:
- AWS EC2, amazon linux2
- nginx 1.22.1
- wordpress 6.6.1
- SEOプラグイン:Yoast SEO
wordpress上の操作
- まず最初に、他のSEOプラグインや、xmlサイトマップを作るようなプラグインがある場合は、それらを無効にします
- wordpressダッシュボードの左側のタブの中から、「yoast SEO」>「ツール」ページを開きます
- ツールページの中の、上から二つ目の「ファイルエディタ」をクリックします
- 「ファイルエディタ」を開いた時、下の画面のようになっていない場合は、robots.txtを作成するボタンをクリックしてください。
-
Sitemap
の次に続くリンクへアクセスしてみてください。この状態で正しく(下の画像のような)xmlサイトマップが表示されれば無問題。表示されない方は次のステップへ進んでください。
EC2上の操作
robots.txt
が作られていても、.htaccess
というファイルがないと、サイトマップは作られないようです。
手動でこちらのファイルを作成し、中身を記述することでサイトマップが作れます。
- EC2インスタンスにアクセスします
- wordpressのルートディレクトリにアクセスします。これはwordpressダッシュボード左側の、「ツール」>「サイトヘルス」にアクセスし、上の方にある「情報」タブをクリックします。すると「WordPressディレクトリの場所」という項目があります(下の画像参照)。ここにコマンド上でアクセスしてください
- 以下のコマンドで「.htaccess」ファイルを作成します
sudo touch .htaccess
- 次に、このファイルの中身を編集します。以下のコマンドを実行します
sudo vim .htaccess
- ファイルの中には以下の内容を記述し、保存してください
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
- これでサイトマップが動くはずです。「ドメイン名+/sitemap_index.xml」にブラウザでアクセスし、サイトマップが表示されているかをご確認ください。
最後に
サイトマップができたあとはgoogle search consoleに登録するなどして、Googleからの検索流入が増えるはずです!
結構重要な設定が手動で行わなければいけないのは致命的だと感じました。
今後こういった役に立つ、わかりやすい記事を投稿していきますので、よければフォローお願い致します。
ブログも書いています。ご興味があればぜひご覧ください!