Blogの本文が検索されない原因を探ってみた(前編)

Google検索を利用していて自分のBlogが検索結果に出てきたとき、あることに気がつきました。最近投稿したエントリが結果に出てきたとき、以前投稿したものと明らかに表示のされ方が違うのです。実は前から薄々と何か変わったではないかと思っていたのですが、あくまで一時的なものだろうとあまり気にとめていませんでした。

しかし、それが元に戻ることはありませんでした。私の文章の書き方が変わったわけではありませんし、Googleのアルゴリズムがそんなに急に変わるとも考えられません。(それに変わったならそれなりに話題になっているでしょう。)

となると、残った考えられる原因は……。

検索結果に出てくる「本文要約」って重要ですよ

「具体的にどう変わったのか」については、とりあえずこれを見ていただいた方が早いかと思います。

・以前の表示のされ方
旧テンプレート時代の検索結果

・現在の表示のされ方
新テンプレートの検索結果


一目瞭然という感じですが、要するに検索結果に本文の内容がまったく出てこなくなっています。

代わりに出てきているのが「Blog自体の説明文」で、これでは検索先のページに何が書いてあるのかさっぱりわかりません。トップページがこの検索結果なら別に何の問題もないと思いますが、個別のページの検索結果としては適切とはいえないでしょう。私自身が検索を利用した場合でも、中身の文章が抜粋されている方が嬉しいですし、その検索結果に飛んでみようと思う確率はあがります。古いエントリの検索結果の方が検索利用者にとっては便利でしょうし、Blogの運営者自身である私にとっても望ましい状態です。

なぜこのような状態になってしまったのでしょうか?

テンプレートの思わぬ落とし穴……?

結論から書いてしまえば、これはテンプレートを変更したため起こった現象でしょう。

当たり前ですが、Blogの記事はテンプレートのHTMLによって書き出されます。以前の記事は旧テンプレートを使っている状態でインデックスされたため、テンプレートを替えても情報が更新されていないのだと思われます。(ちなみに旧テンプレートはFC2の公式テンプレートの「monotone」、現在のものは上記のリンク先を参照。)

しかし、新テンプレートになってから書いた記事は、前とは違うHTML構造で出力されているため、最初からそれがインデックスされます。つまり、新しいテンプレートでエントリを投稿し続ける限り、この状態は多分解決されないでしょう。

新旧テンプレートのHTMLソースとCSSをチェックし、具体的にどこが違っているか調べてみました。作者も制作時期もまったく違うため同じところ方がむしろ少ないのですが、素人目に見て関係がありそうなのは以下の二つではないかと推察しました。
  • <meta>タグのdescription(概要説明)が各ページに設定されているか否か
  • <h>タグ(見出しタグ)の使い方が違う

それでは個別に見ていきましょう。

悩ましいdescription(概要・要約)

まず真っ先に怪しいと考えたのがこれです。というのも、検索結果の下に出ている文章は先ほど書いたとおり「Blog自体の説明文」であり、これはすべてのページにmetaタグのdescriptionとして出力されています。旧テンプレートにはdescriptionを設定しているmetaタグ自体が存在せず、私が自分で書き込んだ出力元がユーザータグのmetaタグkeywords(キーワード)しかなかったのです。

つまり、文法的には概要がきちんと存在する新テンプレートの方が正しいはずなのに、概要なんか最初から存在しない旧テンプレートの方が、検索結果としては望ましいものになっているのです。

調べたところ、どうもGoogleを含めていくつかの検索エンジンは、きちんとdescriptionを考慮して検索結果を出力しているようです。

ホームページ作成ビギナーズガイド
metaタグdescriptionについて

検索結果に表示される、ホームページ内容の要約(スニペット)にmetaタグdescriptionが表示されることがありますので、検索結果を見た人に内容が伝わるように書きましょう。

ではdescriptionが設定されていない場合はどうなるかというと、やはり旧テンプレートの検索結果と同じようになると考えるのが自然でしょう。あまり適切でない文章を設定するよりも、むしろ概要が存在しない方が検索エンジンを使う場合に便利になることがあるということですね。

私の他にも同じ結論に達した方がいます。

F.Ko-Jiの「一秒後は未来」
metaタグのdescriptionは下手に設定しないほうがよい

descriptionが設定されていると、Googleの検索結果にはdescriptionに設定した文章が表示される。たとえそこに検索キーワードが含まれていなくても。一方、descriptionが設定されていないページの場合、Googleの検索結果には自動的にキーワード周囲の文章が表示される。

やはりこれは私のBlog固有の問題ではなく、(とりあえずGoogleは)そのページ自体の概要ではないdescriptionは意味がないどころか、むしろ逆効果になると考えて良さそうです。

それでは結局のところ、私が今使っているこのテンプレートが問題なのでしょうか?

君は悪くない じゃあ誰が悪いのだろう?

いえ、別にそんなことはありません。Blog自体の説明をすべてのページにdescriptionとして書き出すのは別に珍しいことではなく、テンプレートしては一般的なようです。

例えば超有名人気BlogであるIDEA*IDEAホームページを作る人のネタ帳でも同じように、すべてのページに「Blogの説明」が概要としてタグに書かれています。そして私のような素人ならともかく、「本職」の方がそんな初歩的なミスをするでしょうか?

実際問題として上記のBlogが検索結果に出てきた場合、私がイントロダクションで書いたような珍妙な検索結果にはなっていません。もちろん根本的なGoogleのランク付けの差やPV数など、検索結果が異なる原因は無限にありそうですが、何となく私が今使ってるテンプレートとの構造的なHTMLの差もあるように思えました。これは後ほどまた。

トップページ以外の概要をどう扱うべきか

とりあえず、現状のすべてのページにBlogの説明がdescriptionとして入ってる状態を何とかしましょう。この対応自体は非常に簡単です。トップページにあの文章が出る場合には困らないのですから、トップページにだけ出るようにすればいいのです。

具体的にはFC2Blogの変数である<!--index_area-->を使います。
<!--index_area-->
<meta name="description" content="<%introduction>" />
<!--/index_area-->
これでトップページ以外にはdescriptionが設定されず、旧テンプレートと同じ挙動になりました。

これで問題ない、良かった……と思っていたのですが、本当にdescriptionが不要なのかと気になる部分もあります。色々探し回っていると、なにやら便利そうな変数がFC2にはあるじゃないですか。

FC2ブログstyle
%topentry_discription-FC2ブログ変数解説

そのエントリーの要約文が200文字で表示される。使い道は不明。この変数を使用しているテンプレートも不明。あれば教えて頂きたいです。

最初見たときにはこれは使える!と思ったのですが、よく考えると弱点も。200文字というのがdescriptionには長すぎる感じがしますし、「要約」といっても最初の200文字をただ抜き出すだけです。(何かの処理をしてるわけではない、普通の変数ですからね。)

結構考えたのですが、まあmetaタグが空よりはいいかもしれないと考え導入してみることに。前にユーザータグをキーワードにしたのと同じような手順で、結構簡単にdescriptionとして使うことができます。
<!--permanent_area-->
<meta name="description" content="<!--topentry--><%topentry_discription><!--/topentry-->" />
<!--/permanent_area-->
これで個別のエントリがクロールされた場合、先頭の200文字が概要・要約として使われるはずです。

実際の効果は……しばらく時間が経ってみないとわからないでしょう。乞うご期待、ということになるんでしょうか?

というところで長くなりすぎたので、<h>タグを含む話は後編で。