WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更!.htaccessによる301リダイレクトと既存記事のURL変更方法解説!

WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更!.htaccessによる301リダイレクトと既存記事のURL変更方法解説! wordpress
スポンサーリンク

今年はサイトのメンテナンスが第一目標となっているのですが、先日やっと「wpX」サーバーから「wpX Speed」サーバーへの乗り換えが完了しました。当初は画像データが上手く移行できていなかったなどそこそこトラブルがあったのですが、現在はなんとか落ち着いた感じです。

そして次に行ったのが、長年の悲願だった「WordPressのパーマリンク変更」作業です。

パーマリンクというのは各記事を投稿した際に表示されるリンク/URLの事です。例えば従来であれば「https://enjoypclife.net/2018/07/29/fire-tv-stick-usage-setup/」という風に日付も同時に表示される「日付と投稿名」という設定になっていました。これは「enjoypclife.net」を開設した当初、WordPress初心者でやり方なども分からず、とりあえずデフォルト設定のまま開設したのが原因です。

パーマリンク/URLもSEO的には重要な項目の一つであり、長いURLは多少SEO上不利との情報もあります。また、これはたまたまかもしれませんが、記事を更新しても更新日がなかなかGoogleの検索結果に認識/反映されないというのも、今回パーマリンク変更を思い立った大きな要因の一つです。

以前からWordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更したかったのですが、本来WordPressのパーマリンク変更は不具合発生の可能性やGoogle等検索エンジンのページに対する評価を失う可能性もあるので基本的に変更しないのが大原則。しかし、この度サーバー移転を機に思い切って変更作業を行ってみた次第です。

という事で、本日はWordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更する方法をご紹介しておきます。また、今回は検索エンジンの評価対策も兼ねて「301リダイレクト」設定も行いました。プラグインを使って「301リダイレクト」を行う事も可能なのですが、プラグインはなるべく常駐させたくないのと、サポート切れの際の不具合を考えると「301リダイレクト」は【.htaccess】に直接記述するのが無難。そして記事中のURL変更は「Serch Regex」というプラグインを利用します。これは一時的な利用なので、変更が完了して不要ならアンインストールしても構いません。

なお、変更作業は不具合時の対処を兼ねて、アクセス数の少ない夜間に行うと良いでしょう。自分の場合はAM2時に開始してバックアップやら不具合の対処やらを行い、なんだかんだでAM6時に作業が完了しました。事前のバックアップさえしっかり行っていて不具合が無ければ、実質の作業自体は20-30分程度もあれば完了するかとは思います。

ただし、今回の変更方法はあくまでも管理人の環境での変更方法なのと、現時点で不具合は無さそうですが、もしも今回ご紹介する方法でなんらかの問題(アクセス数の低下など)が発生しても当方では対処は出来ません。

そのため、今回の内容を試される場合は【しっかり事前準備を行い、自己責任の下】ご利用くださいませ。

enjoypclife.netのサイト構築環境
■WordPress
■テーマ:Cocoon
■サーバー:wpX Speed

スポンサーリンク
スポンサーリンク

WordPressのパーマリンクを変更する前の事前準備:サーバーからデータベースや画像等をしっかりバックアップしておこう!

WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更するにあたって、様々な変更をデータベースに対して行います。

そのため、必ず今回のパーマリンク変更作業を行う前に、現在運用しているWordPressサイトのデータベースや画像などのバックアップをしっかり取っておきましょう。

自分の場合は以下のバックアップを取りました。

■データベース:
wpXサーバーにログインし、「データベース管理」からデータベースをエクスポート
※エクスポート後は基本的にサイトに変更は加えないようにしましょう。記事の投稿などもしないように。
■wp-content内のデータ:
念のために「wp-content」内の各種データ(画像等)も一括でローカルにバックアップしておきました。自分は「FFFTP」を利用しています。

 

WordPressのパーマリンクを変更する前の事前準備:サーバーやテーマのキャッシュ設定をオフにする。

これは念のためですが、各種変更作業を素早く反映させるために、一旦サーバーやテーマのキャッシュ設定をオフにしておきました。

wpXサーバー/Cocoonテーマで運用しているenjoypclife.netですが、今回オフ設定にしたのは以下の通り。

