Skip to content

SEOに効く!
WordPressのパーマリンクを「post_id」から「postname」に
安全に変更する方法

URLもSEOに影響するの?

先日公開した「SEO対策で注意したいホームページで確認する8個のチェックポイント」で「URLの最適化」でまとめた「シンプルで分かりやすい構造」に「不要なパラメータや数字の羅列を避け、できるだけ短く簡潔にすることが理想です。」と書きました。

【関連記事】

default img

SEO対策で注意したいホームページで確認する8個のチェックポイント

ホームページのSEO効果を高めるために確認すべき“8つのポイント”を具体例付きで解説。訪問者の増加・検索順位の向上を目指すために必ず実施したい8項目をチェックリストで簡単に確認できます。

でも、この記事を書くまで、このブログは記事番号(post_id)を使っていました。。。だって投稿名を決めるのか面倒だったからです。そのためブログを始めた時に記事を増やすことを優先し、面倒な投稿名(postname)は付けずに手を抜いていました。

自分でまとめたSEO対策に書いた内容と記事が異なっていると説得力がありません。ただなぜ記事番号(post_id)だと駄目なのか、詳細は関連記事の「SEO対策で注意したいホームページで確認する8個のチェックポイント」で説明していますが、簡単に言うとURLもSEOで評価されるので、単純な番号ではページ内容がわからないので、投稿名(postname)でどんなページなのか説明すると、SEOで評価されるためです。
今回は、良いタイミングなので、記事番号(post_id)から記事名(postname)に変更したので、その時の作業をまとめてみました。

こんな人にオススメ

WordPressのパーマリンク構造を記事番号(post_id)から記事名(postname)に変更したい
なぜ記事名(postname)の方がSEO的に良いのか疑問に思っている
ホームページをSEOで対策しアクセスを増やしたい

はい。知ってました。URLも閲覧者に役立つ言葉を含めると良いのは知っていましたが、ブログを始めたタイミングで、どのような記事を書くか企画が明確に決まっていなかったので、記事名の規則を考えるのが面倒で後回しにしてしまいました。

パーマリンクとは?

WordPressは自分でURLを決めることができます。記事のタイトルやカテゴリ構造に沿ったURL設計をすることで、検索エンジンにもユーザーにも優しいサイト構造にすることが可能です。

記事ページについては、WordPressの管理画面で「設定」→「パーマリンク」で統一した設定を一括ですることが可能です。

パーマリンク

SEOに必要なURLの最適化とは?

先日公開した「SEO対策で注意したいホームページで確認する8個のチェックポイント」で「不要なパラメータや数字の羅列を避け、できるだけ短く簡潔にすることが理想です。」と書きました。

Googleの「検索エンジン最適化(SEO)スターター ガイド」の「わかりやすいURLを使用する」に以下のような文面があります。

【記事引用】検索エンジン最適化(SEO)スターター ガイド
https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=ja

わかりやすいURLを使用する
URL の各部分はパンくずリストとして検索結果に表示できるので、ユーザーも URL から結果が役に立つかどうかを把握できます。

Google では URL 中の言葉に基づいて自動的にパンくずリストを学習していますが、技術的には、構造化データによって影響を与えることもできます。次の例のように、ユーザーの役に立ちそうな言葉を URL に含めることをおすすめします。

https://www.example.com/pets/cats.html

たとえば、次の例のようにランダムな識別子だけが含まれている URL は、あまりユーザーの役に立ちません。

https://www.example.com/2/6772756D707920636174

上記の引用にも、ユーザーの役に立ちそうな言葉をURLに含めることをおすすめしているので、SEOに直接影響はしなくても、閲覧者にクリックしてもらう可能性が高くなれば、自然とSEO的にも有効になっていきます。

「役に立ちそうな言葉」の定義が不明ですが、ページ作成時に決めたメインキーワードは必ず含めましょう。

記事番号(post_id)形式のデメリット

初期設定の「?p=123」などの数値URLは、次のような問題があります。

  • URLだけでは内容が分からない
  • 検索結果でクリックされにくい
  • リンク共有時に信頼性が低く見える

投稿名(postname)形式のメリット

「/sample-post/」のような postname形式 に変更すると、以下の効果が得られます。

  • SEOに有利(キーワードをURLに含められる)
  • URLを見ただけで内容が伝わる
  • SNS共有や外部リンクでも見栄えが良い

私は仕事柄、そのページのURLは確認するようにしていますが、ほとんどの人は見ていない印象です。ただ最近はフィッシングサイトが多く、怪しいURLはクリックされない可能性もあるので、できるだけページ内容に合ったURLを付けるようにしましょう。

URLをパーマリンクで変更する際の注意点

WordPressの記事ページのURLを変更するには、管理画面のパーマリンク構造で簡単に変更することが可能です。しかし、以下の内容を注意しないと、記事が表示されなくなったり、サイトの評価を著しく下げることになるので、設定を変更する前に必ず注意点をご確認ください。

