トラシスラボ 技術ブログでタグ「SEO」が付けられているもの

javaでping送信

|

概要

web サイトを更新した時に、Google などの検索サイトに ping 送信を行うことにより、より早く検索結果に反映してもらえる。
Google だと 5~10分くらい?結構早い。

MovableType や MTOS などの CMS を利用していれば、記事掲載時に自動的に ping を送信してくれるが、CMS を使わずに作成したサイトの場合、自分で ping 送信を行う必要がある。

SEO対策を考えるなら、是非自分たちが作成したサイトも ping で更新通知を行いたい。
そこで、Java から ping 送信するプログラムについて調査した。

仕組みの概要

XML-RPC§更新Pingの送信 by isnot.jp が非常に分かりやすい。

どうやら、単に ping 送信を送れば OK という訳ではないらしい。
ping 送信は次の手順で行うことになる。

1. 更新データを含む rss ファイルを作成し、web サイト上に置く

rss ファイルの書き方は、いろんな web サイトの rss を参考にする。
そして、html で次のように記述する。

2. ping を各検索サイトなどに送信する

すると、各サイトのクローラーが巡回してくれ、 rss ファイルから更新データを入手する。
ping 送信から巡回までの時間は、ping 送信先サイトによって異なる。
blog360 や はてな は結構早い。

ping 送信を行う Java プログラム

Apache XML-RPC のバージョンについて

Apache XML-RPC を使う。
こちら から xmlrpc-3.1-bin.tar.gz をダウンロードする。

この API を使った ping 送信 Java プログラムを紹介してくれているサイトはいくつかあるが、現時点での最新バージョンは 3.1。どうやら API 仕様が結構変更されているようだ。既存のバージョンよりもさらに簡単になっている。

tar.gz を展開すると lib ディレクトリの中にいくつかの jar が含まれているが、このうち次のファイルを使用する。
  • xmlrpc-common-3.1.jar
  • xmlrpc-client-3.1.jar
  • ws-commons-util-1.0.2.jar

ping 送信プログラム

複数の ping サイトに非同期に ping を送信し、結果を受信するプログラムを作成した。

サンプルプログラム

ping サーバ一覧はテキストファイルで与えるプログラムを作成した。
ping.txt は例えば次のような内容を記述する。
http://api.my.yahoo.co.jp/RPC2
http://blog.goo.ne.jp/XMLRPC
http://blogsearch.google.co.jp/ping/RPC2
http://ping.amagle.com/
http://ping.ask.jp/xmlrpc.m
http://ping.blog360.jp/rpc
http://ping.bloggers.jp/rpc/
http://ping.blogoon.net/
http://ping.fc2.com
http://ping.myblog.jp/
http://ping.namaan.net/rpc/
http://ping.rss.drecom.jp/
http://pingoo.jp/ping/
http://r.hatena.ne.jp/rpc
http://rpc.blogrolling.com/pinger/
http://rpc.reader.livedoor.com/ping
http://rpc.technorati.com/rpc/ping
http://rpc.technorati.jp/rpc/ping
http://www.bloglines.com/ping
http://www.blogpeople.net/servlet/weblogUpdates
http://www.ranq.jp/xmlrpc/-/GzVaG0Y/FzJxX/

Eclipse用プロジェクト

手っ取り早く試す方はこちらからどうぞ。Eclipse 3.3.2 で動作確認。 sample-blogPing.zip

SEO 対策効果は

自分のサイトに新たなページを作成した際、速やかに検索サイトや単語でまとめられたリンク集に掲載されるので、より多くの人に閲覧してもらえる機会が増える。

MovableTypeでsitemap.xmlを自動生成

|

概要

robots.txtにsitemap.xmlを記述してSEO対策」 で作成したサイトマップ・ファイル sitemap.xml を検索エンジンのクローラーに参照してもらい、効率よくサイト内を巡回してもらえる。

肝心の sitemap.xml は MovableType や MTOS なら自動生成できる。
MovableType で Google Sitemap に対応する」にて sitemap.xml 自動生成に成功した。
その後、sitemap.xml をカスタマイズし、最終的に次の内容になった。