■wpXサーバー
サーバーキャッシュ設定:オフ
ブラウザキャッシュ設定:オフ(こちらはCocoonのブラウザキャッシュを利用しているので、そもそも利用していません)
■Cocoon
Cocoon設定>高速化>ブラウザキャッシュ:オフ

 

WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更する方法解説

それではここから、実際にWordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更していきます。

なお変更作業を行うにあたって、必ず事前に流れをしっかり認識しておくことが重要です。

特に【①パーマリンクの設定を「日付と投稿名」から「投稿名」に変更】と【②301リダイレクトの設定を.htaccessに追記】の部分は速やかに行う必要があります。また、その後に行う【③Search Regexで記事内のURLを一括置換】も、事前に検証して問題なく動作することは確認しておきましょう。

 

①パーマリンクの設定を「日付と投稿名」から「投稿名」に変更

まず初めに、WordPressのパーマリンク設定を「日付と投稿名」から「投稿名」に変更します。

基本的にパーマリンクの変更作業自体はこれで完了なのですが、そのままだと旧URLでアクセスされた場合にリンク切れ(404)となります。これはSEO的にも検索によるアクセス的にも大損害なので、このパーマリンク変更作業後は1秒でも早く【②301リダイレクトの設定を.htaccessに追記】作業を行う必要がある点は十分ご注意ください。また、不具合の発生なども考慮し、出来るだけアクセス数の少ない夜間などの時間帯に作業するのがおすすめです。

【設定】>【パーマリンク設定】を開きます。

①パーマリンクの設定を「日付と投稿名」から「投稿名」に変更

 

次に【投稿名】を選択し、【変更を保存】をクリックすればパーマリンクの変更は完了です。

①パーマリンクの設定を「日付と投稿名」から「投稿名」に変更

この時点で例えば【https://enjoypclife.net/2018/07/29/fire-tv-stick-usage-setup/】という記事のURLは【https://enjoypclife.net/fire-tv-stick-usage-setup/】に変更となります。このままだと【https://enjoypclife.net/2018/07/29/fire-tv-stick-usage-setup/】にアクセスがあると404エラーが表示されるようになって記事へのアクセス数が激減、サイト運営上致命的な状態となります。

そこで必要なのが、【301リダイレクト】の設定。この設定を行う事で、【https://enjoypclife.net/2018/07/29/fire-tv-stick-usage-setup/】にアクセスがあった場合、自動的に【https://enjoypclife.net/fire-tv-stick-usage-setup/】に遷移してくれるようになります。

という事で、出来るだけ速やかに、以下の【301リダイレクト】設定も続けて行いましょう。

 

②301リダイレクトの設定を.htaccessに追記

上記のパーマリンク変更作業が完了したら、続けて速やかに【301リダイレクト】の設定を.htaccessに追記していきます。なお、.htaccessは不用意に変更するとサイトが表示されなくなるなど、重大な不具合に遭遇する場合もあります。慎重に作業を行いましょう。追記前に現在の内容はコピー等でバックアップしておくと安心です。

wpX Speedサーバーの場合は以下の場所から変更/追記可能です。

インストール済みWordPress一覧>サイト選択>各種管理設定>.htaccessの編集:「編集」をクリック

 

WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更する場合は、以下のコードをコピーして.htaccessの最上部に追記すればOK。なお、自分は.htaccessの最下部に追記して上手く転送されずかなり悩みました。必ず.htaccessの最上部に追記するようにしてください。

#BEGIN 301 Redirect
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ /$4 [R=301,L]
</IfModule>
#END 301 Redirect

※#BEGIN 301 Redirect/#END 301 Redirectの部分はコメントなので不要な方は除いてください。

 

以下のように.htaccessに追記し、最後に【設定を保存する(確認)】をクリックすればOKです。

②301リダイレクトの設定を.htaccessに追記

 

