SEO においてフレームで構(gòu)築されたWebサイトはよく問題にされます。これは検索エンジンとフレームは非常に相性が悪く様々な問題を引き起こすからです。既にフレームを使っていてリニューアルもすぐにはできない人はどうすればよい?
アクセスログを見ていますと、サイト內(nèi)検索を使って記事を探されている方にフレーム対策を求めている方が少なくありませんでした。フレームと SEO - よく話題にされる事項ですが、実は今までこの blog では取り扱ったことがありませんでした。。
そんなわけで本日は SEO とフレームの問題について話を進めましょう。
SEO初心者の方も少なくありませんので、Web制作者の方には「もうくどい」と思われる説明が前半部分にありますがご容赦下さいm(_ _)m。
フレームは frameset 定義をすることで複數(shù)のファイルを1つのウインドウ內(nèi)に表示する機能です。例えば次のようなWebサイトがフレームを利用しています。
例1 毎日新聞
http://www.mainichi.co.jp/
例2 ZAKZAK
http://www.zakzak.co.jp/
例3 特価.com
※ いずれも 2003/09/22 時點
一般的にWebサイトにフレームが利用されるのは、特に例2、例3であげたようにWebのナビゲーション部分とコンテンツ部分を別に管理する時です。フレームを使う事で常に畫面上に(畫面をスクロールしても)ナビゲーションを常に畫面上に表示できますし、Webサイトのメンテナンス面でも楽だからです。
一見便利に見えるフレームも検索エンジン対策では問題になります。第1に、frameset を定義する HTML ファイル自體には、どのファイルを畫面上に読み込むかの記述はあってもコンテンツ自體はありません。従って検索エンジンのクローラーがこの frameset ファイルを読み込んでも與える情報がありません。従ってWebページの評価が下がります。
第2に、コンテンツの増加に伴ってどれだけWebサイト內(nèi)のページ數(shù)が増加しても、最適化できるファイルは frameset 定義されたファイルに限られてしまいます。なぜなら、フレーム內(nèi)で読み込まれるWebページはそれ単獨で表示させるわけにはいかないからです。先述した例2、例3のようにナビゲーション部分を別ウインドウに頼っている場合はなおさら単獨表示させるわけにはいきません。もしフレームを使わなければWebサイト內(nèi)のページボリュームを増加させる事ができるのに、フレームでWebサイト構(gòu)築を行う事で制約ができます。これもフレームがSEO対策を困難にさせる一因となります。
さらに第3點。仮にフレーム內(nèi)で表示されるべきある特定のファイルが上位に表示されてトラフィックを誘導(dǎo)できたとしましょう。しかし上述した通りナビゲーション部分がそのページ自體に存在しなければ、訪問者は検索エンジン経由で訪れたそのページから他に移動する事はできません。もしリンクがあってそれがクリック可能であったとしても、フレーム外で表示されている為に制作者が意図した通りに畫面を表示できない可能性が高くユーザビリティを大きく損ねます。これは結(jié)果的に訪問者の離反を招きます。
第4點は SEO 以前の問題で、訪問者が好んだ特定のページをお気に入り(ブックマーク)できないという問題です。フレームサイトは常にある特定のURL (例えば index.html)上で表示されており、どのコンテンツを開いてもこの URL は変わりません。従って、訪問者がWebサイト內(nèi)で特定のページを後日訪問するためにお気に入りに登録しても frameset を定義する index.html しか登録できないので、後日再び同じページに訪問するのが困難になります。
このようにフレームサイトはユーザビリティ及びSEOの観點どちらからもよくありません。
解決策としてフレームを除去するのが一番です。フレームを利用しないWebサイトで再度検索エンジン最適化を施すのが一番ベストである事は事実です。しかし、既にWebサイトをリニューアルしたばかりであるとか、リニューアルする為のお金がないなど、當分の間いまあるフレームWebサイトを運用しなければならない方もいるでしょう。
そこで解決策。
1つ目。frameset 定義をするファイルの、タイトルタグ、及び META タグをきちんと記述しましょう。これは基本です。トップページの內(nèi)容に沿った適切なタイトルタグと META タグを設(shè)定して下さい。たくさんのキーワードで最適化をしようとしないで下さい。1つのページで最適化可能なキーワードの數(shù)は多くても3つ程度です。
2つ目。frameset 定義するファイルに <noframe> ~ </noframe> を入れて下さい。<noframe> はフレーム表示非対応のブラウザでアクセスしてきた訪問者に対して表示するためのものですが、これはクローラーも內(nèi)容を読み取ります。
フレームで表示するトップページの、非フレーム版のWebサイトを制作すると考えてこの <noframe> ~ </noframe> 內(nèi)に記述して下さい。テキスト中心で作成すればよいので、検索エンジンに好まれるような作り方を心がけて下さい。でもクローラーしか見ないからといってスパムぎりぎりの行為は慎むことです。
3つ目。クローラーは本來フレーム內(nèi)で表示されるべきファイルをデータベースに登録してしまっており、訪問者は検索エンジン経由でそのファイルにアクセスするかもしれません。その時は自動的に frameset タグを読み込んでもらうようにしましょう。
<BODY onLoad="if (parent.frames.length==0)
top.location='http://(あなたのドメイン/URL)/(frameset を定義しているファイル名)';" >
このHTLMコードを全てのページに埋め込むことで解決します。
以上の解決策をとることで、フレームを使っているWebサイトでもある程度の検索エンジン対策は可能です。