• #SEO
  • #Cloudflare
  • #Nuxt
  • #robots.txt
未分類

robots.txt構文エラーの修正

問題

Google Search Consoleでrobots.txtの構文エラーが報告された:

エラー - 構文が認識できませんでした (line 29)
Content-signal: search=yes,ai-train=no

原因

CloudflareのAIボット管理機能が、非標準のContent-signalディレクティブをrobots.txtに自動追加していた。

# BEGIN Cloudflare Managed content
User-Agent: *
Content-signal: search=yes,ai-train=no  ← これが問題
Allow: /
# END Cloudflare Managed content

比較的新しいディレクティブであるContent-signalは、Google Search Consoleのrobots.txtバリデーターでは認識されない。

解決策

方法1: @nuxtjs/robotsモジュールを使用(採用)

Nuxtでrobots.txtを動的に生成するように変更。

1. モジュールのインストール

pnpm add -D @nuxtjs/robots

2. nuxt.config.tsに設定を追加

export default defineNuxtConfig({
  modules: [
    "@nuxtjs/robots",  // 追加
    "@nuxtjs/sitemap",
    "@nuxt/content"
  ],
  robots: {
    groups: [
      {
        userAgent: ['*'],
        allow: ['/']
      }
    ],
    sitemap: 'https://log.eurekapu.com/sitemap.xml'
  },
  // ...
})

3. 静的robots.txtを削除

rm apps/web/public/robots.txt

これにより、ビルド時にNuxtが標準準拠のrobots.txtを生成する。

方法2: Cloudflareダッシュボードで無効化

Cloudflareの管理画面から設定を変更する方法:

  1. Cloudflareダッシュボードにログイン
  2. 対象ドメインを選択
  3. SecurityBotsConfigure bot management
  4. 「AI Crawlers」または「Content Credentials」の設定を探す
  5. robots.txtへの自動追加を無効にする

生成されるrobots.txt

修正後、以下の標準準拠のrobots.txtが生成される:

User-agent: *
Allow: /

Sitemap: https://log.eurekapu.com/sitemap.xml

参考