たまにチェックして更新する予定。
※参考 : ロボ避けとアクセス制限のための覚え書き – livedoor Wiki(ウィキ)
Google Chrome でページランクとはてなブックマークのブックマーク数を表示するのはGreasemetal を使っていたのだけれど、Greasemetal のユーザスクリプトはどうもレスポンスがもうひとつなので Firefox から乗り換えたメリットがいまいち感じられなくてすぐに使わなくなってしまった。
ページランクやはてなブックマーク数を確認したいときは稀なので、必要に応じてブックマークレットで表示するので十分。
スクリプトは以下。
javascript:(function(){var%20url=escape(location.href);var%20div=document.createElement('div');div.setAttribute('style','position:fixed;top:5px;right:5px;margin:x;padding:0;z-index:1000;');var%20a=document.createElement('a');var%20pr=document.createElement('img');pr.src='http://www.pagerankon.com/smerankcheck.php?site='+url+'&s=style2';var%20hc=document.createElement('img');hc.src='http://b.hatena.ne.jp/entry/image/'+location.href.replace(/#/,'%23');a.appendChild(hc);a.href='http://b.hatena.ne.jp/entry/'+url;a.target='_blank';div.appendChild(pr);div.appendChild(a);document.body.appendChild(div);div.ondblclick=function(){div.parentNode.removeChild(div);};})()
Google と Yahoo! JAPAN の検索エンジンで指定されたURL 配下にインデックスされているページとリンクしているページの検索結果を表示するブックマークレットを書いた。
検索エンジンの検索ボックスに『site:http://~』とか『link://http://~』などと入力して調べるのアレ。SEOのときに便利。
Google (XML) Sitemaps Generator for WordPress 3.1.2 のプラグインを有効にしたけど、そのままではちょっと不便だったので手を加えた話。
しばらく前に Yahoo! JAPAN で異常なほど日本語のドメインが上位に表示されていたことがありました。まだ名残が残っているのか、それともこれで落ち着いたのかは分かりませんが、今もその当時ほどではないにしても、それなりに効果はあるようです。
メリット、デメリットはあるもののとりあえず試してみたいと思いながらも、特に新しいドメインを取ってまで公開するようなサイトはなかったので傍観していたのですが、この前の記事にも書いた 『宅建の試験に合格するぞぉ』 を日本語サブドメインを使って公開することにしました。
宅建の試験に合格するぞぉ
http://宅建.zontheworld.com (http://xn--09s63f.zontheworld.com)
※上記のURLは移転しました。日本語のサブドメインもやめました。
日本語ドメインへの変換は、こちらを使うと便利です。
日本語JPドメインのPunycode変換・逆変換
日本語サブドメインの変更以外で気をつけた点
今回のSEOは、Yahoo! をメインのターゲットした作りにすることにしました。
旧URLへのアクセスは、301 リダイレクトで日本語サブドメインへ
.htaccess を使ってごにょごにょと。
※『.htaccess リダイレクト』 で検索すれば詳しく解説したページが出ます。
ディレクトリ構成は3階層以内で収める
感覚的に、Yahoo! は深いディレクトリはなかなか掘ってこない気がしていて、以前のディレクトリ構成はあまり深く考えずに、作りやすいようにしたらちょっと深くなってしまって、トップのディレクトリに takken/ のディレクトリを切って、そこが 『宅建の試験で合格するぞぉ』 のトップページになるので更に深くなっていました。
今回のサブドメインへの以降の理由はこの点を改善する為というのが大きな理由のひとつでもあります。
この点は修正して今現在は2階層までで、まとめています。
タイトルはページごとに変え、ページを増やす
最近の変更でどうなったかは分からないですが、Yahoo! はページのタイトルと内部リンクをそれなりに見てくれている気がします。だから、ページタイトルはそれぞれ変更しました。また、ページを増やす為に1問ずつの小テストのページを作りました。これは、前回公開した宅建の過去問をそのまま利用しているので、新規でデータをする必要がなく、たいした手間になりませんでした。
1問ずつのページを増やしたのは、実はページを増やす為ではなく、50問一気にやって解答するのは面倒でなかなかやらないので、手軽にできる小テストを作ったのですが、後から無理やり理由っぽくこじつけてみました。
なんにせよ、宅建の過去問を作ることに力を注ぐよりも、はやく宅建の試験勉強をすることに力を注がなくてはいけないのですが、なかなか集中力がつづきません。
アクセスしたページに対して、サーバサイドリダイレクトや、meta要素のrefreshを用いたページリダイレクトをオンラインで検証することができる、リダイレクト検証ツールというWebツールがあります。以下に書かれているものがそれです。
いきなり、リダイレクト検証ツールの話から入りましたが、今回は404エラーとリダイレクトの話です。
ことの始まりは、前回の宅建の試験に合格するぞぉの記事で書いた 『404エラーを返してトップページにリダイレクトするようにしている。』 の部分ですが、書かれてある通りで、header() で、『404 Not Found』 を返して、そのまま header(Location: URL) でリダイレクトしていました。
リダイレクトを正しくできていないと、検索エンジンにスパム扱いをされるとどこかで目にしたので、正常にリダイレクトされてるか、上記のツールを使って調べてみました。そしたら 『302 Found』 を返してリダイレクトしているという結果がでたのです。
で、『HTTP Status』 で検索してみると [Studying HTTP] HTTP Status Code にたどり着いたのですが、これを見た感じだと 3XX を返す時意外はリダイレクトするのはダメなのではという気がしてきました。
また、404エラーでリダイレクトするのは使いづらいというようなこと書いてる人もいました。理由は 『ブラウザのアドレスバーに直接URLを打ち込んだ時に、タイプミスでリダイレクトされたら初めから打ち直さないといけないから』 というようなことだったのですが、ごもっともです。自分はトップページにリダイレクトしたほうが、ユーザや検索エンジンにやさしいかと思っていたのですが、見当違いでした。
なので、404 エラー用のページを作って、リダイレクトするプラグインを修正して、不正なURLにアクセスした時は、404 エラーを返して、404 エラー用のページを表示するようにしました。
おかげで、Ethna の Ethna_Controller を少しだけトレースしたので、Filter、Action、View の流れが理解できてきて、スマートな構成になりました。ついでに UrlHandler の使い方も 『理解できてきたかな?』 くらいになりました。
Controller 部に関しては、メモしておかないと忘れそうなので、近いうちに書こうと思っています。
このたび宅地建物取引主任者資格試験に挑戦することになりました。
資格試験のためのお勉強は嫌いではなく、むしろ楽しかったりするのでそれほど苦ではないのですが、3日もしないうちに飽きてきました。
で、試験勉強用の過去問集を作りました。その名も 『宅建の試験に合格するぞぉ』 (なんと採点機能付)
前から興味ありつつも放置していた Ethna で作ってみました。
実は前にも、Ethna でとあるシステムを作ったのですが、色々な理由があったなかでも何よりエレガントな構成にならなかったので、公開する気になれなくて私のPCの中で眠ったままになってます。
『宅建の試験に合格するぞぉ』 を作るに当たって
今回 『宅建の試験に合格するぞぉ』 を作るに当たって決めたことは以下の通りです。
- 二日で公開できる物を作る
- デザインはこだわらない
- mod_rewrite を使って、SEOを意識したサイトを作る
- appObject を上手く活用する
- 拡張性が高くエレガントな構成にする
『宅建の試験に合格するぞぉ』 を作ってみて
実際に『宅建の試験に合格するぞぉ』 を作ってみて、結果は以下の通りです。
二日で公開できる物を作る
何とか間に合いました。7割くらいが、DBに流し込むデータ作りに時間を注ぐことになりましたが。データ作成方法をもう少し効率のいい方法を考えたほうがいいかも。Ethna とは全然関係ないことだけど。
デザインはこだわらない
見ての通りです。トップページに至っては、Ethna のデフォルトのままです。
mod_rewrite を使って、SEOを意識したサイトを作る
mod_rewrite の連携は、UrlHandler を使って、ごにょごにょやってたら何とかなった。結果オーライって感じで出来てしまったので、もう少し理解する必要がありそうです。
時間がなかったのもあって、実際に対応するアクションがなくてもトップページが表示されるようになっているので、その辺の対応も気が向いたらやろうと思う。アクションが存在してパラメータに誤りがあるものに関しては、リダイレクトするプラグインを自作して、404エラーを返してトップページにリダイレクトするようにしている。
Net_URL_Mapper を使えば簡単にできるとありましたが、どこかで PHP4 は使えないみたいなことが書かれていたので使いませんでした。もうすぐサポートも終わることだし、本気で PHP5 に乗り換えることも考えないといけない時期かも。
appObject を上手く活用する
いろいろネットを漁ってみたのですが、少々古い情報しか出てこなかったので、今のバージョンだともっとスマートな使い方があるのではと思いながらも判断することが出来ない。ただ、今のところは、appObject を上手く活用できている気がする。
拡張性が高くエレガントな構成にする
プロジェクトに影響しない Common のプラグインを作ったりもしたし、そこそこ拡張性は(今のところ)高いと思う。
今後の展望
このシステムは選択性の試験を作ろうと思えば、問題と解答をDBに流し込めばいいだけなので、色々な過去問集(採点機能付き)を作ることができます。
宅建の試験に合格したら、次は行政書士の試験に挑戦する予定なので、その頃には『行政書士の試験に合格するぞぉ』を作るかもしれません。
検索エンジン用ロボットの巡回先への推薦へのリンクをメモ代わりに張っておきたかっただけ。
毎回、Yahoo! JAPANのページから辿ることが出来なくて困るので。
ついでなので Google の方も。サイトの登録 / 削除。
Yahoo! の方はよく知らないけど、Google の方は登録しただけではクローラが来ないから、リンクされないとインデックスに追加されない。みたいな事が書かれているのを見かけることがあるけど、結局リンクされることがインデックスに追加されることの条件なら、登録する意味ってあるのだろうか?と思いながらも、おまじないのような気持ちで毎回登録してしまう。
Yahoo! も Google も、書かれている内容を読む限りでは、登録してもリンクされていないとクローラが巡回しない的なことは書かれていないのですが、どこを参照しているのでしょうか?
でも実体験として、Google の方は登録しただけでは待てど暮らせど検索にかからなかったサイトが、リンクされただけであっさり検索にかかりだした経緯ありなのです。
Yahoo!検索結果にYahoo!ブックマークの登録数が表示されるようになってます。
Yahoo!検索 スタッフブログの記事に書かれているYahoo!検索結果にブックマーク登録人数表示を開始!の内容を読む限りでは、Yahoo!の検索結果に直接的に影響があるようなニュアンスは読み取れませんでしたが、間接的なSEOの効果は考えられるので、利用するサイト運営者は増えるのではないかと思います。
Yahoo!ブックマークでは、便利ツールのブログパーツとして「Yahoo!ブックマークに登録」リンクとブックマーク人数表示リンクが用意されていて、HTMLコードをコピーして、ソースに貼り付ければいいようになっているのですが、これがXHTML1.0に準拠していないので、そのまま貼ってしまうと The W3C Markup Validation Servic でエラーが出てしまいます。
これに手を加えて使うことにしました。
「Yahoo!ブックマークに登録」リンク
Yahoo!ブックマークに登録のコードに関しては、Yahoo!ブックマークに登録と同様に<img>タグのタグを閉じる部分に/を入れておくことと、&を&に変更しておくこと。コードは下記の通りです。
<img src="http://i.yimg.jp/images/sicons/ybm16.gif" width="16" height="16" alt="Yahoo!ブックマークに登録" /> <a href="javascript:void window.open('http://bookmarks.yahoo.co.jp/bookmarklet/showpopup?t='+encodeURIComponent(document.title)+'&u='+encodeURIComponent(window.location.href)+'&opener=bm&ei=UTF-8','popup','width=550px,height=480px,status=1,location=0,resizable=1,scrollbars=0,left=100,top=50',0);">Yahoo!ブックマークに登録</a>
ブックマーク人数表示リンク
ブックマーク人数表示のコードに関しては、<img>タグのタグを閉じる部分に/を入れておくことと、もうひとつが厄介で、リンク先と人数を表示するところまでが可変で、「人が登録」までが固定なので、<a>と人数までをJavaScriptで読み込んで、後の部分をそのまま記述していて、XHTML上では、</a>が突然出現して、<a>がない状態になっています。「人が登録</a>」の部分まで読み込んでくれるようにしてくれてもいいと思うのですが。それだけのデータ送信量すら節約したいのでしょうか?まぁ、利用者が半端な数じゃなさそうなので、膨大な量になりそうですけど。
良い対処方法が思い浮かばず、仕方がないので自分で「人が登録</a>」を読み込むJavaScriptを用意しました。
jsファイルに以下のコードを記述してください。
document.write('人が登録</a>');
上記のjsファイルをサーバの任意の場所に設置して、下記のコードを貼り付ければOKです。
<img src="http://i.yimg.jp/images/ybm/icons/view_url.gif" width="16" height="16" alt="Yahoo!ブックマークでこのサイトを登録している人数" /> <script type="text/javascript" src="http://num.bookmarks.yahoo.co.jp/ybmno.php"></script><script type="text/javascript" src="jsファイルのパス"></script>
Yahoo!に限らず、ブログパーツ等で用意されているコードはXHTMLに準拠していないものが多いので困ります。
HTMLの方が需要は多いかもしれないけど、W3Cに準拠してるかどうか気にしている人はXHTMLでコーディングしている人の方が多いと思うので、XHTMLにあわせて提供したほうがいいと思うのですが。
XHMTL valid でなくなるので、(Yahoo!に限らず)ブログパーツやAPIを使うのをやめたという人って結構多いと思うのですがどうですか?
ブログ等でよく
で、はてなユーザのソーシャルブックマークでリンクされた数を表示しているのを見かけますが、これを表示する意味のひとつにSEO的な側面もあるみたいなので、表示できるようにしてみました。
SEO的な話は、今日のSEO:はてなブックマークの活用は有効なSEOだのブログ記事なんですが、そこにこのように書かれていました。
※3人以上のはてなユーザーからブックマークされると、注目エントリーに掲載される。
で、この注目エントリーの Google PageRank が2なので、そこからバックリンクがもらえるとSEOの効果があるよ。ということらしいです。そういう一面もあったんですね。もちろんそれだけの理由で表示してるわけではないでしょうけど。
それほどブックマークされなくても、こちらからリンクをはれば、はてなからバックリンクをもらえるしくみになっているのならそこそこSEOの意味はあるだろうし、誰がブックマークしたかも簡単にチェックできるといった便利さもあるので、表示するようにカスタマイズしてみました。
wp-hatena プラグインをカスタマイズしてみる
このブログのテーマのひとつでもある『あるものは使う』の精神にのっとって、WordPress エントリをはてなブックマークに登録 – wp-hatena プラグイン正式版 – リリースで配布されている wp-hatena をカスタマイズしてみました。(正確にはWordPress Plugins/JSeries ≫ wp-hatenaで配布しているのでしょうか?)
上記リンク先からファイルをダウンロードして解凍するとwp-hatena.phpがあるので、そのなかの適当な場所に、以下のコード二つを追加してください。
(2007/04/24現在、wp-hatena-0.93j.zipです)
/**
* WP interface.
*
* @param none
* @return none (はてなブックマーク用の被リンク数を echo)
*/
function entryHatena()
{
echo
$this->entryBookmarkURL(
'はてなブックマーク',
'http://b.hatena.ne.jp/entry/',
'http://b.hatena.ne.jp/entry/image/'
);
}
/**
* Bookmark URL entry.
*
* @param $sitename (サイト名称文字列)
* @param $linkurl (リンク先URL)
* @param $iconfile (画像ファイル URL)
* @return $tag (画像リンクタグ)
*/
function entryBookmarkURL($sitename, $linkurl, $iconfile)
{
$title = $this->utf8_encode(get_the_title());
$tag = '<a';
$tag .= ' href="' . $linkurl . get_permalink() . '"';
$tag .= '>';
$tag .= '<img';
$tag .= ' src="' . $iconfile . get_permalink() . '"';
$tag .= ' alt="' . $title . 'の' . $sitename . '被リンク数"';
$tag .= ' title="' . $title . 'の' . $sitename . '被リンク数"';
$tag .= ' style="border: 0;margin: 0;padding: 0;vertical-align: baseline;" ';
$tag .= '/>';
$tag .= '</a>';
return $tag;
}
あとは、テーマの表示したいところに以下のコードを追加すれば表示されます。
<?php if(isset($wph)) $wph->entryHatena(); ?>
ちなみに、このブログのバージョンは、2.1.3で動いていますが、2.0.X でも動くと思います。採用するかどうかは自己責任でお願いします。
で、このブログをブックマークしてくれている人がいないので現状表示されていません。(2007/04/24現在)
テストのために自分でブックマークして確認はしたのですが消しました。
誰か、ブックマークしてください。(反映されるのにちょっと時間がかかります。)
おまけで、del.icio.us と livedoorクリップ・ソーシャルブックマークも作ったのですが、どれくらい需要はあるんでしょう?
ファイルをそのままダウンロードできるようにしたいところですが、こういうのを公開したことがないので、ライセンスとかその辺のルールがいまいち分からないし、作者のhiromasa.zone
) さん の許可もないので回りくどくて申し訳ないです。正直、ブログにソースコード書くのは面倒です。何か楽な方法はないでしょうか。
その後
で、カスタマイズした後にブックマークの登録件数を取得して、1件以上なら表示できるようにしようと思って、APIとかないか調べていたら、[WP:Plugin] 被ブックマーク数表示+ランキング生成プラグインという素敵なプラグインがありました。ショック。。
でも、自分がカスタマイズしたものに愛着が沸いたというか、懲りずに被ブックマーク数表示+ランキング生成プラグインを参考に、wp-hatenaを自分好みにカスタマイズしたんですけど、それはまた次の機会に。

