サイトマップ(sitemap.xml)のつくり方とちょっとしたテクニック
ここで説明するものはサイト内のページ一覧のリンクを表示したページ(HTML)ではなく、サイト内のページURLをxmlファイルでまとめたサイトマップファイルのことです。
このサイトマップファイルを検索エンジンなどのクローラーに知らせることで、効率よくクローラーが巡回してくれるようになります。
サイトマップファイルを作るのが面倒という人はRSSのxmlファイルでもサイトマップファイルの代用となります。
サイトマップの再作成に時間がかかる場合もRSSのURLをウェブマスターツールなどで検索エンジンに登録しておくといいです。
[参考記事] RSS 2.0の作り方
[参考記事] サイトの更新情報をPINGサーバに送信する方法
[参考記事] Y!J-BSC/1.0 crawlerの挙動(ページ内のRSSを必ず読みに来る)
[参考記事] Yahoo!の検索エンジンの歴史(Inktomi Corporationとは)
サイトマップを設置することでクローラーの巡回頻度が高くなるわけではありません。
ページを作成して他のページへリンクを張ったにもかかわらずそのリンクを張ったページへの巡回が遅い場合や、リンクがつながっていないページがある場合には効果的です。
サイトマップのルール
サイトマップファイルの書式
サイトマップファイルを複数つくる場合(サイトマップインデックス)
サイトマップファイルの圧縮
サイトマップファイルのURLをクローラーに知らせる方法
迷惑なクローラー・ボットを防ぐ方法
サイトマップのルール
1ファイルに50,000個までURLを記載することができます。
1ファイルのサイズは10MB以下です。
ファイル形式はxmlファイルまたはそのxmlファイルをgzip圧縮したものになります。
サイトマップのURLをまとめたサイトマップインデックスというファイルが使えます。
サイトマップファイルの書式
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.example.com/page1.html</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </url> <url> <loc>http://www.example.com/page2.html</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </url> …… … …… <url> <loc>http://www.example.com/page99.html</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </url> </urlset>
ページの更新日時を記載しない場合
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.example.com/page1.html</loc> </url> <url> <loc>http://www.example.com/page2.html</loc> </url> …… … …… <url> <loc>http://www.example.com/page99.html</loc> </url> </urlset>
最初にxml宣言を書きます。
<?xml version="1.0" encoding="UTF-8"?>
<urlset></urlset>で囲って各ページURLの情報を<url></url>で書きます。
<url></url>の各URLの情報は
<loc></loc>がページのURL、
<lastmod></lastmod>がページの最終更新日時で、更新日時は省略可能です。
更新日時のフォーマットはPHPだと
date("c")
です。
クローラーがサイトマップファイルを読み込んだ時に、ページの更新日時が新しいものがあればそのページを再取得してくれます。
更新されていないページがクローラーに再取得されるより新しいページが取得されたほうが巡回効率がよいので、更新日時は記載したほうがいいです。
サイトマップファイルを複数つくる場合(サイトマップインデックス)
1ファイルに記載できるURLは50,000個までなので50,000ページ以上ある場合はファイルを複数作成します。
50,000ページ以上ある場合やカテゴリ分けでサイトマップファイルが複数ある場合は、サイトマップファイルのURLをまとめたサイトマップインデックスを作成するといいです。
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>http://www.example.com/sitemap/main.xml</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </sitemap> <sitemap> <loc>http://www.example.com/sitemap/category01.xml</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </sitemap> …… … …… <sitemap> <loc>http://www.example.com/sitemap/category99.xml</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </sitemap> </sitemapindex>
サイトマップファイルの更新日時を記載しない場合
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>http://www.example.com/sitemap/main.xml</loc> </sitemap> <sitemap> <loc>http://www.example.com/sitemap/category01.xml</loc> </sitemap> …… … …… <sitemap> <loc>http://www.example.com/sitemap/category99.xml</loc> </sitemap> </sitemapindex>
最初にxml宣言を書きます。
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex></sitemapindex>で囲って各サイトマップファイルURLの情報を<sitemap></sitemap>で書きます。
<url></url>の各URLの情報は
<loc></loc>がサイトマップファイルのURL、
<lastmod></lastmod>がサイトマップファイルの最終更新日時で、更新日時は省略可能です。
更新日時のフォーマットはPHPだと
date("c")
です。
クローラーがサイトマップインデックスファイルを読み込んだ時に、サイトマップファイルの更新日時が新しいものがあればそのサイトマップファイルを再取得してくれます。
サイトマップファイルの圧縮
1ファイルのサイトマップファイルの容量は10MBまでなので、容量が大きくなる場合にはgzip圧縮したファイルにします。
gzip圧縮することでファイルの転送量を減らすことができるので帯域制限がある場合やサーバ負荷が大きいときには効果的です。
[参考記事] PHPでgzip圧縮形式(gz圧縮)のファイルを読み書きする方法
gzip圧縮したときのサイトマップインデックスファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>http://www.example.com/sitemap/main.xml.gz</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </sitemap> <sitemap> <loc>http://www.example.com/sitemap/category01.xml.gz</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </sitemap> …… … …… <sitemap> <loc>http://www.example.com/sitemap/category99.xml.gz</loc> <lastmod>2014-07-05T20:29:42+09:00</lastmod> </sitemap> </sitemapindex>
サイトマップファイルのURLをクローラーに知らせる方法
robots.txtにサイトマップのURLを記載します。
User-agent: * Sitemap:http://www.example.com/sitemap.xml
GoogleやMSN(bing)、Yandexではウェブマスターツールでサイトマップを登録することができます。
[参考記事] いろんな検索エンジンのウェブマスターツールの一覧
迷惑なクローラー・ボットを防ぐ方法
サイトマップを設置することで、クローラーがURLの記載されたすべてのページを巡回してくれるようになりますが、
GoogleやMSNのようなサイトのアクセスを増やしてくれる有益なクローラーだけでなく、
企業評価調査のためのボットなどサーバ負荷をかけるだけの迷惑なボットが来ることもあります。
そのような迷惑なボットにサイトマップ情報を知らせないように、サイトマップファイルを1つのディレクトリにまとめ.htaccessでアクセス制限をかけておく方法があります。
<Files .htaccess> order allow,deny deny from all </Files> order deny,allow deny from all # Google allow from 216.239.0.0/16 allow from 64.68.80.0/22 allow from 64.233.0.0/16 allow from 72.14.0.0/16 allow from 66.102.0.0/16 allow from 66.249.0.0/16 allow from 209.85.0.0/16 allow from 68.142.212.0/25 #Yahoo! allow from 74.6.0.0/16 allow from 114.111.64.0/18 allow from 183.79.0.0/16 #msn allow from 65.52.0.0/14 allow from 157.56.0.0/14 allow from 131.253.22.0/23 allow from 131.253.24.0/21 allow from 131.253.21.0/24 allow from 157.54.0.0/15 allow from 157.56.0.0/14 allow from 157.60.0.0/16 allow from 199.30.16.0/20 allow from 207.46.0.0/16 #Yandex allow from 95.108.217.251 allow from 95.108.234.38
関連記事
- Google ChromeでHTTPリクエストヘッダーのAccept-Languageを変更する方法
- Windows10で自動更新を停止させる方法(Windows Updateの停止)
- プログラムでもっとも正確に日本の祝日を求める方法(内閣府公表CSVの過去3度の改訂履歴)
- IntelのCore i CPUの接尾辞(末尾のアルファベット)まとめ
- 4Kモニタで画面がたまに点いたり消えたりしてちらつくときの対処法
- ブラウザでJPG画像を保存しようとすると.jfifの拡張子で保存されるのを.jpgに戻す方法
- /dev/random と /dev/urandom の違い
- 破損したストレージからのデータ復旧
- glibcを更新するとdateコマンドが新元号の令和に対応します
- ata1.00: SRST failed(errno=-16) と出る場合
- Googleカレンダーの共有の予定をiPhoneに表示させる方法
- Googleアカウントのプロフィール画像を削除する方法
- 改行コードのCRとLF (キャリッジは印字ヘッドのことではありません)
- telnetの反応がなくなった時に接続を強制的に切断する方法
- サイトの安全性を確認するサービス McAfee SiteAdvisor
- Yahoo!の検索エンジンの歴史(Inktomi Corporationとは)
- Y!J-BSC/1.0 crawlerの挙動(ページ内のRSSを必ず読みに来る)
- Windows8でOutlook ExpressやWindowsメール、WindowsLiveメールのデータを移行する方法
- いろんな検索エンジンのウェブマスターツールの一覧
- 「ID」や「ID_xxxx」という文字列があるCSVファイルをExcelで開くとSYLKエラーが出る
- Excelの日付が数字になるときの対処法
- Excelの日付や時間の表示形式(書式記号)の一覧
- 64bit版Windowsで32bit用のProgram Filesフォルダのパスを取得する方法
- ユーザーフォルダのパスを取得する方法
- ユーザーアカウント制御(UAC)を無効にする方法(Windows設定の変更通知を無効にする)
- Shift_JISの別名、EUC-JPの別名
- 64bit版か32bit版のどちらかを調べる方法
- サイトの削除されたページや、ページの過去の状態を見る方法
- オープンソースライセンスの一覧と日本語訳(全52種類)
- Google Chromeで一部の文字だけ四角記号に文字化けするときの対処法
- Google Chromeでテキストエリアtextareaのサイズ変更をさせない方法
- Outlook ExpressからWindows Liveメールにメールを移行する方法
- Windows Liveメールのバックアップと復元 エクスポート・インポート
- Windows Liveメールで差出人をメールアドレスでの振り分けができない
- Windows Liveメールでメールの振り分けをする メッセージのルール
- PNG画像の特徴
- JPEG画像の特徴
- Failed to get proc address for D3DPERF_SetOptions (d3d9.dll)
- 東芝のPCでリカバリディスク作成ツールを使用する方法(TOSHIBA Recovery Disc Creator)
- Windows Updateができないときの対処法(エラー番号:80072F8F)
- 上書きしてしまったファイルを復元する方法
- Windows7内で互換モードで動作しないアプリケーションを実行するXPモード
- Thunderbirdのデータをエクスポート、インポートする手順
- 名前が青色や緑色で表示されるファイルやフォルダの意味
- Outlook Expressのバックアップと復元
- 本当のFAQとは 富士サファリパークのCMソング
- Microsoft Security Essentials Alertを偽装した不正プログラム
- ウイルスの種類(マルウェア・トロイの木馬・スパイウェア・アドウェア)
- Googleなどの特定のサイト表示が遅い場合の対処法(Windows7など)
- btdna.exe とは BitTorrent(BitComet)の正しいアンインストール方法
- Messages of type message/partial are not supportedとは
- 日本語変換が急にできなくなる
- Macでスリープにしても勝手に解除される
- GIFファイルの既定のプログラムをWindows フォトビューアーにする方法
- メールやFTP、ベーシック認証のパスワードを忘れたときの対処法
- 『アイコンの整列』でショートカットが2箇所に分かれる
- 1e100.netとは
- メッセンジャーで日本語が入力できない
- FAT32のファイルシステムで扱える最大ファイル数は65,535個?21,845個?
- Thumbs.dbを作成しないようにする設定
- .NET Framework セキュリティ更新プログラム KB928366
- ユーザ会の一覧
- Windows標準以外のデフラグツール
- Firefoxでファイル名を指定して保存する方法
- ExcelのCSV形式で17行目からカラムの数が変わる
- Firefoxの検索バーにあるGoogleのアイコンを新しくする方法
- 踊り字
- 入力フォームの記入例、テスト用のメールアドレスでやってはいけないこと
- Beep音を無効にする
- RSS 2.0の作り方
- ブラウザの一覧
- アクセスするだけでルーターがクラッシュするサイト
- GIF画像の特徴
- WindowsXPの壁紙『草原.bmp』
- 記号の名称(呼び名)
- FlashMXでゲーム6種類 イースターエッグ
- Flash8でゲーム6種類 イースターエッグ
- Windows98のスクリーンセーバー イースターエッグ
- Excel97のフライトシュミレーター イースターエッグ
- Microsoft Outlook 97のスタッフロール イースターエッグ
- Word97でピンボール イースターエッグ
- Windows98 のイースターエッグ WELCOME スタッフロール
- Internet Explorer 5.0 のイースターエッグ Trident team
スポンサーリンク