GWT(Google Web Toolkit)のSEO?
GoogleAppEngineがJava対応したので、ついでにGWTでも遊んでみようとサンプルとか試してたんだが、GWT使ったサイトには致命的な弱点があることが分かった。それは「GWTで作ったサイトはサーチエンジンで検索できない!」ということだ。
GWTのHTMLソースはこんな感じ
どういうことかというとGWTではJavaを使ってネイティブアプリケーションを作成するようにGWTウィジットをプログラムで配置して、各種イベントもJavaで作成し、時にはサーバサイドと通信を行うというプログラムもJavaで書き、最後にコンパイルするとJavaで書いていたコードが全てJavascriptになってはき出されるUIもコードもあらゆる全てがだ。その結果、開発者はHTMLやJavascriptを全く触らないまま非常にリッチなWEBアプリケーションを作成することが出来てしまう。開発者にとっても閲覧者にとっても、これは一見素晴らしい試みに見える。
しかし作成されたページのHTMLコードを見てみよう。例えばこんな感じだ。
<html> <head> <!-- The fully-qualified module name --> <meta name="gwt:module" content="Website.Webpages" /> <!-- Properties can be specified to influence deferred binding --> <meta name="gwt:property" content="language=ja" /> <!-- Stylesheets are optional, but useful --> <link rel="stylesheet" href="css/default.css" /> <!-- Titles are optional, but useful --> <title>WEB Page Title</title> </head> <body> <!-- Include the bootstrap script just inside the body or in the head --> <!-- (startup is slightly faster if you place it just after the body tag --> <script language="javascript" src="gwt.js"></script> </body> </html>
一体何が起こるページなのかさっぱり分からない。実はこれはとってもクールでリッチなWEBメールアプリケーションなんだよ!って言っても誰も信じてくれないんじゃなかろうか?
秘密は全てgwt.jsにある。この中に全てのHTMLパーツの配置の記述があるし各種イベントを処理するコードもあるしサーバと通信してメールをフェッチしたりあらゆる操作を行う為のコードも含まれてるんだ。しかもそれらはブラウザ毎に高速かつもっともすてきなデザインになるようにカスタマイズされて圧縮され小さなファイルになっており、さらなる高速化の為にさも当然のようにキャッシュコントロールまで行ってくれている。…らしい。
SEOは必要じゃね?
閲覧者も開発者もそんなことは気にしなくてもリッチでクールなアプリケーションが作れて利用できるんだから構わないじゃないか?これが多分GWTの設計思想なんだと思う。でも今時のWEBの世界では「さぁ出来たぜ。みんなも使ってみてくれよ!」って叫んでみても、有名なサイトで紹介でもされない限り誰も見てくれないだろう。
アプリ自体が素晴らしいんなら自然と口コミとかで人が集まるんじゃないかって?悲しいことに、僕にはそんな凄いアプリが作れる自信は殆ど無いし、これまで作ってきた沢山のサイトでもコンテンツの質だけで人目を惹けたページなんて数えるほどしかない。それでも結構な数のアクセスが定常的に稼げてる。理由はアクセス解析のレポートを見ても明らかでGoogleやYahooといったサーチエンジンを経由して訪れる人が殆どなんだ、そりゃもう全体の9割を超えるほどに。