【Google Sitemap】サイトマップ生成ツール&自動更新の設定方法

Google Sitemap は Google が提供しているウェブマスター向けのサービスであり、検索の統計情報や Googlebot によるクロール状況などを知ることが可能である。

ここでは、Google Sitemap で使用されるサイトマップというファイルを生成するツールの使い方とサイトマップファイルを定期的に自動更新するための設定方法を紹介する。

Google Sitemapに自分の運営するサイトを追加後、サイトマップファイルを登録することで Google によるクロールの効率を上げ、更新したページの情報等を Google にすぐに知らせることができる。

サイトマップは XML ファイルで書かれており、手で書くことも可能であるが、ここでは Google により提供されているサイトマップ生成ツールを使用することにする。


準備

サイトマップ生成ツールは python という言語で書かれているため、python を実行可能なサーバでなければならない。レンタルサーバの場合、管理者に問い合わせる必要がある。
自分の管理している Linux サーバであれば、apt-get 等で入手する必要がある。

今回、Vine Linux 3.2 を使用した場合を例として説明する。


1.Google Sitemap にサイトを追加する

Google アカウントを使用して Google Sitemap にログインする。 サイトを追加すると所定の html ファイルを作成してウェブページ上に置くように言われるので、自分のウェブページにその html ファイルを置き、Googleに確認してもらう。


2.サイトマップ生成ツールのダウンロード

google-sitemap_gen - SourceForge.net から「sitemap_gen-1.4.zip」をダウンロードし、解凍する。


3.サイトマップ生成ツールの設定ファイルの変更

ダウンロードファイルを解凍したフォルダの中にある example_config.xml ファイルをコピーして config.xml としてリネームし、config.xml の設定を以下のように変更する。

(なお、行数については example_config.xml ファイルの行数を示しているので、config.xml を編集していくにつれ、若干ずれている場合があります)

【site タグ情報の編集 34行目~】

35行目の base_url="" の部分を自分のサイトのURLに変更する。
36行目の store_info="" の部分にサイトマップファイルを出力したいディレクトリを指定する。base_url で指定したURLの直下になるようにするのが良い。(つまり、Apache の DocumentRoot に指定されているディレクトリの直下)

例:
base_url="http://noisette.ddo.jp/"
store_into="/home/httpd/html/sitemap.xml.gz"

【url タグ情報の編集 60行目~】

60行目の url href="" 部分を自分のサイトのURLに変更する。
61行目から66行目の url タグ部分はサイトの更新日・更新頻度などを指定することができるが、特に指定する必要もないのでコメントアウト。

【urllist タグ情報の編集 79行目~】

79行目の urllist タグ部分をコメントアウト。
(urllist はサイト内の URL をリストしたファイルを指定する際に使用する。通常は不要)

【directory タグ情報の編集 93行目~】

このタグでは、ローカルのディレクトリパスとURLとの紐付けを行う。指定されたディレクトリパス以下を検索し、URLリストが作成される。要するに自分のサイトのURLと Apache の DocumentRoot の関係を指定すればOK。
path="" 部分には Apache の DocumentRoot を指定。
url="" 部分には、自分のサイトのURLを指定。

例:
path="/home/httpd/html"
url="http://noisette.ddo.jp/"

【accesslog タグ情報の編集 112行目~】

accesslog path="" 部分を自分の環境に合わせて設定変更。
Vinelinux のデフォルトの状態であれば、Apache のアクセスログは、「/var/log/httpd/access_log」?「/var/log/httpd/access_log.4」の5世代まで存在しており、その指定方法は以下のようになる。

<accesslog path="/var/log/httpd/access_log" encoding="UTF-8" />
<accesslog path="/var/log/httpd/access_log.1" encoding="UTF-8" />
<accesslog path="/var/log/httpd/access_log.2" encoding="UTF-8" />
<accesslog path="/var/log/httpd/access_log.3" encoding="UTF-8" />
<accesslog path="/var/log/httpd/access_log.4" encoding="UTF-8" />

【sitemap タグ情報の編集 125行目~】

既存のサイトマップファイルが存在する場合に指定する。
普通は存在しないので、sitemap タグ部分をコメントアウト。

【filter タグ情報の編集 158行目~】

filter タグ部分ではサイトマップに特定のファイルを含めたり、除外したいファイルを指定することが可能。
・filter action="pass" であれば一致するURLをサイトマップに含める。
・filter action="drop" であれば一致するURLをサイトマップから除外。
例えば、hoge というディレクトリ以下のサイトマップを作成したくないのであれば、以下のように指定する。

<filter action="drop" type="wildcard" pattern="*/hoge/*" />

また、サイトマップに含めるURLを *.html ファイルのみにしたい場合は以下のように指定する。

<filter action="pass" type="wildcard" pattern="*.html" />
<filter action="drop" type="wildcard" pattern="*" />

以上で基本的な設定は完了です。


4.サイトマップ生成ツールの実行

編集した config.xml ファイルを sitemap_gen.py と同じディレクトリに置く。 sitemap_gen.py に実行権限を与え、実行テストを行ってみる。

$ chmod 755 sitemap_gen.py
$ python sitemap_gen.py --config=config.xml --testing

Count of file extensions on URLs:208 .html 等の表示がされ、Number of errors: 0 となればOK.Number of warnings が出ても特に気にしなくても構わない。
エラーが出た場合は、config.xml の記述をもう一度見直す。

実行して特に問題が無ければ、--testing のオプションを外して以下のように実行し、サイトマップ情報を Google に送る。

$ python sitemap_gen.py --config=config.xmlGoogle Sitemap のサイトにアクセスし、サイトマップが追加されていることを確認する。


5.自動更新 cron への登録

サイトマップを定期的に作成し Google に送信するために実行スクリプトを作成し、cron への登録を行う。

以下のようなシェルスクリプトを googleSitemap.cron などのファイル名で作成し、ルート権限で /etc/cron.weekly ディレクトリ配下等に置く。
(以下のスクリプトでは、ツール実行時のログを /var/log/googleSitemap.log に一世代のみ書き出している)

#!/bin/sh
# Google Sitemap
python /サイトマップ自動生成ツールのディレクトリパス/sitemap_gen.py --config=/サイトマップ自動生成ツールのディレクトリパス/config.xml > /var/log/googleSitemap.log 2> /dev/null

このように cron.weekly に登録しておけば、毎週土曜日の4時にサイトマップを自動作成し、Googleに更新されたサイトマップ情報を送信することが可能となる。サイトの更新頻度が高いのであれば、cron.daily や cron.hourly に登録すれば効果的。

以上で Google Sitemap に登録するためのサイトマップファイルの自動生成・更新が可能となる。

これで Googlebot に自分のサイトの全てのページを知らせることは可能。新規ページを作成したときに Googlebot がなかなか来ないっていう状況には陥らないと思います。

Home

Tips

ページのトップへ戻る