ちょっと疑問に思ったこと。Web の SEO をやっていると canonical ページっていうのを聞いたことがあるとおもいます。 canonical ページとは、Google 先生曰く「複数の類似した内容のページの中で優先されるページです。」だそうです。 僕は URL の正規化 に使うものだという認識ですが、間違ってませんよね??
で、この canonical URL ってどう付けたらいいんだろう?っていう疑問です。
canonical URL ってどっち?
RESTful リソースの URL
Web サービスやっていると、RESTful な URL 設計大事!ってなりますよね。 Rails なんかをやっていると、ルーティングが自動的に RESTful になってて便利です。こんな感じ。
hypermedia GET /hypermedia(.:format) hypermedia#index
POST /hypermedia(.:format) hypermedia#create
new_hypermedium GET /hypermedia/new(.:format) hypermedia#new
edit_hypermedium GET /hypermedia/:id/edit(.:format) hypermedia#edit
hypermedium GET /hypermedia/:id(.:format) hypermedia#show
PATCH /hypermedia/:id(.:format) hypermedia#update
PUT /hypermedia/:id(.:format) hypermedia#update
DELETE /hypermedia/:id(.:format) hypermedia#destroy
こういうルーティングだと、http://example.com/hypermedia/1
みたいな感じでリソースにアクセスできます。
で、例えば、作ってる Web サービスで、hypermedia/1
リソースの別名で、hypermedia の URL を使ってもアクセスできるようにしたい。こんな感じで。
http://example.com/hamasyou.com
ルーティングに
1
|
|
を追加しておくと hypermedia#show
の中で params[:url]
から hamasyou.com
っていう値をとれるようになります。
なので、こういう URL に別名付けてちょっとクールな感じの Web サービスを気取ってみたくなりました。
どっちがいいの?
で、本題ですが、こういうリソースの別名扱いの URL があるとき、canonical URL として指定するのは
/hypermedia/:id
*url
のどっちがいいんだろう?という疑問です。HTML 的に書くとこんな感じ。
1 2 |
|
どっちでもいい。好みの問題って感じもしなくもないですが、皆さんどっちを選ぶのが多いんでしょう?