はじめに|Astro.js初心者が迷わずsitemap.xmlを生成、送信するために
Astro.jsでサイトを公開したあと、意外と迷うのが サイトマップ(sitemap.xml)の設定です。
WordPressだとプラグインを入れれば自動で生成されますが、Astroではある程度自分で設定する必要があります。
Astroの公式ドキュメントに説明は載っていますが、まだ該当ページの日本語訳はなく(2026年5月現在)、初めはつまずきやすいと思います。
この記事では、Astro.jsでサイトマップを生成し、Googleサーチコンソールへ送信するまでの流れを、初めてAstroを触る方でもわかりやすいようにまとめてみます。
この記事の対象者
次のような方を想定しています。
- HTML/CSSは、実案件レベル
- JavaScriptについては、WebサイトUI実装ができる
- WordPress案件経験あり
- Astro.jsは触り始めたばかり、またはこれから触ってみたい
特に、WordPress経験者ほどハマりやすいポイントもあるので、そのあたりも補足します。
また、ターミナル(黒い画面)が苦手な方も大丈夫です。
今回は2つのコマンドをコピペするだけで進められます。
sitemap.xmlとは?
サイトマップには、XMLサイトマップとHTMLサイトマップの2種類があります。
この記事で取り上げるsitemap.xmlは、XMLサイトマップのことで、
検索エンジンに対して
「このサイトには、こういうページがありますよ」
と伝えるXMLファイルです。
※これに対して、HTMLサイトマップは、訪問ユーザー向けにWebサイトの全ページや主要コンテンツをカテゴリー別にリスト化し、リンクをまとめた「フロアガイド」のようなページです。
sitemap.xml設定のメリット
知っている方も多いとは思いますが、まずは前提の確認です。
sitemap.xmlを設定しておくことで、
- 新規公開ページを見つけてもらいやすい
- クロール効率が上がる
- インデックスの補助になる
などのメリットがあります。
SEOで魔法のように順位が上がるものではありませんが、公開サイトの基本設定と考えて差し支えありません。
Astro.jsでsitemapを生成する手順
では、さっそくAstro.jsでsitemap.xmlを生成してみましょう。
STEP1:パッケージをインストール
まずは、Astro公式の@astrojs/sitemapを導入します。
ターミナルに以下のコマンドを入力します。
npx astro add sitemap
このコマンドで、
@astrojs/sitemapのインストール- Astro側の基本設定追加
まで自動で行われます。
STEP2:astro.config.mjs にsite(本番サイトURL)を設定する
/astro.config.mjsのsiteに本番サイトのURLを設定します。
import { defineConfig } from 'astro/config'
import sitemap from '@astrojs/sitemap'
export default defineConfig({
site: 'https://example.com',
integrations: [sitemap()]
});
【重要】site の設定は必須です!
site: 'https://example.com'
ここを設定しないと、正しいURL付きのサイトマップが生成されません。
初心者がかなりハマりやすいポイントです。

STEP3:buildする
続いてbuild(ビルド)を実行します。
buildとは、開発中のコードを公開用の完成データに変換するプロセスです。
ターミナルに以下のコマンドを入力してください。
npm run build
buildを実行すると、 /dist フォルダ内にサイトマップが生成されます。
例:
dist/
├ sitemap-index.xml
└ sitemap-0.xml

STEP4:デプロイ後に確認する
Netlifyなどのホスティングサービスにデプロイ(完成したサイトをインターネット上に公開する)したら、ブラウザで以下へアクセスします。
https://example.com/sitemap-index.xml
XMLが表示されればOKです。

