WordPressでブログを初めてから、4年近く経ちました。
初心者の頃は本当にサーバーって何?設定ってどうするの?と見様見真似でやっていたので、設定ミスが多発していました。
そんな中でこれだけは絶対に直したい!と思っていたのが、2つあります。
- サブディレクトリにコンテンツを入れてしまっていること。(URLがwww.takomisofantasy.work/blogの状況)
- 投稿記事のURLに投稿日が含まれてしまっていること。(URLがwww.takomisofantasy.work/blog/2023/01/23/投稿名の状況)
この最悪のURLの状況を何とか変えたいと思い2年目から時間をかなり使いながら色々なやり方を試してきました。
ただ、それぞれ上記いずれかの修正方法の記事はあったものの、まとめて修正、組み合わせて修正している人が誰もいなくて絶望しました。
今回はそんな私たちと同様な悩みを持つすべての方に向けて、強引に力技でやったインターネットにものっていないやり方で成功したので、記事にしました。
もちろん正しいやり方ではないと思います。ただ、どうしても変更したいのにやり方が見つからないという方はぜひ最後までご覧ください。
【2024年】WordPressサブディレクトリのブログ記事のURLを日付(投稿日)から投稿名のみに変更。検索結果がリダイレクトされなくて困った話
やりたいことをまずは整理します。やりたいことは以下になります。(もしこういうやり方があるよという方はご教授ください。)
www.takomisofantasy.work/blog/2023/01/23/投稿名
↓
www.takomisofantasy.work/投稿名
なぜこんなに複雑にやっているかというとURLにサブディレクトリを使用してしまっているかつ、投稿日(yyyy/mm//dd)を組み合わせて使用しているからです。
それぞれ対応を調べて、やってみてダメで、まとめて2つ一気に修正を対応してみてダメだでした。
ダメだったというのは具体的には、検索結果の記事のリダイレクトが上手くいかず、not foundやよくわからないサーバーのエラー文が出てきてしまった状態でした。
そもそもなぜURLを変更したかったのか。
それぞれ2点に対して以下の理由で変更したかったです。
- サブディレクトリにコンテンツを入れてしまっていること。(URLがwww.takomisofantasy.work/blogの状況)
→ あえて利用しているわけではなく、ルートディレクトリを使用していないにもかかわらず、サブディレクトリを使用しているとSEO的に良くなという発信を見かけてしまったから。 - 投稿記事のURLに投稿日が含まれてしまっていること。(URLがwww.takomisofantasy.work/blog/2023/01/23/投稿名の状況)
→ いくらリライトしても永遠にインデックスされ検索結果に出てくる日付が投稿日のままであるため。
②がわかりにくいので、画像で説明すると以下の日付がずっと記事の投稿日のままだったのです。
そのため2019年の記事は永遠に2019年でした。そうすると古い情報だとユーザーからも認識され、全然クリックしてもらえない。そんな状況から続きました。
(ちなみに変更後、目でわかるレベルでクリック率が異常に伸びました。この日付はかなり重要です。具体的なCTRで言うと1%近く上昇しました..)
ただ、上記2つをいくら対応しても解決しないため、まずは②だけでも何とかしようと考えて今回のやり方を編み出しました。
①に関しては、今回のやり方と同様に行えば解決できるため、一旦②だけを切り分けて対応しました。
王道のやり方はこういった方法です。
勘違いの無いようにですが、例えば投稿日×投稿名のURLから投稿名のみのURLにしたいという方は、他にも簡単にできるやり方があります。
丁寧に解説してくださっている記事が多数あるため、そちらをご覧ください。検索で、「Wordpress url 投稿日 変更」とかで結構出てきました。
サブディレクトリにコンテンツを入れてしまっていること。(URLがwww.takomisofantasy.work/blogの状況)
上記だけにお悩みの方に関しては、WordPressの設定から変更を行い、サーバー上のファイルに書き換えを行えば簡単5分でできるやり方があるため、そちらを参考にしてください。
「Wordpress url サブディレクトリからホームディレクトリ」もしくは、「Wordpress url サブディレクトリからルートディレクトリ」とかで色々とやり方解説している記事が出てきます。
投稿記事のURLに投稿日が含まれてしまっていること。(URLがwww.takomisofantasy.work/blog/2023/01/23/投稿名の状況)
上記だけでお悩みの方は、パーマリンク設定の変更後、サーバー上の2ファイルにリダイレクト設定の記載をすれば、簡単5分でできてしまうので、そちらを参考にしてみてください。
「Wordpress url 日付削除」、「Wordpress url 投稿日 変更」や、「WordPress URL 投稿日から投稿名に変更」等でこちらも画像付きのやり方が結構あるので、そちらを参考にしてみてください。
上記王道のやり方を試してもできないやん!となったのが、今回の私たちのケースです。初めからきちんと設定しておけば..と思ってしまいました。
実際やった強引な方法をご紹介します。
ことの発端は、URLの日付削除設定のリダイレクト設定時の呪文のようなリダイレクト設定です。
以下を設定してもサブディレクトリにコンテンツを置いている影響か、上手くできなかったんです。
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ /$4 [R=301,L]
正規表現であることは読み取れたので、これを改良しようと思い調べていましたが、いくら変更してもきちんと動作してくれなかったです。
ただ、記事数は、400記事以上このブログにあるので、リダイレクト設定をポチポチやっていくのも地獄。ということでまとめてやる方法を考えました。
当ブログのサーバーは、ConohaWingを利用しているため、早速リダイレクト設定をどう行うのか調べました。
そうすると、画面上のサイト管理>サイト設定>基本設定にサイト転送(リダイレクト設定)があることを確認しました。
ただ、こんなポチポチ画面上からやってられない。と思い実際のコードはどうなるかを次に確認しました。
画面上のサイト管理>サイト設定>ファイルマネージャーの中にいる「.htaccess」ファイルの記述にこういった記述をされていました。
黒い画面は怖くて呪文が多数ですが、URLを追っかけると、以下の記述をしていることがわかりました。
Redirect permanent /blog/2023/01/21/yakiniku-hiromiya/ https://www.takomisofantasy.work/blog/yakiniku-hiromiya/
上記から読み解くに、</Ifmodule>の下に、「Redirect permanent /サブディレクトリ名/yyyy/mm/dd/投稿名/ https://www.ドメイン名/サブディレクトリ名/投稿名」を書いていけば良いのか!とうのが分かりました。そうすると後は簡単です。
この呪文を書くために古いURLと新しいURLを抽出してEXCELやGoogleのスプレットシートでババっと呪文の一覧を作成すれば良いんです。
抽出する際に利用したプラグインは、List Urlsというものを使用しました。ただ、他にもプラグインがあると思うので、お好みのプラグインを調べて利用してください。
ということで、頭から実際に私たちが実践したやり方を解説していきます。(よくわからないから●番目の詳細追記して等あれば、時間を見つけて追記しますので、コメントしてください。)
※まだパーマリンクの設定はしちゃダメです。
私たちの場合は、「List Urls」をインストールしました。
プラグインを活用して、URL一覧を抽出します。
投稿日が入っているurlのみの一覧にして、テキストエディタやEXCELの一括置換で頭のhttps://www.ドメイン名を削除します。
WordPressの設定>パーマリンクを好きな形に変更。私たちの場合は、「投稿名」に変更しました。
再度Step2と同様の方法で一覧を取得してきて、日付だけ入っているURLのみの一覧を作成します。こちらのURLは、Step3の対応は不要です。
上記のように、A列、B列、C列に内容を入れた上で、D列に文字列結合した値を持ってくるように関数を記載して、呪文を一括作成します。(※必要であれば詳細解説しますので、コメントください。)
</Ifmodule>の下に、「Redirect permanent /サブディレクトリ名/yyyy/mm/dd/投稿名/ https://www.ドメイン名/サブディレクトリ名/投稿名」をコピペして完成です。
確認して問題なかったら完了です。
まとめ:【2024年】WordPressサブディレクトリのブログ記事のURLを日付(投稿日)から投稿名のみに変更。検索結果がリダイレクトされなくて困った話
今回は、WordPressのurlを投稿日から投稿名に強引に変更するやり方を解説しました。
いやいや、サブディレクトリの変更はしないんかいというツッコミもあると思いますが、今回やったやり方と組み合わせてサブディレクトリ変更も同時に行うことも論理上可能です。
WordPressのURLを変更の上、元URL(www.takomisofantasy.work/blog/2023/01/23/投稿名)から新URL(www.takomisofantasy.work/投稿名)のように記載を行うということです。
今回なぜ上記を行なわなかったかと言うと、成功するかわからなかったので、切り分けて対応したかった。というのが大きな理由です。
後は、現状サブディレクトリへの影響を受けている感じがなかったため、後追い対応でも問題ないと判断しました。
ただ、一気にまとめてやりたいという方はチャレンジしてみる価値はあると思います。(あくまでも個人の感想のため、責任はおえません。)ぜひ、やり方が他になくて途方に暮れた方へ届いたら嬉しいです。
他にもブログに関する記事を多数書いておりますので、合わせてご覧ください。
コメント