robots.txt と sitemap の正しい設定
第2章:検索基礎編 · 第30問
robots.txt と sitemap.xml は、ウェブサイトと検索エンジンが「対話」するための2つの基本ファイルです。前者はクローラーに「クロール不要なもの」を伝え、後者はクローラーに「これらのページをクロールしてほしい」と伝えます。適切に設定すればインデックス効率を大幅に向上できますが、設定を誤るとサイト全体が検索結果から消える可能性があります。
robots.txt の基本構文
robots.txt はサイトのルートディレクトリ(例: https://example.com/robots.txt)に配置する必要があります。基本構文:
User-agent: Baiduspider
Disallow: /admin/
Disallow: /search?
Allow: /
User-agent: Googlebot
Disallow: /admin/
Allow: /
Sitemap: https://example.com/sitemap.xml
重要なルール:
User-agent:どのクローラーを対象にするかを指定(*はすべてを表す)Disallow:クロールを禁止するパスAllow:クロールを許可(Disallowより優先される)Sitemap:sitemapのアドレスを宣言
どのパスをブロックすべきか?
| ブロックすべき: | 原因 |
|---|---|
| /admin/ または /wp-admin/ | 管理画面ページ、SEO価値なし |
| /search? または /s? | サイト内検索結果ページ、大量の低品質な重複ページを生成 |
| /cart/ /checkout/ | カート・決済ページ、インデックス価値なし |
| /?sort= /?filter= | 並び替え・絞り込みパラメータページ、重複コンテンツを引き起こす |
| /tag/(状況による) | タグページの内容が薄すぎる場合はブロックを推奨 |
| /api/ | APIアドレス、検索結果に表示されるべきではない |
絶対にブロックしてはいけないもの:
- CSSとJSファイル(Baiduはページのレンダリングに必要)
- 画像ディレクトリ(画像をインデックスさせたくない場合を除く)
- モバイルページ
sitemap.xml のフォーマットと規範
標準的なsitemapフォーマット:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/page1</loc>
<lastmod>2025-06-15</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
ベストプラクティス:
- 各sitemapファイルは50,000 URL以下、ファイルサイズは50MB以下
- 制限を超える場合はsitemapインデックスファイルで分割:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-posts.xml</loc>
<lastmod>2025-06-20</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
<lastmod>2025-06-18</lastmod>
</sitemap>
</sitemapindex>
送信チャネル
- 百度検索リソースプラットフォーム:検索サービス → 通常収録 → sitemap送信(txtとxml形式に対応)
- Google Search Console:インデックス → サイトマップ → 新しいサイトマップを追加
- Bing Webmaster Tools:サイトマップ → サイトマップを送信
百度は「アクティブプッシュAPI」による新規ページURLのリアルタイム送信にも対応しており、速報性のあるコンテンツ(ニュースなど)に特に有効です。
sitemap 更新頻度の推奨
| サイト種別 | 更新頻度 | 説明 |
|---|---|---|
| ニュース・情報 | 毎時/リアルタイム | 百度のアクティブプッシュと併用 |
| ECサイト | 毎日 | 商品の掲載・取下げが頻繁に変動 |
| 企業公式サイト | 毎週 | コンテンツの変動が少ない |
| ブログサイト | 新記事の公開時 | CMSによる自動更新が可能 |
よくある間違い
- robots.txtにDisallow: /と書いたまま戻すのを忘れた:サイト全体がブロックされ、これが最も致命的なエラー
- sitemapにrobotsでブロックされたURLが含まれている:論理矛盾があり、検索エンジンが混乱する
- sitemapに404ページが含まれている:クロール割り当ての無駄遣い
- lastmodの日付を偽装:毎回現在の日付を書くと、検索エンジンはこのフィールドを無視する
- robots.txtでsitemapの場所を宣言していない:必須ではないが、追加を推奨
- sitemapのエンコードエラー:UTF-8エンコードが必須で、URL内の特殊文字はエスケープが必要
実践的なアドバイス
- 公開前に必ずrobots.txtを確認:多くのサイトは開発段階で
Disallow: /全サイトをブロックし、公開後に修正を忘れて数か月間インデックスされない - sitemapにはインデックスさせたい正規URLのみを掲載:パラメータ付きの重複ページ、noindexページ、リダイレクト元URLは載せない
- 毎月1回sitemapの健全性をチェック:Screaming Frogなどのツールでスキャンし、sitemapに4xx/5xxエラーページがないことを確認
AIツールで解決:robots.txtとsitemap設定の生成
シナリオ1:サイト種別に応じたrobots.txtの生成
私のサイトは[企業公式サイト/EC/コンテンツブログ]で、[WordPress/自社開発]ベースです。ブロック不要なディレクトリは[CSS/JS/画像]、ブロックが必要なのは[管理画面/検索ページ/パラメータページ]です。完全なrobots.txtを生成してください:BaiduspiderとGooglebotに分けて記述し、管理画面とサイト内検索をブロック、CSS/JS/画像はAllow、最後にsitemapアドレスを宣言してください。各行ルールの役割もコメントで説明し、理解しやすくしてください。
シナリオ2:既存のURLリストからsitemap.xmlを生成
これは私のサイトの全URLリストです(sitemapまたはURLリストを貼り付け)。以下をお願いします:1) パラメータ付き、admin/searchなどを含むインデックス不要なURLを除外;2) sitemap仕様に従ってXMLを生成し、各項目にloc、lastmod(指定日付を使用)、changefreq、priorityを含める;3) 5万件を超える場合はsitemap index形式に分割。
シナリオ3:sitemap内の「地雷」をチェック
これはsitemap.xmlです(内容を貼り付け)。以下をチェックしてください:1) URLがすべてrobots.txtの許可ルールに一致するか(robots.txtも併記します);2) noindexページや301リダイレクト元が含まれていないか;3) lastmodが妥当か(すべて今日の日付になっていないか);4) XMLのエンコードとエスケープが正しいか。
シナリオ4:パラメータ型の重複URLをブロックする正規表現の生成
私のサイトのURLにはこれらのパラメータが付きます:?sort=、?filter=、?page=、?utm_source=、?session_id=。robots.txtでこれらのパラメータページをブロックする正規表現ルールを生成し、各ルールのマッチ範囲と誤爆の可能性について説明してください。
注意:AI 的边界
- robots.txtは「一票否決」の設定:AI生成後は必ず1行ずつ人手でレビューし、特に
Disallow: /全サイトブロックが含まれないようにし、公開前にブラウザでrobots.txtに直接アクセスして確認 - sitemapの内容は真実であること:AIは貼り付けたURLに基づいてしか生成できず、どのページがnoindexや削除済みかを知らないため、自分で事前にフィルタリングする必要がある
- AIにlastmodを捏造させない:lastmodの偽造は検索エンジンに無視され信頼が低下するため、日付は実際のファイル更新日時から取得すること
