空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の疑問、引き続き解決法を募集中です。詳しくは上のリンクから。
jQueryの質問をしたくて
こんな時こそはてなグループ!と思ってjQueryのグループを探してみたら、jQueryどころかJavaScriptのグループすら無かった!
まあ、このエントリを見て、答えられる方は答えてほしいのだが…
はてなブログでは、エディタでのレイアウト上の改行が勝手に半角スペース入りのp要素に変換されてしまうよね。これを、クライアントサイドのスクリプトで取り除きたい。それで書いたのが以下のコード。
$("p:contains(' ')").each(function(){ if($(this).text == " "){ $(this).remove(); } });
だけど、これでは取り除かれない(勿論、jQuery.readyの中で呼び出していますよ)。どうしよう、今ココ。
今週の☆お題の残響効果って
今週の☆お題という文言をつけたエントリを書けば、はてなブログの公式まとめページに掲載される(何故今週の☆お題と書いているかはまあ察して下さい)。お題の受け付けが終了した後、大体「ふりかえり」が出たタイミングからアクセス解析におけるはてなブログからの数字が増加するのだけれど、これ、案外後々になっても当該エントリのアクセス数に影響するみたい。で、気付くと当該エントリがアクセス数トップに立っていたりする。
つまり、ユーザの使い方として、過去のお題を掘り返してめぼしいエントリがないかと探すという行為があるということだよね。これは想定外。みんな終わったお題については無関心なのかと思っていた。
あるいは、過去のお題のまとめページ自体にSEO的強さがあり、キーワード検索で飛んでくる人のランディングページとしての役割を果たしているということ。これは言うなれば、アーカイブページがSEO的に弱いはてなブログの、欠点を補っているということだ。
倫理的に問題あるだろうけど、投稿する全エントリに今週の☆お題指定をしても良いくらいだ。
パンダアップデート!
Googleが新バージョンのパンダアップデートを行っているそう。海外SEO情報ブログ経由の情報で、元ソースはSearch Engine Landとのこと。
元ソースの筆者であるBarry Schwartzがパンダアップデートの兆候を察知し、Googleに確認したそう。Google曰く、今回のアップデートはデータのアップデートでなくアルゴリズム自体の変更で、パンダにより不当に"黒"と判断されていたサイトの救済になるとのことですって。
パンダアップデートって何?
今更説明するまでもないだろうけど、パンダアップデートというのはGoogleの検索順位決定のためのアルゴリズムアップデートの内の一つで、ペンギンアップデートと並んで、WEBサイトが品質の低いサイトやスパムサイトではないか"白黒"はっきりつけるアップデート。ペンギンアップデートが仕込みリンク等の不正な外部施策に"黒"の烙印を押すのに対して、パンダアップデートはコピーコンテンツに"黒"を突きつける。
今回のアップデートの変更点
今回のパンダで、パンダの黒い部分の面積が狭くなったようだ。パンダアップデート以降のSEO情勢は、それまでのWordPress最高!重複コンテンツはアクセスアップの一手段!な状況から、一気にWEBサイトの設計に神経を使わなければ行けない状況に変わった。なにしろ、WordPressでカテゴリーページや月別アーカイブを有効にしているだけで、パンダに"黒"と判定される危険性があったわけだ。パンダアップデート以降更新意欲を失ったサイト運営者も多いと思う。
今回のアップデートの影響
今回のアップデートは時間をかけて有効化されていくそうなので、影響について測るのはまだ早いかもしれない。特にWordPressサイトの回復に期待したいところだけど(ここしばらくホットエントリが死ぬ現象があった)、確かにアクセス数が以前の水準に戻っているような気がする。ただ、アクセスの鈍化に対して個人的に対策も打った結果であるので、アルゴリズム変更の効果なのかは不明。
はてなブログには、これを受けてアーカイブページやカテゴリーページなどを、記事全文を表示するタイプに変えてほしいね。
SEO:サイドバーに人気記事一覧(という建前)をつける
このブログのサイドバー部分に、人気記事一覧というセクションを作った。まあ、クロールバジェットだの内部リンクだのなんとか言っていたことの証明になればという思いがあり、実験結果を見るのが主な目的なので、人気記事とは名ばかりだ(笑)
一番上の、SEO関連の学習で、最近参考にすることがあったサイトというリンクは、リンク中にSEOが入っているそこそこの人気記事ということで入れた。Matt Cuttsアナウンス…とクロールバジェット…については、ただ単にそのキーワードを推す方法として試してみたというところ。この2キーワードは、Matt Cuttsが検索結果100位以内に入った事が何回かある程度、クロールバジェットは大体いつも5、6位くらいで表示されている。
実験結果が出て満足したら、本当の人気記事をつけようかなとも思っている。多分相模原関係が多くなるかな。
SEO:はてなブログのサイドバーに、ランダム記事表示オプションが欲しいところ
最近このブログのレイアウトを弄る事が多かったが、その結果アクセス数、検索結果表示数ともに少し上向いている。実数としては微々たるものであるが、とにかくはてなブログ外部からのアクセス割合が少ないと言われるはてなブログにおいて、検索経由のアクセスを増やす方法を実践できたということで、多少心も晴れた。
具体的にどの施策が有効だったのかというと、一番貢献率が高いのはおそらくサイドバーの過去記事リンク表示数を増やした事だろう。アクセス流入の内訳を見ても、最近の記事に偏ってアクセスが来ている。外部施策の無いこのブログにクローラがやってくる経路は、新規投稿時にはてなブログのトップページからリンクを貼られるところのみであろうから、単体記事のページに存在する内部リンクが次に恩恵を受ける。したがって、サイドバーにリンクとして置いている最近の投稿の順位が上がるのだろう。
逆に言うのなら、こういった仕組みでは過去記事のクロールはされず、ロングテールが狙えない。そこで、サイドバーにわざとランダムリンクを表示して満遍なくクローリングがされる仕組みが欲しいのだが、まあ公式で用意してくれる事は期待できないか。
手動でサイドに特定記事のリンクを貼って、ホットエントリをわざと作り直すのも良いかもしれない。なるほど、こういう時のために、○月の人気記事のようなエントリを作っておいて、サイドバーなど確実にクロールされる所にリンクを置けば良いのか。むしろきちんとそういうまとめエントリを作った場合、サイドバーリンクから月別記事へのリンクは取り外せる。