sitemap.xml の作成手順

  • MTOS の管理画面から [デザイン] → [テンプレート] を選択する。
  • 「インデックステンプレートを作成」をクリックする。
  • タイトルに「sitemap.xml」と入力する。
  • 内容に次の内容を入力する。
  • 出力ファイル名に「sitemap.xml」と入力する。
  • [保存] ボタンを押す。

最後に

MovableType(MTOS) で sitemap.xml を自動生成し、robots.txt と組み合わせることで、安価に効果の高いSEO対策を実施できる。

robots.txtにsitemap.xmlを記述してSEO対策

|

robots.txtとは?

google, Yahoo! などロボット型検索エンジンに対し、サイトの巡回方法を指示できる。
通常、次のような用途で利用する。
  • 検索エンジンに登録して欲しくないディレクトリ階層を指定する。
    例: /cgi-bin, /member-only/
  • サーバに高負荷をかける CGI を実行しないようにする。
また、SEO 対策として ページの存在を効率よく検索エンジンのロボット(クローラー)に通知するためにも利用できる。

robots.txtの書き方

下記内容のファイルを作成し、 サイトのトップ・ディレクトリに置く(例: http://foo.jp/robots.txt)。

全ての検索エンジンに対し、全ての URL への巡回を許可する

User-agent: *
Disallow:

特定のディレクトリへの巡回を拒否する

User-agent: *
Disallow: /cgi-bin/

robots.txt にサイトマップを記述する

sitemap.xml を作成したら、robots.txt に場所を記述しておく。
sitemap.xml が複数存在する場合は、複数記述する。
User-agent: *
Sitemap: http://trasis.jp/sitemap.xml
Sitemap: http://trasis.jp/blog/lab/sitemap.xml
Disallow:

robots.txt のテスト方法

Google ウェブマスターツール を使って、正しく動作するかどうかをテストできる。
間違えて記述したために、全てのページが巡回されなくなったなどのミスが起きるのは避けたい。

使い方
  • 「運用ツール」の「robots.txtを解析」をクリックする。
  • 「次のファイルのテキスト」のところに、robots.txt の内容をコピー&ペーストする。
  • 「この robots.txt ファイルに対して URL をテスト」のところに、自サイトの URL をいくつか入力してみる。
  • [テスト] ボタンを押す。

参考URL

MTOSまとめ

|
MTOS(MovableType Open Source) をしばらく使ってきて、これまで分かったことをまとめ。

MTOSとは

MovableType のコア部分が、GPL として公開された。
シックス・アパート社は、MTOS と同等のコアをベースに、ビジネスニーズを満たす商用パッケージを開発していく。

詳細はこちらが詳しい。

商用利用可能か?

可能。MTOSの利用やインストール作業で対価を得てよい。

GPLなので、ソースを改変した物を組織外・他人に使ってもらう場合は、ソース公開の義務が発生。
例えば、次のようなパッチを公開する。

日本語対応状況

MTOSのダウンロードページから英語版(MTOS-4.1-en.zip)をダウンロードできるが、初回インストール時の画面が英語である他は、完全に日本語対応している。

日本語版ダウンロード

こちらに日本語版が用意されている。MTOS-XXX-ja.zip をダウンロードする。
インストール画面が英語で分からなかった人にオススメ。

MTOSの特徴

mod_fcgid 対応
管理画面(mt.cgi)や検索機能(mt-search.cgi)の高速化に mod_fcgid を使える。というより、これを使わないと遅くて自分には耐えられない。
php対応(ダイナミック・パブリッシング機能)
ブログ記事作成時に再構築をせずに済む。
ブログ設定で「すべてのテンプレートをダイナミックに構築する」を選択する。
他、自分が気に入った特徴:

記事作成すると、短時間で google に反映される。
ブログ設定で「更新通知」のところの「google」にチェックを入れるだけでよいので、初心者でもこの機能を利用しやすくなっている。
反映にかかる時間は5分くらい?
Yahoo! など他の検索サイトはデフォルトで列挙されていないので、自分で ping リストを追加する。

自分の ping リスト(2008-04-01)
http://ping.ask.jp/xmlrpc.m
http://ping.namaan.net/rpc/
http://ping.blo.gs/
http://rpc.blogrolling.com/pinger/
http://api.my.yahoo.co.jp/RPC2
http://blog.goo.ne.jp/XMLRPC
http://ping.bloggers.jp/rpc/
http://ping.blogoon.net/
http://ping.blog360.jp/rpc
http://ping.namaan.net/rpc/
http://ping.myblog.jp
http://ping.rss.drecom.jp
http://ping.fc2.com
http://ping.ask.jp/xmlrpc.m
http://rpc.reader.livedoor.com/ping
http://r.hatena.ne.jp/rpc
http://blogsearch.google.co.jp/ping/RPC2
http://ping.rss.drecom.jp/

SEO対応

検索エンジン対策という点では、次の機能をサポートしている。
ping 送信機能
記事タイトルを URL に持ってくる
標準では英数字のみ対応。
パッチをあてると、日本語対応できる。

環境構築時のメモ

  • 自分が mysql に熟達していないせいかもしれないけど、mod_fcgid と組み合わせている際、ときどき管理画面が文字化けしてしまう。

    /etc/my.conf に次の記述を追加する。
    default-character-set = utf8
    skip-character-set-client-handshake
    

    postgresql を利用した方が、文字化けトラブルを回避できたかもしれない。

MTOSの記事のURLを日本語にする

|

概要

聞くところによると、SEO対策でURLに日本語でキーワードを含めるのがはやっているとか。
そこで、MTOS(MovableType Open Source) でそれができるかどうか試してみた。
ちょっとファイルを修正すると実現できた。

修正箇所

MTOS-4.1-ja を次のように修正した。
diff -r MTOS.orig/lib/MT/Util.pm MTOS/lib/MT/Util.pm
609c609
<     $s = xliterate_utf8($s);      ## convert two-byte UTF-8 chars to 7bit ASCII
---
>     #$s = xliterate_utf8($s);      ## convert two-byte UTF-8 chars to 7bit ASCII
613c613
<     $s =~ s![^\w\s]!!gs;          ## remove non-word/space chars.
---
>     $s =~ s![^\w\s\x80-\xff]!!gs;          ## remove non-word/space chars.
diff -r MTOS.orig/mt-static/mt.js MTOS/mt-static/mt.js
958c958
<     s = s.replace(/[^-a-z0-9_ ]/g, '');
---
>     s = s.replace(/[^-a-z0-9_ \u3041-\u30ff\u4e00-\u9fbb]/g, '');

Java 用 Google, Yahoo! 検索API

|
Web の世界は進歩が早すぎ。ここ数年、コンプライアンス体制構築などにかかりきりで Web やプログラム開発の世界から遠ざかっているうちに、 Web 2.0 やら SEO やら、分からない技術が増えてしまった。

まずは初心に帰って、ホームページやブログを構築。
(まだ中身がうすっぺらだけど)情報を掲載した際には必要としてくださる方々にそれを見てもらいたい
わけで、検索にひっかかるよう、SEO のお勉強。

その一環として、Google や Yahoo! がどのようにして、ユーザがどの検索結果をクリックしたのを検出しているのかを調査。
そして、調査結果を API としてまとめた。

API 作成

こういう感じで利用するものを作成。

Yahoo! も同様

Yahoo! API を使った検索

純粋に検索結果が欲しいなら、Yahoo! Developer Network で公開されている ウェブ検索Webサービス を使ったほうがいい。
他のクラスとインタフェースを合わせ、次のように検索できるようにした。 具体的なサンプルはこちら。
Commons Digester で Yahoo! 検索を行うサンプル

他の検索API

昔、google から検索 API が提供されていたが、2005年に終了してしまった。
http://code.google.com/apis/soapsearch/

代わりに、JavaScript から呼び出せる Google AJAX Search API が提供されている。 http://code.google.com/apis/ajaxsearch/

2010年9月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30