URLの階層は最小に抑えたほうがSEOに効く
WordPressのデフォルトの設定だと、カテゴリページのURLに無駄なcategory
階層が入ってしまう
無駄なcategory
階層を取り除いて、URL階層構造をスッキリさせる方法のメモ
どんな方法があるのか?
- パーマリンク設定をカスタマイズ
- functions.phpにコードを追加
- .htaccess or nginx.conf のコードを書き換える
- プラグインを使う
パーマリンクの設定をカスタマイズする方法
管理画面 > 設定 > パーマリンク設定
を開いて、カテゴリーベース という項目に.
を入力
パーマリンクのカスタム構造を
/%category%/%postname%.html/
とする
ただし、パーマリンクが/%category%/%postname%/
という構造だと、サブカテゴリーを含むページを表示したとき404エラーになってしまう
URLの末尾に.html
がついてしまうのが気にならなければこのやり方が便利
※ 既にサイトを公開していてインデックスされている場合はリダイレクトの設定を忘れずに
※ カテゴリのURLを削った場合、タグのURLは削らない方がいい(名前がかぶってしまった時に面倒になる)
プラグイン「No Category Base(WPML)」を使う方法
プラグインをインストールして有効化するだけで、カテゴリページのURLからcategory
の文字を消してくれる
category
ありの旧URLにアクセスしても、リダイレクトしてくれる
管理画面 > 設定 > パーマリンク設定
を開いて、カテゴリーベース という項目に.
を入力
パーマリンクのカスタム構造を
/%category%/%postname%/
とするのも忘れずに
サイトマップの生成に使用されるURLもcategory
なしのURLなのかを調べてみたところ、小カテゴリが存在している場合親カテゴリのURLが生成されないことが判明しております。
ひとまずこれを採用
上記事象が判明したため、Remove Category URL
に乗り換えることに。
プラグイン「SEO by Yoast」を使う場合
「SEO by Yoast」 というSEO対策用のプラグインの設定項目の一つとして、カテゴリページのURLからcategory
を削除するものが入っている