初心者がハマりやすい点
buildしないとsitemap.xmlが生成されない
特に、WordPressだと、
- プラグインを入れたら
sitemap.xmlが自動生成 - 管理画面で完結
という感覚があります。
しかしながら、Astroは静的サイトなので、
buildしたときに初めてsitemap.xmlが生成されます。
この違いは押さえておきましょう。
sitemap.xml が無い? → 正常です
sitemap.xmlという「ファイル名」が見当たらない。
これは、Astro初心者がかなり戸惑うポイントです。
しかし、問題はありません。
Astroでは環境によって、
sitemap-index.xmlsitemap-0.xml
などのファイル名でXMLサイトマップが生成されることがあります。
sitemap-index.xml と sitemap-0.xml の違い
このあたりは難しければ、読み流してもかまいません。
後述しますが、サーチコンソールに送信するのはsitemap-index.xmlの方だけでよい、ということさえ押さえておけば十分かと思います。
一応、説明します。
sitemap-index.xml
親ファイルです。
<sitemapindex>
<sitemap>
<loc>https://example.com/sitemap-0.xml</loc>
</sitemap>
</sitemapindex>
sitemap-0.xml
実際のURL一覧です。
<urlset>
<url>
<loc>https://example.com/</loc>
</url>
</urlset>
サーチコンソールへ送信する
基本的な手順
Googleサーチコンソールにログインし、「サイトマップ」メニューを開きます。
「新しいサイトマップの追加」欄に以下を入力して、「送信」をクリック。
sitemap-index.xml
「送信されたサイトマップ」に「成功しました」と表示されたら完了です。

sitemap-0.xml も送るべき?
基本的には不要です。
sitemap-index.xml の中に sitemap-0.xml が含まれているため、Googleは自動で読み取ります。
つまり、送信するのは indexファイルだけでOK です。
※心配な方は両方送信しても大丈夫です。
「取得できませんでした」とエラーが出たら?
サーチコンソールでXMLサイトマップを送信すると、
「取得できませんでした」
とエラーが表示されることがあります。
しかし、焦らなくて大丈夫です。
よくある原因は、だいたい以下の通りです。
- Google側の反映待ち
- 一時的な取得失敗
- キャッシュ
- 公開直後のタイムラグ
実際、私も「取得できませんでした」と表示されたことがありましたが、時間を置いたら正常になりました。
しばらく様子を見ても解決しない場合は、落ち着いて再送信してみてください。
robots.txt も一緒に設定しておく
最後に、/public/robots.txtを作成します。
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap-index.xml
これで検索エンジンにサイトマップの場所を伝えられます。
よくある質問
- sitemap.xml というファイル名で送信してもいいですか?
-
sitemap.xmlという名前のファイルが生成されていれば、それを送信して問題ありません。
ただし、Astroでは環境によって、sitemap-index.xmlsitemap-0.xml
などの名前でXMLサイトマップを生成することがあります。
その場合は、生成されたファイル名に従って送信してください。私は、
sitemap.xmlが存在しないのにその名前で送信して、失敗を繰り返したことがあります。
その後、自分の間違いに気がついてsitemap-index.xmlを送信したところ、一発で解決しました。 - Googleサーチコンソールへ送信しないとダメですか?
-
必須ではありませんが、送信することをお勧めします。
Googleのクローラーはリンクを辿って移動しますが、新しい記事や、どこからもリンクされていないページは見落とされることがあります。
「ここに全てのページが載っていますよ」という最新の地図を渡すことで、サイト内の全ページを漏れなく見つけてもらえるようになります。サイトマップを送信しておくと、記事を新しく書いたり更新したりした際に、Googleがその変化に気づくスピードが上がります。結果として、検索結果への反映が早くなるメリットがあります。
- robots.txt の作成は必須ですか?
-
必須ではありません。
ただし、
robots.txtにサイトマップURLを書いておくことで、検索エンジンがサイト構造を把握しやすくなります。ないからといって大きく不利になるわけではありませんが、あった方がクローラーに親切 です。
設定も数分で終わるため、設置しておくことをおすすめします。
まとめ
Astro.jsでサイトマップ設定する流れはこの通りです。
@astrojs/sitemapを導入astro.config.mjsにsite(本番サイトURL)を設定- buildする
- デプロイする
- サーチコンソールへ
sitemap-index.xmlを送信 robots.txtを設定
WordPressと比べると少し手動が多い印象があるかもしれません。
しかし、実際にかかる時間は5〜10分ほどです。
WordPressではブラックボックス(自動)だったSEOの裏側を、Astroなら自分の手でシンプルに構築できます。
サイトマップの所在を明示するという基本を押さえるだけで、静的サイトのSEOはぐっと盤石になります。
Astro.jsでサイト公開したら、ぜひ早めに設定しておきましょう。
