記事URLの設計と考え方

Web上の記事は、それぞれ固有のURLを持つ。本サイトでも、ブログ記事を投稿すると、このページのようにURL(パーマリンク)が与えられる。パーマリンクをどのようなURL形式にするかは、WordPressの管理画面で、いくつかのパターンから選択・設定することができる。

  • /blog?p=168 :記事ID
  • /blog/2025/01/24/design-post-url/ :投稿日+名前
  • /blog/2025/01/design-post-url/ :投稿月+名前
  • /blog/design-post-url/名前

多くの解説記事で推奨されているのは、一番最後に挙げた形式である。理由としては、記事IDよりも名前を使ったほうが人間の目で区別しやすいことや、日付を入れると古い記事でユーザーの離脱要因になること、などがあるらしい。

一方、どの解説でも口をそろえて、「後からURLを変更しないこと」と書かれている。せっかく検索エンジンなど外部からリンクされても、URLが変更されるとリンクからアクセスできなくなるからだ。

しかし、各記事を投稿するときに、そのベストなURLを考えて決めるのは、私には難しい。それくらい完成度を備えてから投稿するのが理想だとは思うのだが、ひとまず適当に投稿してから、書いた内容や決めたURLをあとから変えたくなるときが多々ある。そんなときにリンク切れを気にして直せないのは、あまりにもどかしい。(そもそも、どこからもリンクされていないのに。)

この問題を解決するひとつの手段として、次のURL形式を発見した。

  • /blog/168/design-post-url/ :記事ID+名前

これは、URLに名前を持たせるメリット・日付を隠すメリットを享受しつつも、名前の変更を可能にする(はずの)形式である。なぜなら、アクセスしたURLの名前部分が欠けている場合には記事IDに基づいて記事が表示され、名前部分が誤っている場合には、正しい名前のURLにリダイレクトされるからである。実演のため、以下にリンクを用意した。

この形式は、実はヘルプデスクサービス Zendesk の挙動からヒントを得ている。サポートサイトのプラットフォームとしてよく使われているZendeskだが、各記事のURLは「/articles/<記事ID>-<名前>」という形式になっている1。この <名前> の部分を消したり変えても、元のURLに戻って正常にアクセスできる。

この挙動がどのような仕組みで実現されているのか調べてみたが、残念ながら関連文献は見つからなかった。WordPressでも実現したいと思って実験した結果として、この形式に至った。区切りがハイフンではなくスラッシュではあるが、とりあえずこれで運用してみようと思う。

  1. 例. Zendeskヘルプ「Zendesk Suiteへようこそ」 https://support.zendesk.com/hc/ja/articles/4408838041370-Zendesk-Suite%E3%81%B8%E3%82%88%E3%81%86%E3%81%93%E3%81%9D ↩︎

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA