このページは自宅サーバーコンテンの運用でGoogleサイトマップを活用するための方法の解説です。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
Googleを味方にする方法

Googleを味方にする方法

Googleサイトマップを極める1

Googleサイトマップを極める2

Googleサイトマップを極める3

Googleサイトマップを極める4

Googleサイトマップを極める5

Google検索窓を利用する

AdSenceとAnalytics


サイトマップを自動送信する

Googleサイトマップを利用すると通常なら検索ロボットが拾ってくれない動的なページも検索エンジンに登録することができますから、アクセスアップにはとても有利に働くはずです。

ただ毎回毎回コマンド操作でサイトマップを作成してブラウザから送信操作を行うのははっきりいって面倒ですから、シェルスクリプトを作成してこれらの一連の操作を自動化してしまいましょう。

サイトマップ自動送信のためのシェルスクリプト

現在、お便利サーバー.comで使用しているGoogleサイトマップの自動生成、送信スクリプトを以下に示します。

コマンドラインがちょっと長いので画面を分割しています。

Googleサイトマップ作成・送信スクリプト
Googleサイトマップ作成・送信スクリプト

1行目は使用するシェルの指定です。Linux標準のbashを使います。シェルスクリプトの記述のお約束ですね。

2行目で作業対象をカレントディレクトリに移します。全部の記述を絶対パスでやればこの行は不要ですが、コマンドラインが長くなるのが嫌なのでこうしています。もちろんこれは好き好きです。

3行目は前のページで説明したサイトマップを作成するためのコマンド操作、

"python sitemap_gen.py --config=obenri_config.xml"

です。安全性を考えてインタプリタ"python"は絶対パスで指定しています。

4行目がGoogleに対するサイトマップ受信要求です。

前のページで行った、「Googleにサイトマップを送信」というブラウザからの操作は、こちらからサイトマップの送信の命令を出しているわけではありません。

実はGoogle側のWebサーバー上にある特定のスクリプト(だと思います)に対して適当な引数を付けてGETメソッドを実行しているだけです。

そしてその指示を受けたGoogle側が、こちらのサーバー上のサイトマップをGETしに来る、という段取りになっているわけです。

従ってここでは"wget"コマンドを使って「単純にGETメソッドでアクセス」すれば良いということがわかります。つまりこの行は、

「"wget"コマンドで、"http://www.google.com/webmasters/sitemaps/ping"に対して引数"sitemap=[サイトマップの場所]"でアクセスし、結果を"/var/log/sitemap01.log"に上書き出力する(最新のログだけを残す)。」

という動作をします。エンコードの関係で引数の中の":"は"%3A"、"/"は"%2F"に置き換えなければならない点に注意します。

またログの出力に関しては、オプションスイッチを"-o"から"-a"に変更すると追加記述になります。

5行目は"wget"コマンドので取得したGoogleからの返答のhtmlファイルへの改名です。

上の"wget"コマンドを実行すると、こちらからのGET要求に対する回答がカレントディレクトリに"ping\?sitemap\=http\:%2F%2Fwww.obenri.com%2Fsitemap.xml.gz"というファイル名で記録されます。

このファイルの内容はhtml形式なのですが、このままのファイル名ではパソコンのブラウザから見ることができないので"mv"コマンドで"sitemap_status.html"と改名しているわけです。

6行目と7行目は3行目で作成したサイトマップのアーカイブ"sitemap.xml.gz"の解凍です。

これは3行目で作成されたサイトマップの内容をパソコンのブラウザで確認できるようにするための処理です。

従って最初から"*.xml"でサイトマップを作成している場合はこの行は不要になりますし、作成されたサイトマップを確認する気がない場合も同様に不要です。

"gunzip"コマンドは元のアーカーブを残すオプションがありませんので、6行目で一度アーカイブのコピー"sitemap_tmp.xml.gz"を作成し、7行目でそのアーカイブを解凍するようになっています。

スクリプトは適当な場所に適当な名前で保存します。お便利サーバーでは、パスが通っている"/usr/local/bin/"以下に"sitereq"という名前で保存しています。そして、

"chmod 755 sitereq"

で実行属性を与えれば準備完了です。

このページの先頭へ↑

サイトマップ作成・送信スクリプトをテスト実行する

まずはこの"sitereq"スクリプトをコマンドラインから実行してみます。

[root@web0 bin]# ./sitereq

実行中にいくつかメッセージが表示されますが、エラーが出なければ大丈夫です。

スクリプトに問題がなく、きちんとサイトマップがGoogleに送信されれば、ウェブマスターツールの「サイトマップ」の画面で確認することができます。

「ウェブマスターツール」画面
「ウェブマスターツール」画面

この中で、「最終ダウンロード日」(Googleが最後にサイトマップを持って帰った日時)が、コマンドを実行した時刻を「ほぼ正確に」示しているはずです。そして「サイトマップのステータス」が「OK」になっていれば、送信内容にも間違いがなかったことを意味します。

ちなみに「入力」は、この「ウェブマスターツール」から最後にサイトマップを送信した日時です。従ってスクリプトを利用してサイトマップを送信する場合は、この日時はずっと変わらないことになります。

「送信いただいたURL」には、サイトマップに記述されている有効なURL数が表示されます。

また先に書いたとおり、このスクリプトでは、

http://www.obenri.com/sitemap_status.html

でGoogleへの受信要求に対するGoogle側の回答(英文)が、

http://www.obenri.com/sitemap.xml

で送信したサイトマップの内容を確認することができます。

また、コマンドラインから"/var/log/sitemap01.log"を開くと、最後にこのスクリプトで実行された"wget"コマンドのステータスを見ることができます。

/var/log/sitemap01.logの内容
/var/log/sitemap01.logの内容

要求が正しく行われていれば、赤線のところのステータスコードが"200 OK"になっているはずです。

このページの先頭へ↑

サイトマップ作成・送信スクリプトを定期的に実行する

あとはこの"sitereq"スクリプトを"crond"で定期的に実行すればいいだけです。

例えば"/etc/cron.daily/"以下に"sitereq"をコピー(またはシンボリックリンクを作成 ディレクトリとファイルのコピーと移動 )すれば、デフォルトでは毎日午前4時2分にGoogleへサイトマップが送信されるようになります。

動的なページを頻繁に生成しないサイトの場合は、サイトマップの送信は一日一回でも十分でしょう。がんがんGoogleに情報を送りつけたからといって情報の反映が早くなるわけではありませんし。

XOOPSやMovableTypeなどのCMSを利用している場合は、運用中に作成された動的なページを反映させるためにもう少し送信頻度を多くしても良いと思います。が、前のページにも書いたとおり一時間に一回を超えないようにしたほうが無難ですね。

"crond"の利用方法についてはこちら プログラムを予約して実行する で詳しく説明していますので参考にしてください。

また、"crond"を利用してこのスクリプトを実行するとサイトマップの作成状況がメールで管理アカウントに送信されます。

頻繁ではありませんが、Googleサイトマップの送信はGoogle側の都合でうまくいかないときがあります。

もちろんこういう場合は慌てて何かをする必要はありません。のんびり待っていればそのうちちゃんと送信されます。

「あせらず騒がずゆるゆると」、これがGoogleと付き合う基本かもしれませんね。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System