この状態で必ず以前のURL(例:https://enjoypclife.net/2018/07/29/fire-tv-stick-usage-setup/)にアクセスし、無事【https://enjoypclife.net/fire-tv-stick-usage-setup/】に自動的に遷移することを確認してください。無事遷移すれば成功です。

もしもこの状態で自動的に遷移せず、404エラーが表示される場合は、一旦WordPressの【パーマリンク設定】から以前の【日付と投稿名】に戻し、不具合の原因を追究しましょう。原因が解明出来たら、再度【①パーマリンクの設定を「日付と投稿名」から「投稿名」に変更】から試してみてください。

 

参考にしたのは以下のサイト様。ありがとうございます!

 

③Search Regexで記事内のURLを一括置換

最後に、Search Regexで記事内のURLを一括置換すれば処理完了です。ただし、この処理は非可逆的なので、必ず上記の【①/②】の設定変更が成功していることを確認してから処理を行ってください。

また、事前にデータベースのバックアップがしっかり取れていることを確認しておきましょう。

今回正規表現でURLの一括置換を試みたのですが、なぜか上手く「Search Regex」が動作せず、現在少しずつ手動で直している状況です。もしも正規表現で問題なく動作した場合はコメント等でご連絡いただけると幸いです。

 

まず「Search Regex」プラグインをインストールしておきます。

 

インストールが完了したら、WordPressの【ツール】から「Search Regex」を起動しましょう。

「Search Regex」を起動したら、まずは【①】をクリックし、その後【②正規表現】にチェックを入れます。後は以下のように設定し、【⑤検索】をクリックしてください。

③検索:enjoypclife.net/[0-9]{4}/[0-9]{2}/[0-9]{2}
④置換:enjoypclife.net

※【enjoypclife.net】の部分は運営中のドメイン名に置き換えてください。

③Search Regexで記事内のURLを一括置換

 

するとこのような画面が表示されます。問題なければ【すべて置換】で一括置換が出来るはずなのですが、なぜか当方の環境では上手く動作しませんでした。そのため、現在は手動でぼちぼち修正している状況です。

③Search Regexで記事内のURLを一括置換

 

まとめ:WordPressのパーマリンクを「日付と投稿名」から「投稿名」への変更は慎重に!

まとめ:WordPressのパーマリンクを「日付と投稿名」から「投稿名」への変更は慎重に!

と言う事で、本日はWordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更する手順をご紹介してみました。

慣れると1時間もあれば作業は完了しそうですが、自分の場合は.htaccessの件で不具合が出たり、「Search Regex」が上手く動作しないなどの問題に遭遇しました。そのため、皆さんもパーマリンクの変更作業を行う場合は、事前にしっかりバックアップを取り、時間に余裕のある際にじっくり取り組むようにしてみてくださいね。

以上、誰かの参考になれば幸いです。

 

おまけ:WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更したらGoogleの検索結果に更新日が反映されました!

おまけ:WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更したらGoogleの検索結果に更新日が反映されました!

最後に、WordPressのパーマリンクを「日付と投稿名」から「投稿名」に変更した後の状況を簡単にご紹介しておきます。

まず、Googleの検索結果ですが、現状特にアクセス数が大きく減少するなども無く、横ばい状態となっています。特にパーマリンク変更&301リダイレクトの影響はなさそうです。

そして一つ嬉しかったのが、Googleの検索結果への更新日付の反映が行われるようになったこと。やはり当初の予想通り、パーマリンクもGoogleは更新日付の判断材料としていたようです。Cocoonで「更新日のみ」の表示に同時に切り替えたのも功を奏したのかもしれませんが、この変更は以前試しても効果がなかったので、やはりパーマリンクに日付が入っているとそれをGoogle側が認識し、更新日を反映させなかった可能性が高い気がします。

という事で、なんとかサイトのメンテナンスも無事完了。後はもう一つ運営しているサイトも移行させ、それが完了したら記事の内容をより充実させていこうと考えています。読者の方は気長にお待ちくださいませ。

スポンサーリンク
スポンサーリンク
wordpress
シェアする
enjoypclifeをフォローする

コメント

  1. az より:

    昨日コメントした者です。
    先ほどパーマリンクの変更を行い、現在のところ問題なく動作しております。
    またSearch Regexの置き換えも行えました。
    不具合を恐れてずっと敬遠していた作業でしたが、貴サイトのおかげでスムーズに作業ができました。この度はどうもありがとうございました。

    • よっしー より:

      コメントありがとうございます。
      申し訳ないのですが、昨日のコメントというのが反映されておりません。サイト移転の家強かもしれません。
      とりあえず無事動作しているようで何よりです。
      なお、一部文中のURLが一括変更で誤った内容になっておりましたので修正しております。察していただいたかと思いますが、すみませんでした

  2. Wacky より:

    めちゃくちゃ参考になりました!ありがとうございました!