【注意点①】既存URLがすべて変わる

以前の記事番号(?p=123)形式のURLは使えなくなります。そのため、何も対策しないと外部サイトやSNSからのアクセスが404エラーページになる可能性があります。

【注意点②】新しいURLにリダイレクト

SEO評価を維持するために、旧URLから新URLへ301リダイレクトを設定しましょう。
※具体的な設定は下部の説明に記載。

【注意点③】URLの重複

投稿や固定ページで同じURLがあると競合して表示エラーになります。投稿名は他のページと同じにならないように設定して、URLが重複しないようにしてください。

【注意点④】日本語URL

日本語URLの利用は問題ありませんが、エンコードされるため意味がわからない長い文章になってしまいます。これでは「ユーザーの役に立ちそうな言葉」になっていません。英数字を使って意味がわかる内容にしましょう。

【注意点⑤】内部リンクの確認・修正

記事一覧ページなどは、パーマリンク構造を変更るすと自動的に新しいURLに切り替わりますが、固定ページや記事の中で手動で書いたURLのリンクは自動的に切り替わりません。新しいURLに手動で修正が必要です。
※リダイレクトを設定すればリンク切れは無くなりますが、何かの理由でリダイレクトの設定が無くなると、リンク切れになってしまいます。できるだけURLを変更することをオススメします。

【注意点⑥】検索エンジンへの再通知

301リダイレクトを設定すれば、ページ評価を維持しながら新しいURLにインデックスがそのうち切り替わりますが、Google Search Consoleでサイトマップを再送信すると早く反映させることが可能です。

注意点は必ず確認してください。特に①はページが表示されなくなり、②はいままで積み上げた評価を全て捨てることになります。
設定変更に自信がなければ、是非ご相談ください。

WordPressのパーマリンク構造を変更する方法

パーマリンク構造の変更手順について、具体的に説明します。
今回は記事番号(post_id)を記事名(postname)に変更しますが、パーマリンク構造を変更する場合は、基本的にこちらと同じ方法で対応が可能なので、パーマリンク構造の変更内容が異なっても、参考にしていただければと思います。

WordPressのバックアップ

パーマリンク構造の変更は、サイト全体に影響します。
そのためWordPressのバックアップは必ず実施しましょう。

【関連記事】

【保存版】WordPressのバックアップとは?目的・方法・おすすめツールを徹底解説

【保存版】WordPressのバックアップとは?目的・方法・おすすめツールを徹底解説

トラブルが発生してもバックアップがあれば安心です。そんなWordPressのバックアップについて目的・方法・おすすめツールを徹底解説いたします。

旧URLと新URLの一覧表を作成

はじめに、現在の記事ページを全て一覧表に記入します。
そこに現在のURL(旧URL)と新しいURLを決めて記入し一覧表を完成させます。
URLはフルパスでも問題ありませんが、私はパスだけ記入しました。パスだけにした場合は、パーマリンク構造にカテゴリ(category)などを使っている場合は、カテゴリの「/wordpress/」や「/seo/」も一覧表に記入しないと、後から問題が発生するので注意してください。

一覧表を作らなくても設定の変更は可能です。しかしこの後の作業「投稿のスラッグを設定」「リダイレクトの準備」「リダイレクトの確認」で同じ内容で設定や確認が必要となるので、面倒でも一覧表を作ることを強くオススメします。

【記入例】
 旧URL:/wordpress/shortcodes/978/
 新URL:/wordpress/shortcodes/create-your-own-shortcode/
 ※「/wordpress/shortcodes/」がカテゴリ部分

投稿のスラッグを設定

「旧URLと新URLの一覧表を作成」を見ながら、全ての投稿を編集かクイック編集で「スラッグ」を変更していきます。
注意点として、新URLの内容をそのまま入力はせず、カテゴリ部分と「/」は外して入力します。

【記入例】
 新URL:/wordpress/shortcodes/create-your-own-shortcode/
 スラッグ:create-your-own-shortcode
 ※カテゴリ部分の「/wordpress/shortcodes/」はスラッグに入力しない

リダイレクトの準備

WordPressでリダイレクトを行う方法はいくつかあります。あまり頻繁に設定はしないと思いますが、設定ミスでホームページが全て表示されなくなるなど、不具合も発生しやすいので、開発環境で事前に確認したり、バックアップして、いつでも元に戻せる状態で作業してください。

ここでは用意のみです。
実行は「パーマリンク構造を変更」の後に実施します。

プラグインでリダイレクト(初心者向け)

