Astro.jsでsitemap.xmlを生成して、サーチコンソールへ送信する方法【初心者向け】

目次

はじめに|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.mjssite本番サイトの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付きのサイトマップが生成されません。
初心者がかなりハマりやすいポイントです。

VS Codeのastro.config.mjsの画面
VS Codeのastro.config.mjsの画面。site に本番URLを入力する。

STEP3:buildする

続いてbuild(ビルド)を実行します。
buildとは、開発中のコードを公開用の完成データに変換するプロセスです。

ターミナルに以下のコマンドを入力してください。

npm run build

buildを実行すると、 /dist フォルダ内にサイトマップが生成されます。
例:

dist/
 ├ sitemap-index.xml
 └ sitemap-0.xml
VS Codeのエクスプローラー。distにXMLサイトマップが生成されている。
VS Codeのエクスプローラー。/distに2つのXMLサイトマップが生成されている。

STEP4:デプロイ後に確認する

Netlifyなどのホスティングサービスにデプロイ(完成したサイトをインターネット上に公開する)したら、ブラウザで以下へアクセスします。

https://example.com/sitemap-index.xml

XMLが表示されればOKです。

ブラウザで上でのsitemap-index.xmlの表示
ブラウザで上でのsitemap-index.xmlの表示。sitemap-0.xmlが読み込まれている。

初心者がハマりやすい点

buildしないとsitemap.xmlが生成されない

特に、WordPressだと、

  • プラグインを入れたらsitemap.xmlが自動生成
  • 管理画面で完結

という感覚があります。

しかしながら、Astroは静的サイトなので、
buildしたときに初めてsitemap.xmlが生成されます。

この違いは押さえておきましょう。

sitemap.xml が無い? → 正常です

sitemap.xmlという「ファイル名」が見当たらない。
これは、Astro初心者がかなり戸惑うポイントです。
しかし、問題はありません。

Astroでは環境によって、

  • sitemap-index.xml
  • sitemap-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

「送信されたサイトマップ」に「成功しました」と表示されたら完了です。

Googleサーチコンソールの画面
Googleサーチコンソールの画面。私のポートフォリオサイトでは、sitemap-0.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.xml
  • sitemap-0.xml

などの名前でXMLサイトマップを生成することがあります。
その場合は、生成されたファイル名に従って送信してください。

私は、sitemap.xmlが存在しないのにその名前で送信して、失敗を繰り返したことがあります。
その後、自分の間違いに気がついてsitemap-index.xmlを送信したところ、一発で解決しました。

Googleサーチコンソールへ送信しないとダメですか?

必須ではありませんが、送信することをお勧めします。

Googleのクローラーはリンクを辿って移動しますが、新しい記事や、どこからもリンクされていないページは見落とされることがあります。
「ここに全てのページが載っていますよ」という最新の地図を渡すことで、サイト内の全ページを漏れなく見つけてもらえるようになります。

サイトマップを送信しておくと、記事を新しく書いたり更新したりした際に、Googleがその変化に気づくスピードが上がります。結果として、検索結果への反映が早くなるメリットがあります。

robots.txt の作成は必須ですか?

必須ではありません。

ただし、robots.txt にサイトマップURLを書いておくことで、検索エンジンがサイト構造を把握しやすくなります。

ないからといって大きく不利になるわけではありませんが、あった方がクローラーに親切 です。
設定も数分で終わるため、設置しておくことをおすすめします。

まとめ

Astro.jsでサイトマップ設定する流れはこの通りです。

  1. @astrojs/sitemap を導入
  2. astro.config.mjs site(本番サイトURL)を設定
  3. buildする
  4. デプロイする
  5. サーチコンソールへ sitemap-index.xml を送信
  6. robots.txtを設定

WordPressと比べると少し手動が多い印象があるかもしれません。
しかし、実際にかかる時間は5〜10分ほどです。

WordPressではブラックボックス(自動)だったSEOの裏側を、Astroなら自分の手でシンプルに構築できます。
サイトマップの所在を明示するという基本を押さえるだけで、静的サイトのSEOはぐっと盤石になります。

Astro.jsでサイト公開したら、ぜひ早めに設定しておきましょう。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次