Tasuke HubLearn · Solve · Grow
#Astro

JavaScriptゼロでも動く!Astro Islands Architectureで作る超高速サイト

デフォルトでJavaScriptを送信しない静的サイトジェネレーター「Astro」。Islands Architectureという革新的なアプローチで、どこまで高速化できるのか実装例とともに解説します。

時計のアイコン26 November, 2025
TH

Tasuke Hub管理人

東証プライム市場上場企業エンジニア

情報系修士卒業後、大手IT企業にてフルスタックエンジニアとして活躍。 Webアプリケーション開発からクラウドインフラ構築まで幅広い技術に精通し、 複数のプロジェクトでリードエンジニアを担当。 技術ブログやオープンソースへの貢献を通じて、日本のIT技術コミュニティに積極的に関わっている。

🎓情報系修士🏢東証プライム上場企業💻フルスタックエンジニア📝技術ブログ執筆者

Webサイトが遅い本当の理由

多くのWebサイトが遅い原因は、不要なJavaScriptを大量に送りつけているからです。

ReactやVueで構築されたサイトは、たとえ静的なコンテンツであっても、ハイドレーションのために数百KBのJavaScriptをダウンロード・実行します。 これが、特にモバイル環境でのパフォーマンスを著しく低下させています。

Astroは、この常識を根本から覆します。

ベストマッチ

最短で課題解決する一冊

この記事の内容と高い親和性が確認できたベストマッチです。早めにチェックしておきましょう。

Astroの革命的なアプローチ

デフォルトでJavaScriptゼロ

Astroでビルドされたサイトは、デフォルトでJavaScriptを一切含みません。 全てのコンテンツは純粋なHTMLとCSSで配信されます。

---
// これだけでOK。JavaScriptは生成されない
const posts = await getCollection('blog');
---

<html>
  <body>
    <h1>ブログ記事一覧</h1>
    <ul>
      {posts.map(post => (
        <li><a href={`/blog/${post.slug}`}>{post.data.title}</a></li>
      ))}
    </ul>
  </body>
</html>

結果、初期ロード時間が圧倒的に短縮され、Lighthouse スコアは常時100点近くになります。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

Islands Architecture:必要な部分だけインタラクティブに

「でも、検索機能やカルーセルなど、JavaScriptが必要な部分もあるのでは?」

そこで登場するのが Islands Architecture(アイランドアーキテクチャ) です。

コンセプト

サイト全体を「静的なHTML」の海とし、インタラクティブな部分だけを「島(Island)」として独立させます。 それぞれの島は必要になった時だけJavaScriptを読み込みます。

実装例

---
import SearchBox from '../components/SearchBox.jsx'; // React component
import StaticContent from '../components/StaticContent.astro';
---

<html>
  <body>
    <!-- 静的なコンテンツ(JavaScriptなし) -->
    <StaticContent />
    
    <!-- インタラクティブな島(client:load で明示的に指定) -->
    <SearchBox client:load />
  </body>
</html>

ローディング戦略

Astroでは、島をいつロードするかを細かく制御できます。

<!-- ページロード時にすぐ読み込む -->
<Counter client:load />

<!-- ユーザーがスクロールして見える位置に来たら読み込む -->
<HeavyChart client:visible />

<!-- ページが完全にロードされてから読み込む -->
<NewsletterForm client:idle />

<!-- メディアクエリの条件が満たされたら読み込む -->
<MobileMenu client:media="(max-width: 768px)" />

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

マルチフレームワーク対応

驚くべきことに、Astroでは同じページ内で複数のフレームワークを混在できます。

---
import ReactCounter from './ReactCounter.jsx';
import VueCalendar from './VueCalendar.vue';
import SvelteChart from './SvelteChart.svelte';
---

<html>
  <body>
    <!-- React製のカウンター -->
    <ReactCounter client:visible />
    
    <!-- Vue製のカレンダー -->
    <VueCalendar client:idle />
    
    <!-- Svelte製のチャート -->
    <SvelteChart client:load />
  </body>
</html>

それぞれの島は独立しているため、互いに干渉しません。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

実際の成果

あるECサイトがNext.jsからAstroに移行した結果:

  • 初期ロード時間: 3.2秒 → 0.8秒
  • JavaScriptサイズ: 420KB → 12KB
  • Lighthouse Performance: 68点 → 98点

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

まとめ

Astroは、「静的サイトジェネレーター」という古典的なアプローチと、「Islands Architecture」という最先端の思想を組み合わせた、次世代のフレームワークです。

特にコンテンツ重視のサイト(ブログ、マーケティングサイト、ドキュメント)においては、Astroの選択がパフォーマンスとSEOの両面で圧倒的な優位性をもたらします。

「JavaScriptフレームワークありき」の呪縛から、あなたも解放されませんか?

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

この記事をシェア

続けて読みたい記事

編集部がピックアップした関連記事で学びを広げましょう。

#JavaScript

JavaScript非同期超入門【2025年版】:Promiseとasync/awaitの基礎と落とし穴

2025/9/13
#Tauri

Tauri v2でスマホアプリ開発!React + RustでiOS/Androidアプリを作る【2025年入門】

2025/11/26
#AWS

AWS SDK JavaScript v2→v3移行完全解決ガイド【2025年実務トラブルシューティング決定版】

2025/8/17
#AI

Google Agent Development KitとAWS Strands Agentsの徹底比較

2025/11/23
#Astro

Astro 4.0実践ガイド:アイランドアーキテクチャで高速なWebサイトを構築する【2025年版】

2025/9/19
#TypeScript

TypeScript企業導入の実践的移行戦略:チーム運用とROI最大化の完全ガイド【2025年最新】

2025/8/11