プラグインなら管理画面で簡単にリダイレクトを設定することができます。
代表的なプラグインをご紹介します。

  • Redirection(無料・定番)
    管理画面から旧URLと新URLを入力するだけで301リダイレクトを設定することが可能です。
    404エラーログを確認してリダイレクトを追加でき、正規表現を使った高度な設定も可能です。
  • All in One SEO Pro(有料)
    SEO管理と一緒にリダイレクトもまとめて管理できるので便利なプラグインです。プラグイン導入後、旧URLと新URLを入力して「301リダイレクト」を選択すれば設定が可能です。
    404モニタリング機能でリンク切れを改善することも可能です。

テーマで設定(高難易度)

テーマのfunctions.phpにリダイレクト処理を追加する方法です。
記述はPHPなので、プログラミングの知識があれば問題なく対応できると思います。

add_action(‘template_redirect’, function() {
  if (is_page(978)) {
    wp_redirect(home_url(‘/wordpress/shortcodes/create-your-own-shortcode/’), 301);
  exit;
  }
});

サーバーのコントロールパネル(中難易度・高速)

エックスサーバーやロリポップなどのホスティングサーバーの場合は、Webサーバーのコントロールパネルに「リダイレクト設定」機能があります。コントロールパネルならGUIで簡単に設定が可能です。

.htaccessの使用を禁止しているホスティングサーバーは、コントロールパネルで設定する必要があります。ただエックスサーバーもロリポップも.htaccessが使えるので、あえて使う必要はないと思います。

.htaccessでリダイレクト(高難易度・高速)

Webサーバーをapacheで稼働させている場合は、.htaccessファイルでリダイレクトすることができます。
.htaccessは設置するフォルダ階層で挙動が異なるので、設置場所と記述内容は意識して設置してください。

RewriteEngine On
RewriteRule ^wordpress/shortcodes/978/$ /wordpress/shortcodes/create-your-own-shortcode/ [R=301,L]

私は.htaccessしか使いません。理由はサーバーの引っ越しでリダイレクトを良く作るので経験があることと、複数の設定をする場合、一括で簡単に.htaccessのリダイレクトを作れるからです。
ただトラブルも多いので、ある程度の経験は必要だと思います。

パーマリンク構造を変更

WordPressの管理画面で「設定」→「パーマリンク」を選択します。
表示された「パーマリンク構造」を変更します。


【設定例】変更前

/%category%/%post_id%/

【設定例】変更後

/%category%/%postname%/


「リダイレクトの準備」を先に実施したのは、パーマネント構造を変更すると記事ページのURLが変更されるので、スグに「リダイレクトの設定」を実施する必要があるからです。

リダイレクトの設定

「リダイレクトの準備」で用意したリダイレクトを実施します。
.htaccessで設定する場合は、ファイルをFTP等でアップロードします。

リダイレクトの確認

「旧URLと新URLの一覧表を作成」で作った一覧を元に旧URLをブラウザに入力し、新URLにリダイレクトするか、全て確認します。
なぜ全て確認が必要かと言うと、記述ミスなどで、正常に動いていない場合や、他のリダイレクトと干渉して誤動作したりする場合があるためです。

できれば、リンク切れを確認する機能の実施もオススメします。理由はリダイレクト機能は思ってもいない箇所に影響がでることもあるので、サイトの規模が大きい場合は特にリンク切れの確認も一緒に実行しましょう。

404 Not Find

Search Consoleで再インデックス申請

リダイレクトを確認し、サイトに問題がなければ、Google Search Consoleでサイトマップを送り、パーマネント構造を変更したことを通知します。

私はプラグイン「All in One SEO」を使ってsitemap.xmlを自動生成しているので、そのURLをGoogle Search Consoleに送信しました。送信しなくても、そのうちインデックスは書き換わりますが、sitemap.xmlをGoogle Search Consoleに送信した方が、早くインデックスを書き換えられます。

All in One SEO

まとめ

今回はWordPressのパーマリンク構造をpost_idからpostnameに変える方法について説明しました。

実際にこのサイトで対応しながら、この記事を書きましたが、実は.htaccessの書き方でミスをしました。
パーマネント構造を変更し、旧URLにアクセスすると404ページが表示されます。試しに新しいURLは正しく表示されるので、初めは.htaccessの記述をミスしたと考え記述を色々と変えてみましたが、何も変化がありません。そのため、一度.htaccessを元に戻し、原因調査をしました。ただ冷静に考えるとスグ原因に気が付きました。
WordPressを動かしているサイトの.htaccessは、先にWordPressが追加した記述があります。今回はその.htaccessにリダイレクトを最後に追記しましたが、この場合は先にWordPressが動いてしまいます。そのため404ページをWordPressが表示させていました。
そこで、リダイレクトを先頭に記述したところ、問題なく動作させることができました。

.htaccessには、動作の優先度があります。今回のようにファイルの先に書いたり、各階層に書いたり、apacheの設定に書いたり、それぞれ動き方が変わります。その辺も経験なので、高難易度と言われています。
ただ、記述内容は単純なので、初心者でも対応は可能だと思います。何事もトライ&トライなので、この記事を読んで色々と試していただければ幸いです。