Google用のサイトマップファイルを生成する(PHP&MySQL)

Google SiteMap

MySQLにデータを保持していて、PHPスクリプトを使ってGoogle先生用のサイトマップを作る方法です。

PHPを扱えるならば、echoやprintを使って「コノヤロー!」っと出力したものをコピー&ペーストしてアップロードしてもいいわけですが、いかせんスマートではありません。
MySQLにデータを自動で取り込んで表示させているのにGoogle先生にクロールをお願いするときは手動かよって残念な気持ちになってしまいます。

そんなわけで、PHPからサイトマップ用ファイルの作成までやってもらいましょう。
それにはDOM関数を使用してXMLを出力します。

DOM関数?また小難しいことを覚えないといけないのか…と思う方もいるでしょうが、
まぁ、言われたとおりに触ってごらん。分かるから。

何はともかく実践です。
まずは下記の記述をコピーして保存して実行してください。

 

これを保存して実行すると【sitemap.xml】というファイルが生成されます。【sitemap.xml】をダウンロードしてテキストエディタで開くと下記の様になっています。

URLdataの部分にGoogle先生に認識して頂きたいURLを指定、Daydataの部分にGoogle先生に認識して頂きたいURLを指定すればGoogle先生はサイトマップとして認めてくれます。

クロールして欲しいページが複数ある時は<url>~</url>の記述をその分だけ繰り返せばいいだけです。
DOM関数が難しいと考える前に、実際に実行してみると難しくもなんともありません。

ここからが本番で、MySQLからデータを引き出してサイトマップを作りたい場合のサンプルスクリプトは下記です。
DB接続、SQL文、ユーザー定義関数等は摘便書き換えてください。

これで出来上がったファイルをGoogleのウェブマスターツールのサイトマップに指定しておけばGoogle先生がクロールしてくれます。

【完】

って、おいおいおいおい…

なんだよ、結局は自分の手でサイトマップ作らなくちゃいけないのかよ!と思った人は正解です。
これで作成したスクリプトをcron(クローン)で1日ごとに動かせばいいのですよ。
1日に1回はサイトマップが生成されますので手動ではなくなります。
【完】

って、おいおいおいおい…

cronが使えないサーバーだってあるんだよ!って方はも、cronは使えるけど設定が面倒だって方も訪問者を使って更新させる手段があります。
1日1回は表示されるであろうページのソースに
<img src=’http://example.com/sitemap.php’ border=’0′ width=’0′ height=’0′>のように<img>タグを使って呼び出します。
アクセス頻度が高いページにリンクを記載してしまうとサーバーに余計な負荷がかかってしまうので適切な場所に記載して下さい。

※この記事のスクリプトを実行しておかしくなっても自己責任でお願いします。