SEO

ウェブサイトのURLを正規化する(www.の有無の統一など)

http(s)://の後に続くwww.の有無など、ウェブサイトのURLを統一するURL正規化はSEO(検索エンジン対策)上、基本的なことであり重要でもあります。当方ではSEOを専門にしているわけではありませんが、ウェブサイト作成時にはこういったSEO内部施策は出来る限り行っています。

URL正規化”とは、URLを統一するなどしてコンテンツ(ページ)のオリジナルのURLを明示することです。

例えば「http://example.com/」というオリジナルのURLを持つコンテンツに対して「http://www.example.com/」や「http://www.example.com/index.html」など別のURLでもアクセスできる場合を考えてみます。

人間なら気にせず同じページだろうと思ってしまうようなURL違いも、検索エンジンはそれぞれを別のものとして識別してしまいます。堅いこと言わずに、なんて思っても、実際にそれぞれ別の内容にすることもできるのでそうも行きません。

この場合の問題として「URLが異なるにも関わらず内容が全く同じ」になってしまうことが挙げられます。検索エンジンは、基本的にユーザーに有益な検索結果を提供するよう進化しているため、内容が全く同じページが複数存在するようなサイトを良しとしていません。そういったページが多いと、コピーばかりで中身の少ないサイトだと認識され検索結果に悪影響を与える可能性があります。

他にも「コンテンツに対しての検索エンジンの評価が分散されてしまう」といったことも考えられます。仮に、外部サイトからSEO上有用なリンクが300件あったとしても、リンクされるURLが3つに分かれていれば各URLごとに別々に評価されてしまう可能性があります。

こういった問題を防ぐために、“URL正規化”をして本当のURLがどれかということをはっきりさせておきます。もちろんサイトのホームページ(トップページ)だけでなく、商品一覧なども含めて全てのページに対して行うのが理想です。

具体的には「オリジナル以外のアクセスは“301リダイレクト”で強制的に本当のURLへ移動させる」サーバ設定や「HTMLの“URL正規化タグ”を使ってURLを明記する」などで対策します。

301リダイレクト”は「このURLはもうコッチへ移動しました」というHTTPステータスをユーザー(検索エンジン)に返します。上記の例のような他URLへアクセスがあった場合にオリジナルURLへ自動で誘導します。“301リダイレクト”は、URL正規化だけでなく、実際にURLが変更になった場合にも利用します。

サーバに設置する.htaccesswww.有りのURLをwww.無しに統一する例
<IfModule mod_rewrite.c>
RewriteEngine on

# www.無しのURLへ301リダイレクト
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*) http://example.com/$1 [R=301]
</IfModule>

URL正規化タグ”は、HTMLの<link>タグを使ってURLのバージョンを記述します。パソコン版とスマホ版でURLが異なる場合など、一方をオリジナル、もう一方を代替バージョンと表すことができます。

パソコン版を基本バージョン、スマホ版を代替バージョンとする例
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ノンタイトル</title>
<!-- オリジナルのURL(パソコン版) -->
<link rel="canonical" href="http://example.com/">
<!-- 別バージョンのURL(スマホ版) -->
<link rel="alternate" media="handheld" href="http://s.example.com/">
</head>
<body>
</body>
</html>

URL正規化”はサイト起ち上げ時だけでなく、URLの変更や削除などウェブサイトの運営を続けていく上で必要なケースも出てきます。また、サイトリニューアルをご依頼のクライアント様には、URL正規化が行われていない既存サイトにご提案をさせていただく場合もあります。