SEO対策やクローラー制御の基本として重要な「robots.txt」と「sitemap.xml」。これらを正しく設置することで、検索エンジンとの適切な関係を構築できます。本記事では、それぞれの役割とNext.js(SSG)での設置方法、動的生成の方法について解説します。
robots.txt
は、検索エンジンのクローラー(Googlebotなど)に対して、サイト内のどのページをクロールしてよいか、または避けるべきかを指示するためのファイルです。
1User-agent: *
2Disallow: /admin/
3Allow: /
4
5Sitemap: https://example.com/sitemap.xml
6
この例では、全てのクローラーに対して/admin/
以下をクロールさせず、それ以外は許可しています。また、サイトマップのURLも明示しています。
sitemap.xml
は、サイト内に存在するページURLの一覧を記述したファイルです。検索エンジンにとっては、クロールすべきページを効率よく把握するための地図のような役割を果たします。
1<?xml version="1.0" encoding="UTF-8"?>
2<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3 <url>
4 <loc>https://example.com/</loc>
5 <lastmod>2025-05-04</lastmod>
6 <changefreq>monthly</changefreq>
7 <priority>1.0</priority>
8 </url>
9</urlset>
10
Next.js(Static Export)では、public
ディレクトリにrobots.txt
とsitemap.xml
を配置するだけで、静的サイトとして出力されます。
/public/robots.txt
/public/sitemap.xml
より簡単にサイトマップとrobots.txtを出力したい場合は、next-sitemap
ライブラリを利用すると便利です。設定ファイルを用意するだけで、URL一覧からsitemap.xml
やrobots.txt
などを自動生成してくれます。
1npm install next-sitemap
続いて、next-sitemap.config.js
を作成します:
1/** @type {import('next-sitemap').IConfig} */
2module.exports = {
3 siteUrl: 'https://example.com',
4 generateRobotsTxt: true,
5};
6
その後、npx next-sitemap
を実行することでsitemap.xml
とrobots.txt
がpublic
ディレクトリに出力されます。
robots.txt
で指定するSitemap
のURLは絶対パスで記述robots.txt
はクローラー制御、sitemap.xml
はページ一覧の通知に使用public
ディレクトリに設置するだけで基本OKnext-sitemap
を使えば簡単に自動生成可能