htmlでサイトを作る場合、サイト内に各ページへの内部リンクを貼る事になりその際<a href=”○○”>という記述をする事になりますが、この“○○”の部分の記述の仕方には以下の3つの方法があります。
■絶対パス
■ルート相対パス
■相対パス
これらにはそれぞれメリットデメリットがあり必ずしも「これを使うべき」というものはないものの、その特徴を覚えておけばサイトに合ったリンクの記述が見えてくると思います。
ではこれら「絶対パス」「ルート相対パス」「相対パス」について詳しく見ていきます。
絶対パスとは?
まず絶対パスですが、これは“http://”から始まる完全な形でリンクを貼るもので、このサイトのアドレスを例にトップページの記述は以下のようになります。
<a href=”http://jinseiaffili.com/”>
<a href=”http://jinseiaffili.com/index.html”>
一応断っておくとワードプレスはhtmlではなくphpなので当サイトの場合上記の“index.html”はリンク切れを起こしておりますが、これはあくまでもhtmlサイトを想定したものとご理解下さい。
そして例えばトップと同じ階層に“site”というディレクトリ(フォルダ)を作り、その中の“shippai.html”というファイルにリンクしたい場合は…
<a href=”http://jinseiaffili.com/site/shippai.html”>
…という記述になり、このようにすべて“http://”から始める完全なURLでの記述を「絶対パス(絶対リンク)」と呼びます。
絶対パスのメリットとデメリットに関しては…
●メリット
- ■どの階層からでも位置を気にせず記述できる
- ■リンクごとページをコピーされた場合バックリンクになる
●デメリット
- ■記述が長い
- ■サイト移転やドメイン変更をする場合すべてのリンクを変更する必要がある
ちなみに多くの方が使用しているWordPressなどのブログサービスは基本的にすべて絶対パスになっています。
ルート相対パスとは?
ルート相対パスは乱暴かつ簡潔に書いてしまうと「http://○○」の記述を省いたもので、絶対パス同様どんな階層にいても記述は同じという特徴があります。
記述の仕方は常にトップの階層にいる事を想定し「/」から始まり、どの階層からでもトップページへのリンクは…
<a href=”/index.html”>
…となり、絶対パスでの項目で取り上げた“site”というフォルダ内の“shippai.html”というページにリンクしたい場合は…
<a href=”/site/shippai.html”>
…となります。
感覚としては上でも書いたように絶対パスの「http://ドメイン」の部分を省いたものという覚え方でよく、絶対パス同様どんなに下の階層のページからでも書き方は変わらないため、「今どの位置にいるか」を考える事なく記述でき、またドメインが変わっても記述はそのままでよいというのが特徴です。
ルート相対パスのメリットデメリット。
●メリット
- ■どの階層からでも位置を気にせず記述できる
- ■サイト移転やドメイン変更でも記述を変える必要はない
- ■絶対パスより短い記述で済む
●デメリット
- ■相対パスに比べれば記述が長い
相対パスとは?
最後に取り上げるのは「相対パス(相対リンク)」です。
これは今いる階層から見てリンク先のページを指定する方法で、絶対パスやルート相対パスと違い階層やディレクトリ(フォルダ)の場所に応じて記述を変える必要があります。
例えばトップの階層にある“site”フォルダ内の“shippai.html”というページから同じフォルダ内の“seikou.html”というページにリンクを貼りたい場合の記述は以下のようになります。
<a href=”seikou.html”>
このように同じディレクトリ内であればページのファイル名だけという非常に短い記述で済むのが特徴で、一方トップページへのリンクはというと…
<a href=”../index.html”>
…となり、相対パスでは1つ上の階層を指定する場合頭に「../」の記述を入れる事になります。
仮にトップに“site”とは別の“goods”というディレクトリがあったと仮定し、先ほどと同じように“site”内のページから“goods”内の“pen.html”というページにリンクを貼りたい場合の記述は…
<a href=”../goods/pen.html”>
…というように、1つ上の階層に戻った上で“goods”のディレクトリ内の“pen.html”というページを指定する事になり、この場合はルート相対パスでの記述「<a href=”/goods/pen.html”>」の方が短くて済むという事になります。
また、例えば大規模なサイトでトップから3つ下の階層からトップページを相対パスで指定すると…
<a href=”../../../index.html”>
…というように「../」の記述が多くなってしまいますので、相対パスは階層の少なく細かいフォルダ分けを行なっていないような小中規模のサイトに向いており、フォルダ分けを細かく行い下に2、3階層あるようなサイトで内部リンクに相対パスを使うのはおすすめしません。
また、相対パスはページによって記述を変えるため「../」を入れ忘れたなどの記述ミスが多くなりがちなので、Dreamweaverなどサイト作成ソフトにあるリンクチェックの機能がないとリンク切れを起こしやすくなります。
相対パスのメリットデメリット。
●メリット
- ■同じディレクトリ内や近い階層であれば少ない記述で済む
- ■サイト移転やドメイン変更でも記述を変える必要はない
●デメリット
- ■細かいフォルダ分けや深い階層がある場合かえって記述が長くなる
- ■サイト作成ソフトなどのリンクチェック機能がないと記述ミスによるリンク切れが心配
絶対パス、相対パスの総評・まとめ
長々と書いてきましたが、「絶対パス」「ルート相対パス」「相対パス」の3つの内どれを使えば良いかという点については好みやサイトの形態によって異なるので一概に「これが良い」とは言えません。
私自身は長らくルート相対パスの存在を知らなかった事もあり、また一番大きなサイトでも2階層しかないためhtmlサイトではずっと相対パスを使ってきました。
最も記述を少なくするという観点では「同じディレクトリ内のリンクなら相対パス、ディレクトリをまたぐ場合はルート相対パス」という使い分けが最も効率が良いでしょう。
多くのサイトでは「絶対パスが良い」とする記述も見かけますが、SEO的な観点からもこれらに差はなく、万が一のサイト移転やドメイン変更も視野に入れつつ記述も短くするなら相対パスとルート相対パスのハイブリッドがおすすめです。
一方、ドメイン変更の可能性がなく万が一のページパクリなどが心配な場合は絶対パスでのリンクが良く、またGoogleの見解として「SEOの効果は無いがリンク切れを起こしにくい絶対パスを推奨する」というスタンスなので、こういった面も考慮すれば記述は面倒でも絶対パスの使用がベストといえます。
ただ、リンク切れを起こさなければどの記述でも差や問題は発生しないので、ご自分のサイトやスタンスに合わせて適切に選択して下さい。