サイト制作者が知っておきたい、これから始めるSEOのポイント10
サイトを閲覧してもらうためにはSEO(Search Engine Optimization)は重要な要素だ。新しい立ち上げたばかりのサイトでも適切にサイトを作っていれば、特定のキーワードで検索順位が上位になり、検索流入もきちんと確保できる。サイト制作者側の視点で抑えておきたいポイントをまとめてみよう。
[1] 1つのコンテンツを複数のURL表現にしない
検索エンジンではURLが異なれば違うページと認識される。トップページでよくある失敗例は、
http://www.example.com/
http://www.example.com/index.html
http://example.com/
http://example.com/index.html
の4つのURLそれぞれで同じコンテンツにアクセスできるケースだ。このような状態になっていると、1つコンテンツが持つ価値がそれぞれに分散し、検索結果に表示され難くなる。
対処方法としては、次の2つになる。
- いずれか(http://example.com/)をマスターと定め、ほかのURLからは301リダイレクトを行う
- それぞれのページのhead内にcanonicalを設置する
1の場合は、ApacheであればRewriteRule(mod_rewirte)でNginxであればrewrite設定で行う。たとえばwww付きをwwwなしにリダイレクト統合する例を示すと以下のようになる。
・Apacheの例 <VirtualHost *:80> ServerName www.example.com RewriteEngine On RewriteRule ^(.*)$ http://example.com$1 [R=301,L] </VirtualHost> ・Nginxの例 server { server_name www.example.com; rewrite ^(.*)$ http://example.com$1 permanent; }
2の場合は以下の記述を該当ページのみに追加する。
<link rel="canonical" href="http://example.com/">
これによって複数のURLで閲覧できる状態だったとしても、検索エンジンではhttp://example.com/であると認識してくれるようになる。
なお、canonical記述の追加には注意が必要だ。テンプレートなどでこの記述を構成したとき、誤って該当ページ以外に同じcanonical記述が表示されてしまうミスがよくある。こうなると、かえって混乱を拡大させることになってしまう。注意深く正確に実装できなさそうであれば301ディダイレクトのみを利用していたほうが無難である。
[2] ドメイン変更、ページURL変更の際は適切に301リダイレクト
既存の/about.htmlを/aboutに変更したいなどURLを変更する場合は、古いURLから新しいURLに301リダイレクトを行っておく。とくにサイト運営期間が長いサイトでは古いURLに対しては一定の価値があるので、それを捨てずに適切に新しいURLに移行しておくのが重要だ。結果的にサイト全体にも有利に働く。
サイトドメイン名を変更する場合も同様だ。対応方法としては、①で紹介したwwwありをwwwなしに統合する方法と同じになる。
WordPress上で301リダイレクト対処
リダイレクト設定はWebサーバー側の設定で行ったほうがいいが、サーバー環境によってはWebサーバーの設定が変更できない場合もあるだろう。WordPressを使っている場合は、WordPress上のテーマのための関数(function.php)で設定することも可能だ。たとえば/about.htmlを/aboutに301リダイレクトするには、以下を記述すればよい。
if ($_SERVER['REQUEST_URI'] == '/about.html') { header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . home_url() . '/about'); exit(); }
WordPress自体がPHPエディタのようなものなので、上記はPHPの機能を使ってリダイレクトしてしまうというものだ。リダイレクト設定数が多くなってきたらそれなりに負荷になるし、管理も煩雑になるので、この方法は一時対処的なものにだけ利用したい。サーバーをアップグレードするなり、Webサーバー側で修正する方向をできるだけ検討していこう。
[3] サイト内のリンク切れをなくす
検索エンジンの基本アルゴリズムとしてページに対する被リンクは重要な要素である。これは外部サイトからだけなく、サイト内部のリンクも同様だ。サイト内の1ページごとの関係性もリンクで構成されており、サイト内にリンクが切れているところがあれば、そこから評価を捨てている状態である。もちろんユーザービリティとしてもリンク切れが存在するのは問題だ。
リンク切れチェックツールにはいろいろあるので、規模や運用に合ったものを見つけていただきたい。簡易な方法としては、wgetでミラーを取得し、そのログを使う方法がある。
$ wget -m -o log http://example.com/ $ grep -n ^HTTP log |grep -v 200 1609:HTTP request sent, awaiting response... 404 Not Found 1615:HTTP request sent, awaiting response... 301 Moved Permanently
上記の実行例では、wgetのログをlogファイルに出力し、HTTPのレスポンスコードが200以外の行を抽出している。もしリンク切れがあり、404エラーがあれば、上記のように行数とステータスコードを確認できる。いくつか表示されるようであれば、logファイルを見直して該当ページのリンクを修正していけば良い。
なお、wgetでURLの存在だけを確認したい場合は、「--spider」オプションでHEADリクエスト(実際にファイルを取得しない)を実行する方法もあるので活用していただきたい。
wget --spider <URL>