よく■というタイトルのエントリを見るが
新着エントリーなどに、"■"というタイトルのエントリーが並んでいることが多い。比較的それについては疑問に思っていて、もしや"■"というタイトルにすることがクリック率を上げるための最適化であったりとか、リンクテキストの最適化にあたるか、とにかく私の知らないSEOノウハウに基づいたタイトルの作り方であるのだと思い、研究の必要があると感じていた。
先程気付いたのだけれど、これはただ単にタイトルを入れないでエントリを上げたときに自動的に挿入されるテキストだったんだね。つまり、タイトルをつける習慣の無いユーザのブログには、"■"というエントリがいくつも並ぶことになる。
SEO的視点から見ると、タイトルを付けない投稿というのは非常にもったいない。タイトルにはなるべく本文と関連のあるキーワードを入れるようにした方が、検索エンジンで上位に表示され易く、訪問者も多くなる。というのがSEOの基本。
それでも、"■"というタイトルが何かの最適化のように見えたのは、はてなブログのトップページからのリンクテキストがエントリ名とブログ名両方を含んだ冗長なものになるから、というはてなブログ特有の事情があったため。本当に最適化効果があるのかどうかは不明。相模原のSEOについてのエントリを書いて、タイトルをつけずに投稿したものがトップヒットになるかどうかで調べてみた方が良いかな。
ここ数日、はてなのPVの数字が多めに出ているような
空pタグ削除のjQueryスクリプトを書いた結果、訪問者数も増え好感触!等と書いていたけれど、はてなブログの管理画面ベースの数字でそう見えただけで、Google Analyticsで調べるとそれほどのアップではなかった。というか、実験的に作成して1記事しか投稿していないはてなブログの方にも、実際以上のPV数の表示がされていたので、これらのことから推察するに、はてなブログのPV数表示の仕様が変わっただけではないか、と思っている。
管理画面でのPV数を実際より多めに表示するというのは、ブログサービスではやっているのではないかと思われる所が多い。芸能人ブログで有名な某サービスや、管理者が管理画面にアクセスした数もカウントしてしまう某サービス(そりゃ、コンスタントに一日数十ヒットになりますって!)。
PV数の水増しをすると、利用者がそのブログサービスは数字が取れるという印象を抱き、囲い込みが出来やすい。そのためサービス運営上の至上命題としてPVを多めに表示しているのだと思う。そして大抵そういうサービスはAnalyticsが導入できない(水増しがバレるため)。
はてなブログがそういった先行サービスに倣い始めたのかどうかはわからない。しかし、Analyticsが導入できてしまうのであれば、そんな嘘は簡単にバレてしまう。そこで、ユーザにAnalyticsを導入されないよう、穴を塞がなくてはならない。そういう方向性に進んでいくサービスは、果たして魅力的であり続けるだろうかね。
「はてなブログがPV数水増しをし始めた」という、真であると断言する根拠に乏しい命題から話が始まっているので、事実そうでないのなら、このエントリの内容は全く的外れにあたる。ということなのだけどね。
はてなキーワード殺しのjQueryスクリプトも改良できるかな?
軽量化、効率化がマイブーム!デザイン編集のヘッダ→タイトル下にjQueryスクリプトを書いて、空pタグを除去するスクリプトを書いたけど、もうひとつのスクリプト、はてなキーワード殺しについてもより徹底的に行おうかと考える。
現在ははてなキーワード、つまりclass="keyword"のついているa要素のrel属性をremoveAttrで除去しているけど、これをjQueryのunwrapを使うことで、aタグ自体を除去してしまおうという方向性で考えている。
はてなキーワード殺しを作った時点では、unwrapというメソッドを思い出せなかった。けれども本当にセマンティックなソースを目指すなら、rel属性が指定されていないaタグはいらないよね。
すぐに取りかかる…というには、まだ選考実験のpタグ除去の結果が出ていない。検索表示回数、アクセス数ともに好感触ではあるけどね。
改行が半角スペース入りp要素になるのは、Tiny MCEを採用したサービスのあるあるかな
はてなブログは高機能で凄い!けど、勿論いの一からはてなのスタッフが作っているわけではない。それは、トップページにBootstrap仕様の痕跡があるという事からもわかる。
はてなブログのエディタとして使われているのは、Tiny MCEという定番のHTMLエディタと、AceというJavaScriptエディタであると思われる。このうちTiny MCEというエディタは改行について、デフォルトではpタグを使うようだ。設定次第では切る事が出来るのだが、はてなブログはそのままにしている。
ブログサービスの多くが、pタグ改行の設定をそのまま有効にしているが、それはHTMLがよくわからない利用者がレイアウトのための改行としてbrタグを連続して入力してしまうことになるのを避けているのだろう。brタグの連続は、空白スペースのみ(ということは、少なくとも一つの内包するテキストが入っている)のpよりHTML文法上の罪が重い。
ただ、HTML的な間違いを避けるための配慮が、逆にSEO的にはよろしくない空pを発生させてしまっている。まあ、この辺は仕方が無いというべきか。でも、HTMLエディタでユーザがbrタグを入れた箇所まで整形して空pにするのはやり過ぎだと思う。初期の頃、この仕様とずっと戦って時間を無駄にしてしまったよ。
Tiny MCEについては、面白そうなので自分が担当したWEBサイトでも導入してみようかと思っている。その場合は、やはりpタグ改行を有効にせざるを得ないのかな。
昨日から続き。空p削除を改良。
昨日完成した空p削除のクライアントスクリプト、今日は多少軽量化。といっても、ページ中の全p要素をさらっていた部分を、class="entry-content"がつく本文部分のpに限定しただけだけど。相変わらず、重いスクリプトかもしれない。
$(".entry-content p").each(function(){ if(encodeURI($(this).text()) == "%C2%A0"){ $(this).remove(); } });
加えて、改行スペース確保用の半角スペースpがいなくなって窮屈になった部分は、p要素のデフォルトの上下marginを20pxにすることによって解決。どうせ文章は全部p要素にくるんで書いてあるので、特に表示に不都合な部分もない。
まあ、はてなのp改行が大嫌いだ!という方は参考にしてみて下さい。はてなキーワードの自動リンクが大嫌いだ!という方はこちらを参照。
空p削除、暫定的に解決?
はてなブログの改行に使われる空p要素を取り除くクライアントサイドのスクリプトを考え、結果成功した。これまでの苦闘の歴史はこちらとこちらから。
で、最終的にたどり着いたスクリプトがこれ。
$("p").each(function(){ if(encodeURI($(this).text()) == "%C2%A0"){ $(this).remove(); } });
見てわかるとおり、本当に本当に重い処理になっている。全p要素をさらって、さらにp要素中のテキストをエンコードして、もしユニコード半角スペースと一致したらそのp要素を削除している。
こんな重い処理にせざるを得ないのは、ひとえに改行pの中に入っている半角スペースが普通の半角スペースでないため。素直に.text() == " "とやるだけでは、抽出できない。そこで一旦エンコードをしているわけだ。
今後軽くできるとしたら、前半部のp要素全部をさらっている部分を変えるか、エンコード部分を別の方法で考えるか。
こんなことやっても、クライアントサイドのJavaScriptは全くSEOに影響ないよ、と思う方は、こちらのエントリをどうぞ。ただし、あまりに重いスクリプトに関してSEOに影響が出ないという点については完全同意しますよ。だから改良予定。
jQueryの:containsの使い方が間違っていた
昨日より試みている、jQueryを使ったクライアントサイドスクリプトでのはてなブログの空p改行削除。昨日考えついた方法は、jQueryセレクタの:containsを使ってp要素中の半角スペースをサーチするという方法だったけど、そもそも:containsの検索機能について勘違いしていた。
:containsは、要素に内包されるテキストの検索ではなく、直に要素タグ中の検索をする。つまりp:contains(" ")のようにすれば、複数クラスを指定している要素(class="class1 class2")などが取れるが、本文中に半角スペースを使っている要素は取得できない。うん、困った。
昨日からのjQueryの疑問、引き続き解決法を募集中です。詳しくは上のリンクから。