Docusaurus を Astro Starlight に移行
あなたの Docusaurus ドキュメントは誰も要求していない 200KB の React を配信しています
Why leave Docusaurus?
- Ships 200KB React runtime to render static Markdown — mobile Lighthouse scores collapse to 45–65 even with CDN caching
- Chokes on builds past 300 pages as Webpack bundles every doc into the client graph instead of treating them as static assets
- Locks you into rigid sidebar JSON that becomes a 1,200-line maintenance nightmare when your API reference grows past 50 endpoints
- Couples plugins to Docusaurus internals so tightly that swapping analytics providers requires forking the plugin API
- Hydrates every page client-side even when 95% of your docs are code blocks and prose that never need interactivity
- Forces Algolia dependency for search or leaves you building a custom solution — no lightweight built-in option exists
What you gain
- Renders pure HTML with zero JavaScript by default — your mobile scores hit 95–100 the day you deploy without image or font tuning
- Cuts Webpack build lag entirely — Vite pipeline rebuilds 500-page doc sites in under 3 seconds, not 6 minutes
- Auto-generates sidebars from your file structure — delete 800 lines of config and let folder hierarchy define navigation order
- Adds Pagefind search in one config line — fully client-side, offline-capable, 10KB bundle, no API keys or indexing queues
- Validates frontmatter at build time with Zod schemas — typos in author fields or publish dates fail CI before production
- Preserves your MDX components and imports — syntax highlighting, custom callouts, and embedded demos migrate without rewrites
Docusaurus から Astro Starlight に移行する理由
Docusaurus は React ドキュメントエコシステムに大きく貢献してきました。チームはバージョニング、検索、MDX サポートを備えたドキュメントサイトを素早くセットアップできました。しかし、すべての訪問者にフル React ランタイムを配信しており、その重さはすべての Lighthouse 監査に反映されます。
Astro Starlight はドキュメント用に特別に構築されています。デフォルトで静的 HTML をレンダリングし、明示的にオプトインしない限りゼロ JavaScript を配信し、組み込みの検索、サイドバーナビゲーション、多言語対応がボックスから出ています。MDX ファイルは直接転送できます。Astro チーム自体は移行パスをよくドキュメント化しています。
Docusaurus サイトが モバイルで遅く感じる場合、ドキュメントが増えるにつれてビルド時間が増加する場合、または静的コンテンツであるべき React のハイドレーション問題に疲れている場合 — Starlight はこれらすべてを修正します。
Docusaurus のスケール時の本当の問題
クライアント側 JavaScript のオーバーヘッド
Docusaurus は React をブラウザに配信します。すべてのページロードには React ランタイム、React DOM、クライアント側ルーティングレイヤーが含まれます。99% のページが静的テキストとコードブロックであるドキュメントサイトの場合、これは不要な重みです。モバイル Lighthouse スコアは通常 45-65 の間に落ち着きます。
ビルドパフォーマンスの低下
ドキュメントコレクションが数百ページを超えると、Docusaurus のビルドが顕著に遅くなります。Webpack バンドルはそれを悪化させます。500 ページ以上のドキュメントを持つチームは 5 分を超えるビルド時間を報告しており、これは CI/CD フィードバックループを壊します。
プラグインエコシステムのロック
Docusaurus プラグインはその内部アーキテクチャに密結合しています。カスタム remark プラグインが必要ですか?それらは機能しますが、構成層は複雑さを追加します。検索プロバイダーを交換したいですか?Docusaurus のプリセットシステム内で作業していて、可能な範囲を制限しています。
サイドバー構成の硬直性
Docusaurus サイドバー構成は category、items、type フィールドを含む特定の JSON/JS スキーマを使用します。機能しますが、深いネストを伴う大規模なドキュメントツリーの場合、構成は扱いづらくなります。セクションを並べ替えるには、構成ファイルを編集するのではなく、ファイルを移動します。
React コンポーネント依存関係
Docusaurus のカスタムコンポーネントはクライアント上でハイドレートする React コンポーネントです。対話型の例、タブ付きコンテンツ、またはカスタム警告を構築している場合、相互作用が最小限の場合でも、すべて React ハイドレーションコストを負担します。
Astro Starlight が提供するもの
デフォルトでゼロ JS
Starlight は純粋な静的 HTML と CSS を生成します。明示的に対話型アイランドを追加しない限り、フレームワークランタイムはブラウザに配信されません。ドキュメントページは 3G 接続で 200 ミリ秒以内に読み込まれます。Lighthouse スコアは一貫して 95-100 に達します。
MDX 互換性
Starlight にはデフォルトで Astro の MDX 統合が含まれています。既存の .mdx ファイルはすぐに機能します。フロントマターフィールドはクリーンにマップされます — title、description、sidebar_label はすべて Starlight に相当します。Remark と rehype プラグインは変更なしで適用されます。
組み込み Pagefind 検索
Starlight には、構築された HTML にインデックスを付けてブラウザ内で完全に実行される静的検索エンジン Pagefind が付属しています。外部サービス、API キー、Algolia クロール遅延はありません。検索はオフラインで機能し、バンドルに約 10KB を追加します。特に Algolia が必要なチームの場合、Starlight 用の公式プラグインがあります。
ファイルベースのサイドバー生成
Starlight はファイル構造からサイドバーを自動生成できます。MDX ファイルをフォルダーにドロップすると、サイドバーに表示されます。明示的な構成でまだオーバーライドできますが、デフォルトの動作はほとんどのサイドバー構成メンテナンスを削除します。
タイプセーフティを備えたコンテンツコレクション
Starlight は Astro のコンテンツコレクションを使用し、Zod スキーマに対してビルド時にフロントマターを検証します。フロントマターフィールドの誤植はデプロイ前に検出され、ユーザーに検出されません。
当社の移行プロセス
フェーズ 1: 監査と計画
Docusaurus サイトのインベントリを開始します — ページ数、カスタムコンポーネント、プラグイン使用状況、サイドバー構造、バージョニングセットアップ、カスタムテーマ。すべての Docusaurus 機能を Starlight 相当物にマップし、カスタムソリューションが必要なギャップをフラグします。
フェーズ 2: Starlight スキャフォルディング
yarn create astro --template starlight を使用して新しい Starlight プロジェクトをスピンアップし、既存サイトの構造と一致するように構成します。コンテンツコレクションをセットアップし、astro.config.mjs を構成し、現在の URL 構造をミラーリングするフォルダーヒエラルキーを確立します。
フェーズ 3: コンテンツ移行
MDX ファイルは最小限の変更で転送されます。以下を処理します:
- フロントマターのリマッピング:
sidebar_position、sidebar_label、slugのような Docusaurus 固有フィールドは Starlight のフロントマタースキーマに変換されます - インポートステートメントの更新: コンポーネントインポートは Docusaurus パスから Astro コンポーネントパスに変更されます
- 警告構文: Docusaurus は
:::note構文を使用します。Starlight は<Aside>コンポーネントまたは独自の警告構文を使用します - タブコンポーネント: Docusaurus からの
<Tabs>と<TabItem>は Starlight の組み込みタブコンポーネントに置き換えられます
フェーズ 4: サイドバー構成のリマッピング
category/items パターンを使用する Docusaurus サイドバー構成は Starlight のサイドバー構成形式に変換されます。可能な限り、ファイル構造で駆動されるサイドバーを自動生成することに切り替え、構成メンテナンスをゼロに削減します。
// Docusaurus sidebars.js
module.exports = {
docs: [
{ type: 'category', label: 'Getting Started', items: ['intro', 'installation'] },
],
};
// Starlight astro.config.mjs
starlight({
sidebar: [
{ label: 'Getting Started', autogenerate: { directory: 'getting-started' } },
],
})
フェーズ 5: プラグインと統合マッピング
Docusaurus プラグインを Astro 統合に置き換えます:
- @docusaurus/plugin-google-gtag → Astro の
@astrojs/partytownとインライン gtag - @docusaurus/plugin-sitemap →
@astrojs/sitemap - Algolia DocSearch → Pagefind(組み込み)または
starlight-docsearchプラグイン - @docusaurus/plugin-client-redirects → Astro 構成のリダイレクトまたは
astro-redirect - カスタム remark/rehype プラグイン → 直接転送、同じプラグインエコシステム
フェーズ 6: 検索移行
Algolia DocSearch を使用している場合、デフォルトで Pagefind に移行します。Pagefind はビルド時にインデックスを付け、外部サービスは不要で、あいまい一致によって即座検索を実現します。チームが特に Algolia を必要とする場合 — 分析や AI を活用した回答のため — 代わりに公式の starlight-algolia プラグインを構成します。
フェーズ 7: QA とローンチ
古いサイトと新しいサイト間の完全クロール比較を実行し、すべての URL が解決されることを確認し、検索機能をテストし、モバイルレンダリングを検証し、Lighthouse スコアが目標を満たしていることを確認します。
SEO 保存戦略
ドキュメントサイトは検索当局を蓄積しています。私たちはそのすべてを保護します:
- URL パリティ: 既存の URL 構造と完全に一致させます。Docusaurus が
/docs/getting-startedを提供した場合、Starlight は同じパスを提供します - 301 リダイレクト: URL を変更する必要がある場合、Vercel または Cloudflare でサーバーレベルのリダイレクトを構成します
- 正規タグ: すべてのページは適切な正規 URL を取得します
- サイトマップ生成:
@astrojs/sitemapは Search Console に送信される更新されたサイトマップを生成します - メタ保存: タイトルタグ、メタ説明、Open Graph タグは既存のフロントマターから転送されます
- 構造化データ: 該当する場合、ドキュメント固有の JSON-LD を追加します
タイムラインと価格
ほとんどの Docusaurus から Starlight への移行は、サイトの複雑さに応じて 1~3 週間 で完了します:
- 小規模サイト(50 ページ未満、最小限のカスタムコンポーネント): 1 週間、$3,000 から開始
- 中規模サイト(50~200 ページ、カスタムコンポーネント、バージョニング): 2 週間、$6,000 から開始
- 大規模サイト(200 ページ以上、大規模なカスタマイズ、複数のロケール): 3 週間以上、$10,000 から開始
すべてのプロジェクトは、特定の Docusaurus セットアップを評価し、正確なスコープとタイムラインを提供する無料の移行監査から開始されます。
The migration process
Discovery & Audit
We map every page, post, media file, redirect, and plugin. Nothing gets missed.
Architecture Plan
New stack designed for your content structure, SEO requirements, and performance targets.
Staged Migration
Content migrated in batches. Each batch verified before the next begins.
SEO Preservation
301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.
Launch & Monitor
DNS cutover with zero downtime. 30-day monitoring period included.
Docusaurus vs Astro Starlight
| Metric | Docusaurus | Astro Starlight |
|---|---|---|
| Lighthouse Mobile | 45-65 | 95-100 |
| TTFB | 0.8-1.8s | <0.2s |
| Build Time (200 pages) | 120-300s | 15-40s |
| Client JS Bundle | 250-400KB | 0-15KB |
| Search Setup | External Algolia config | Built-in Pagefind |
| Frontmatter Validation | None (runtime errors) | Zod schema at build time |
Common questions
既存の MDX ファイルを Astro Starlight で使用できますか?
はい。Starlight にはデフォルトで Astro の MDX 統合が含まれているため、`.mdx` ファイルはすぐに機能します。フロントマターフィールドには軽微なリマッピングが必要です — `sidebar_position` は Starlight と同等になります — Docusaurus 固有のコンポーネントインポートは更新が必要です。コンテンツ自体は書き直さずに転送されます。
Pagefind と Algolia DocSearch の比較は?
Pagefind は、ビルド時に HTML にインデックスを付け、クライアント側で完全に実行される静的検索エンジンです。約 10KB を追加し、API キーや外部サービスは不要で、オフラインで動作します。Algolia は分析と AI 機能を提供しますが、外部の依存関係を導入します。ほとんどのドキュメントサイトは Pagefind で十分です。
移行後、既存の URL が破損しますか?
移行中に既存の URL 構造と完全に一致させます。Starlight はファイルベースのルーティングを使用するため、コンテンツを整理して同一のパスを作成します。URL を変更する必要がある場合、ホスティングレベルで 301 リダイレクトを構成して、検索ランキングを保存し、リンク切れを防ぎます。
Docusaurus から Starlight への移行にはどのくらいの時間がかかりますか?
50 ページ未満の小規模サイトは通常 1 週間で完了します。50~200 ページのカスタムコンポーネントを持つ中規模サイトは約 2 週間かかります。200 ページ以上、バージョニング、複数のロケールを備えた大規模サイトは 3 週間以上必要な場合があります。無料の移行監査後に正確なタイムラインを提供します。
移行中に Docusaurus プラグインはどうなりますか?
各 Docusaurus プラグインは Astro 統合または Starlight プラグインにマップされます。サイトマップ、Google Analytics、リダイレクト、検索プラグインはすべて直接相当物があります。カスタム remark および rehype プラグインは変更なしで転送されます — Astro は同じ unified/remark エコシステムを使用します。移行計画で各マッピングをドキュメント化します。
Astro Starlight で React コンポーネントを保持できますか?
Astro は公式 React 統合を通じて React コンポーネントをサポートしています。対話型の React コンポーネントは Astro アイランドとして機能 — 必要な場合のみハイドレートされます。静的な React コンポーネントは Astro コンポーネントに変換でき、ゼロクライアント側 JavaScript を配信できます。監査中に各コンポーネントを評価し、最適なアプローチを推奨します。
Ready to migrate?
Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.
Let's build
something together.
Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.