栃木,Web,WordPress,スマートフォン,野球,ラグビーなど
なぜWebサイトのURLに”#!”を付けるのか?クローラーはインデックス可能なのか?について。
まず、”#!”の呼び方から。
「シャープエクスクラメーション」とか呼ぶのかと思ってたら、
「hash=#」「bang=!」の略で、「shebang=シバン」っつーらしいんです。
シバンがURLに付いてるサイトで、最も有名どころで言うと、Twitter。
Gmailなんかもそうですかね。
https://twitter.com/#!/i/connect 然り、https://twitter.com/#!/i/discover も然り。
lifehackerやfacebookも、今は違うけど昔はどうやら付いていたらしい。
”#”と”!”をわけて考えると、
・”#”は、Ajaxアプリケーションとして、画面遷移ではなくページ内遷移をするため。
・”!”は、”#”とセットにして、Googleクローラーにクロール可能なAjaxアプリと認識させるため。(※注1)
Ajaxアプリケーションなので、
・Javascriptによりクライアント(ブラウザ)上での動作が主で、サーバー負荷が軽減される
・特にサーバー側の機能を必要としない
・Javascriptで画面を書き換えるので動作が速い
といった、良いことはあるけれど、
・GoogleBot以外のクローラーが、クローリングできない。(※注1)
・ページ自体がコンテンツ扱いでないため、アクセス解析がし難くなる。
・サーバーサイドプログラムと比較すると、ブラウザ間で挙動の差異が出てしまう確率が高くなる
といった、良くないこともある。
(※注1)
また、SEO的には、”#!”を付ければGoogleBotが勝手にクローリングしてくれる訳ではありません。
GoogleBotは、”#!”形式のURLを見つけると、まず、
URLを”_escaped_fragment_”に変換した上で、サーバーにコンテンツをリクエスト。
たとえば、
ohsexybaby.com/#!web/843/ だったら、
ohsexybaby.com?_escaped_fragment_=web/843/ って感じでリクエストがきます。
そしたら、サーバーサイドでは、クローラーからのアクセスと判別し、該当コンテンツのHTMLスナップショットを作成して、クローラーに返すように実装する必要があります。
HTMLを受け取ったクローラーは、HTMLを解析し、もとのURL(ohsexybaby.com/#!web/843/)に戻したうえで、インデックスを格納してくれる、という仕組み。
Googleとしては、「Googlebot がよりブラウザに近い動作をするよう対応を続けています。」と仰ってるけど、クローラーがJavascriptをぴょんぴょん実行するのはまだ先なんでしょーか。
印刷 | この記事は ohsexybaby によって 2012/01/25 11:38 PM に投稿されました, Web 以下に保存されています。 RSS 2.0 を通してコメントをフォローする。 コメントを残すか、ご自分のサイトからトラックバックできます。 |