JavaScriptで作る、といってもその度合いは2段階あると思う。
- JavaScriptで全てのメニュー表示を行なう
つまり、ブラウザで表示されるソースコードにHTMLが存在しない場合は、これに当てはまる。 - 基本の表示するメニューはHTML/CSSで書いて、JavaScriptで表示の動作を制御する。
ブラウザのソースコードには、メニュー全てのHTMLコードが書かれているのがこれだ。
当社で作った自社プロジェクトの Thank You Project のメニューは2番になる。
2番の場合は、コードやリンク先の情報は全てHTMLで記述されているので、従来通り、古いサーチエンジンでも問題なく読まれる。(もちろん、CSSでdisplay: none; やvisibility: hidden;などに設定していると、読まないエンジンも存在する)
では、最新のサーチエンジン、例えばGoogleなどはどうだろう。
2008年10月にソフトウェア・エンジニアであるJanis StipinsはGoogleがサイトをインデックスするのに、JavaScriptを高度なレベルで理解することを確認している。
Hochman Consultants会長であるJonathan Hochmanの2009年1月のレポートによると、2008年12月、MonitronicsはASP.NETで作られたオープンソースのDotNetNukeのとSolpart version 1.7.2のメニューシステムを使用して、新しいサイトを立ち上げた。
DNNのSolpartメニューはJavaScriptに完全に依存している。 そう、上記の1番にあたるのだ。
上記のサイトをJavaScriptをオフにして訪れて頂きたい。
サイトメニューが完全に消えていることに気がつくだろう。
従来であれば、このような手法はSEOに悪いとされてきた。いや、むしろ最悪だ。なんせ、メインメニューからのみ行けるページがあった場合、検索エンジンは、そのページへたどる為のリンクが無いのだから。
だが、このMonitrinicsのGoogle cacheを見ていただきたい。
そう。メニューが正常にインデックスされているのである。
それだけではない。GoogleはMonitrinicsの検索にもそこそこ正常にサブリンクを表示させている。
この情報は、SEO対策を手がけるプログラマーの方にとっては、非常にうれしい事だ。
SEO対策を最初から視野に入れてプログラムをするのであれば、JavaScriptを避けたりする方法もいくらでもあるが、既存サイトのSEO対策は、往々にして厄介な場合が多い。
>> 次回は、ヤフーやマイクロソフトの検索エンジンはどうか?をご紹介しようかと思う。