追追記:このエントリ、いつのまにか元記事よりも多くSBMされてるみたいだけどそんなに読む価値あるのかしら…。
どっちにしろたくさんアクセスされているようなので、すかさずアフィリエイトを貼っておこう。さあ、キミたち買うんだ。
Japan.internet.com Webビジネス - SEO のキホン―なぜ論理構造が必要なのか
http://japan.internet.com/busnews/20070402/6.html
てなことをあやしげSEO系マーケターが書いてるわけだが。
こういう神話が一人歩きしている状態がイヤだ。いくぶん極論ではあるが、これが「間違っている」ということをネット辺境のきわみであるこのページに、せめてメモっておこう。
ほとんどの場合、クローラにとってHTMLごときの論理マークアップなんてクソの役にも立たない!
…だって作ってる本人が最初にタグを削除してるって言ってんだから、役に立つわけないじゃん。
フィードリーダや特殊なスパイダーでもない限り、細かい論理マークアップを見たりなんかしないよ。フィードリーダは埋め込まれているフィード情報をチェックするからしかたない。特殊なスパイダーというのは、特定ページを頻繁にチェックして更新差分をとるとか、そういうやつ。
※以下「クローラ」という単語は、Webページを取得するだけでなく、その内容を解析してなんらかの役に立てるプログラムとして使っている
だってね、ちょっと考えてほしいのよ。
論理マークアップが役に立つとするなら、たとえば
・hタグが後続パラグラフの意味ダイジェストになっている
というような状況だろう。
しかし、その状況が「100%」でない限り、クローラはそれを前提として動作することはできないんだよ。逆に、採用状況が50%以下なら、それを前提として動作することがノイズになってしまい、期待している成果を得られなくなってしまう。だとしたらはじめからタグを無視することを前提とした解析手法をとったほうが効率的だ。hタグ→後続タグ、のような構造を分析して、単語の重み付けをするシステムつくるのってけっこう大変だよ?
さらに、
「人間の生成する文章というのは論理的ではない」
というのも重要なポイントだ。一般論として、人間は大量の非文(文章になっていない文)を平気で量産する。文法的に成立していても「黒は白だ」というように、意味がない文章は日常的に生まれている。だが、それを「論理的でない」と言って捨てることはできない。自然言語処理のお父さんである言語学というのは「現象」としての言語を分析する科学であって、論理的でないからといって現象を排除したら科学ではなくなってしまう。
端的に言うと、直前にあるhタグがパラグラフの意味ダイジェストになっていない「非論理的」なケースが大量にあって、クローラはそれを正常に評価できなくてはいけないということだ。
手近な本を拾って目次をチェックしてほしいのだが、セクションタイトルが各セクションの内容を端的に表しているなどという事例は、実は世の中の文章のごく一部に過ぎない。多くは文学的に表徴しているだけで、非常に論理性を欠いたタイトルになっているはずだ。
じゃあさ、hタグに依存して文章を解析するのって、
「コストが高いわりに見合わない」
ということになりませんか? 実際見合わないんだよ。
HTML文書で、本当にクローラにとって役に立つものって、
・title情報
・metaタグの情報
ぐらいなんだよ。だから、多くの場合、クローラはこれらの情報を取得したあとはHTMLのタグをバッサリと切って捨ててしまう。「タグの意味を拾ってる」と主張するなら「ホワイトスペースにも意味がある」と主張されてもいいはずだが、ホワイトスペースもばっさり切り捨て。どうにかして「本文はどこらへんかなー」とタグを頼りに探索することもあるけど、それって間違えると本文が全部消し飛んじゃうのでやらないほうが無難。
タグベースでHTML文書を解析するのって、ほとんど生成文法論みたいなもんで、実用的には役に立たないって。いくら文章の構造をカッコよく解析しても、機械翻訳の精度は上がらないし、意味解析もできない。
代わりにどうするかというと、けっきょくヒューリスティクスと統計的手法に頼るしかない。日本語では形態素解析だけは不可欠なのでそれはやるとしても、あとはクラスタリングとかTF/IDFとかそういう方法を取る。
「うそー?」
と言われても、現実問題、実際に世の中で動いているWebサービスのほとんどがそれなんだからしょうがないじゃん!
そういう状況下で
「論理マークアップ!」
とか叫んでも無意味。CSSベースだろうが、TABLEベースだろうが、HTMLがどう書かれていてもクローラは差別せずに解析しているよ。逆に言うと、TABLEベースのページがたくさんあるのに、差別して解析してたら実用にならないじゃんよ。まあ、天才の作ってるクローラは別だろうけどね…多くの凡才が作っているものはそんなもんだって。
むしろ言わせてもらうなら、最近多い
「CSSとかJavaScriptはどんなブラウザも対応してて当然」
とか思いこんで書かれているページのほうがSEO上は有害だと思う。90年代くらいの常識にのっとって、
・スタイル、JavaScriptは、
非対応ブラウザに配慮してコメントアウトする
ようにしててくれているサイトのほうが有利。だってねえ…タグ削除するとき、HTMLコメントアウト部分だけ削除してればオッケーかと思ってると、最近はちゃんとスクリプトをコメントアウトしてないところが多くてノイズが増えちゃって困るのよ。これって解析上はポイントダウンよ?
頼むから、論理構造がSEO上有利なんて科学的根拠のない風説を広めるのはもうやめてください。実際のクローラの動作を知らないで主張しているのがモロバレです。
そもそもね、
「HTMLは論理マークアップ言語だ」
って主張してる人は、ちょっとモノ考えなさすぎだよ。あれのどこが論理マークアップ可能な高等言語なんだよ。
いちばんバカげていると思うのは、ここで俎上にあがっているようなhタグだ。
h1
h2
h3
:
といくつもありますが…なぜ「タグ名にレベルの数が含まれている」の? この時点でHTMLは
「論理マークアップ言語としては致命的な欠陥を含有している言語」
と察知できて当然だと思うんだけどどうよ?
たとえば「h2タグが先行するパラグラフ」があったとするじゃない? そのパラグラフをそのまま別の位置にある「h3タグが先行するセクション」の配下に移したとする。そうするとなんと、内容を人間が判断してh2をh4に書き換えたりとかしないといけない(機械的には操作不可)。なんじゃそりゃ。childHeadingとかchildSectionとかいうタグがあって、それで階層構造を記述してるんだったら論理マークアップしてるって認めるけど、こんなの機能不足だろ。つーかそもそも、hタグがそれ以降のどこまでを配下セクションとして扱うのかを明示してないじゃん? わけわからん。名前が「heading」って時点で視覚的情報を反映した命名だしさ(digestOfThisSectionとかにしろ)。
個人的には、
・W3C原理主義者
・SEO業者
には、「HTMLは欠陥言語です」というあたりから現実を認識してほしいもんだ。
追記:
あとアレね。
この話はクローラだけじゃなくて、スクリーンリーダとかにも通用することだからね。「Web標準を守らないのは障害者差別」とか、実際にスクリーンリーダ常用してから言えっての。都合のいいときだけ障害者を錦の御旗として引っ張り出してこられるのは、障害当事者として非常に迷惑。

