Menu

robots.txt

Robots Exclusion Standardに準拠したrobots.txtファイルを、appディレクトリのルートに追加またはジェネレートし、検索エンジンのクローラーにサイト上のどのURLにアクセスできるかを指示します。

静的なrobots.txt

app/robots.txt
User-Agent: *
Allow: /
Disallow: /private/
 
Sitemap: https://acme.com/sitemap.xml

Robotsファイルの生成

Robotsオブジェクトを返すrobots.jsまたはrobots.tsファイルを追加します。

補足: robots.jsは特殊なRoute Handlersで、動的API動的コンフィグオプションを使用しない限り、デフォルトでキャッシュされます。

app/robots.ts
import type { MetadataRoute } from 'next'
 
export default function robots(): MetadataRoute.Robots {
  return {
    rules: {
      userAgent: '*',
      allow: '/',
      disallow: '/private/',
    },
    sitemap: 'https://acme.com/sitemap.xml',
  }
}
app/robots.js
export default function robots() {
  return {
    rules: {
      userAgent: '*',
      allow: '/',
      disallow: '/private/',
    },
    sitemap: 'https://acme.com/sitemap.xml',
  }
}

出力:

User-Agent: *
Allow: /
Disallow: /private/
 
Sitemap: https://acme.com/sitemap.xml

特定のユーザーエージェントのカスタマイズ

rulesプロパティに検索エンジンボットの配列を渡すことで、個々の検索エンジンボットがサイトをクロールする方法をカスタマイズできます。例:

app/robots.ts
import type { MetadataRoute } from 'next'
 
export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      {
        userAgent: 'Googlebot',
        allow: ['/'],
        disallow: '/private/',
      },
      {
        userAgent: ['Applebot', 'Bingbot'],
        disallow: ['/'],
      },
    ],
    sitemap: 'https://acme.com/sitemap.xml',
  }
}
app/robots.js
export default function robots() {
  return {
    rules: [
      {
        userAgent: 'Googlebot',
        allow: ['/'],
        disallow: ['/private/'],
      },
      {
        userAgent: ['Applebot', 'Bingbot'],
        disallow: ['/'],
      },
    ],
    sitemap: 'https://acme.com/sitemap.xml',
  }
}

出力:

User-Agent: Googlebot
Allow: /
Disallow: /private/
 
User-Agent: Applebot
Disallow: /
 
User-Agent: Bingbot
Disallow: /
 
Sitemap: https://acme.com/sitemap.xml

Robotsオブジェクト

type Robots = {
  rules:
    | {
        userAgent?: string | string[]
        allow?: string | string[]
        disallow?: string | string[]
        crawlDelay?: number
      }
    | Array<{
        userAgent: string | string[]
        allow?: string | string[]
        disallow?: string | string[]
        crawlDelay?: number
      }>
  sitemap?: string | string[]
  host?: string
}

バージョン履歴

バージョン変更内容
v13.3.0導入時期:robots