WordPress

WordPressのパーマリンクとは?設定の選び方と、変えるときの注意点

公開 更新 約4分で読めます

TL;DRこの記事の要点

  • パーマリンクは、記事やカテゴリに付く、変えない前提のURL
  • 「設定」→「パーマリンク設定」で決める。このブログは「投稿名」
  • 公開後に設定やスラッグを変えると、URLも変わる
  • カテゴリの親子を変えたら、古いURLが転送されるか確認する
目次5項目
  1. パーマリンクとは?変えない前提の、記事やカテゴリのURL
  2. どこで決める?
  3. パーマリンクの種類と選び方
  4. 自分はこう使ってます
  5. 迷ったときの確認ポイント

WordPressの設定画面にある「パーマリンク」。
何を決める設定なのか、分かりにくい名前です。

意味と種類、選び方をまとめます。
後半は、URLが変わった実例です。

スラッグって、パーマリンクとどう違うの?

URL全体がパーマリンクで、スラッグはその中の名前の部分だよ。

パーマリンクとは?変えない前提の、記事やカテゴリのURL

パーマリンクは、記事、固定ページ、カテゴリなどに付く、変えない前提のURLのことです。
名前の「perma」は、永続的という意味。
WordPressの公式ドキュメントでも、これらのURLは変えないもの、とされています。

実際に見てみましょう。

記事: https://cats-hand.pro/wordpress-slug/
カテゴリ: https://cats-hand.pro/category/tools-ai/

どちらもパーマリンクです。
末尾のwordpress-slugが、スラッグです。

どこで決める?

「設定」→「パーマリンク設定」で決めます。
ここで選んだ形が、全記事のURLの形になります。

いまの設定は、WP-CLIでも確認できます。
WP-CLIは、ターミナルからWordPressを操作するツールです。
Claude Codeに確認してもらうと、こうでした。

wp option get permalink_structure
/%postname%/

これが「投稿名」の中身です。

パーマリンクの種類と選び方

管理画面で選べるのは、次の6つ。

  • 基本:?p=123のような、投稿IDを使った形
  • 日付と投稿名:/2018/12/30/post-name/
  • 月と投稿名:年と月のあとに投稿名が付く形
  • 数字ベース:投稿IDを使った形
  • 投稿名:/post-name/
  • カスタム構造:自分で組み合わせる形

インストール直後の初期設定は「基本」です。
公式ドキュメントでは、「基本」は人にも検索エンジンにも分かりやすい形ではないとされていて、投稿名などを含む形は「Pretty permalinks」と呼ばれ、読みやすい形として説明されています。

うちは「投稿名」を使っています。
スラッグがそのままURLの末尾に入るので、URLを見ただけで何の記事か分かる形です。

カスタム構造で使えるタグ

「カスタム構造」は、タグを組み合わせて決めます。
主なタグは次のとおりです。

  • %postname%:記事のスラッグ
  • %post_id%:記事のID
  • %category%:カテゴリのスラッグ
  • %year%・%monthnum%・%day%:公開した年・月・日

公式ドキュメントには、URLの形の最後は%post_id%か%postname%で終えるように、とあります。
記事を1本ずつ特定するためです。

ひとつ、気をつけたいのが%category%。
複数カテゴリの記事の場合です。
1つの記事に複数のカテゴリを付けた場合、URLに入るのは1つだけ。
どれが入るかは、名前順で決まるとされています。

あとから設定を変えても大丈夫?

変えること自体はできるよ。ただ、設定を変えると公開済みの記事のURLも変わるから、公開前に決めておくのがいいんだ。

自分はこう使ってます

「投稿名」で、スラッグを英語で決める

記事のスラッグは、英語で必ず指定しています。
日本語タイトルのまま公開すると、パーセントエンコードされた長いURLになるからです。
リライトでも、検索結果に登録された(インデックスされた)URLが変わってしまうので、スラッグは変えません。

カテゴリの親子を変えたら、URLも変わった

記事のURLだけの話ではありません。
カテゴリのURLにも関わります。

「制作ツール」の子カテゴリだった「AI活用」を、親カテゴリに上げました。
すると、カテゴリのURLはこう変わりました。

変更前: /category/tools/tools-ai/
変更後: /category/tools-ai/

カテゴリのURLには、親子関係が含まれます。
親子を変えたので、URLも変わったわけです。

古いURLは、どうなったの?

そのまま開けちゃってたんだ。Claude Codeに確認してもらったら、ステータス200で表示されてた。だから今のURLへ301で転送するようにしたよ。

古いURLを開いても、転送もエラーもなく、同じ一覧がステータス200のまま表示されていて、同じページが2つのURLで見える状態でした。
そこで、301で転送する処理をテーマに追加しました。
301は、古いURLへのアクセスを新しいURLへ案内する転送のことです。
原因と転送のコードは、カテゴリの親子変更後に古いURLが200のまま残る原因と301転送で詳しく書いています。

迷ったときの確認ポイント

  1. 公開前に、パーマリンクの形を決める。このブログは「投稿名」
  2. 設定を変えるときも、記事のスラッグを変えるときも、公開済みのURLが変わることを前提にして、変わるURLを先に控えておく
  3. カテゴリの親子を変えたら、古いURLを開いて、転送されるか確認する
  4. %category%を使うなら、複数カテゴリの記事で、どのカテゴリがURLに入るか確認する

公開後にURLを変える場合は、古いURLから新しいURLへ転送されるかを確認しましょう。
パーマリンクの形とスラッグは、公開前に決めておくと安心です。

あわせて知っておきたい用語

スラッグ
記事やカテゴリを、URLの中で表すための名前。
301(リダイレクト)
古いURLへのアクセスを、新しいURLへ案内する転送のこと。詳しくはこちら
カテゴリベース
カテゴリのURLの先頭に付く「category」の部分。変更はできますが、なくせません。

この記事が参考になったら、応援クリックをお願いします

Cat's Handこの記事を書いた人

Web制作歴10年以上。WordPressのテーマカスタマイズやコーディングを中心に、副業・本業ともにweb制作に携わっています。このブログでは、実際に手を動かして分かったことを書いています。