記事が増えるとサイト全体のファイル数は増えますが、閲覧時に全ページを一括取得するわけではありません。Astroで現在のサイトを静的ビルドし、出力内容を確認しました。

この記事の目次
  1. 検証条件
  2. 計測結果
  3. 記事本文はHTMLとして出力される
  4. 0本はサイト全体のJavaScript不使用を意味しない
  5. 50ページでも一括ダウンロードにはならない
  6. この検証で確かめたかったこと
  7. 一次情報として残したもの
  8. 結果を読むときの注意
  9. 実際の制作でどう判断したか
  10. 同じ確認を再現する手順
  11. 次に確認する項目
  12. 静的サイト記事の公開前チェック
  13. まとめ

検証条件

  • Astro 5のoutput: staticでビルド
  • dist以下のHTMLとJavaScriptファイルを再帰的に集計
  • HTMLは謎解き作品とメディアページを含む
  • 画像・CSS容量は別ファイルのため表から除外

計測結果

静的ビルドの出力結果
項目結果補足
HTMLページ 50ページ記事・固定・作品を含む
HTML合計 612,623 bytes約598.3KiB
トップHTML 10,938 bytes非圧縮
共有JS 0ファイルメディア側

記事本文はHTMLとして出力される

記事の見出しや本文はビルド時にHTMLへ書き込まれます。閲覧時にJavaScriptで本文を取得・生成する構成ではないため、スクリプトが無効でも記事を読めます。

検索エンジンや読み上げ環境にも本文構造がそのまま渡る点は、記事サイトと相性がよいと考えています。

0本はサイト全体のJavaScript不使用を意味しない

今回の集計時点で、メディア用ページにはAstroが生成する共有JavaScriptファイルがありませんでした。ただしAdSenseの外部スクリプトは別ドメインから読み込まれます。

また、謎解きページにはHTML内へインライン化された操作用スクリプトがあります。ファイル数だけで負荷を判断せず、外部通信やインラインコードも確認する必要があります。

50ページでも一括ダウンロードにはならない

HTML合計は約598KBですが、閲覧者がトップを開いた時点で50ページ分を取得するわけではありません。各URLは独立したHTMLとして出力され、開いたページと共通素材だけが通信対象になります。

共有JavaScriptが0本でも、AdSenseの外部スクリプトや作品ページのインライン処理は存在します。「JSファイルがない」と「JavaScriptが一切動かない」は異なるため、記事では集計範囲を明記しました。

この検証で確かめたかったこと

今回の出発点は「記事と作品を含むAstroサイトが、静的ビルド後にどのようなファイル構成になるか」という疑問です。Web制作の記事では推奨値だけが独り歩きしやすく、条件が異なる結果を並べても判断材料になりません。そこで対象を当サイトの実ファイルへ限定し、変更した項目と固定した項目を分けました。数値が小さいか大きいかを競うのではなく、現在の構成で次の作業を決められるかを目的にしています。

想定している読者は、Astroの静的出力が記事サイトに適するか実ファイルから確かめたい人です。完成済みの大規模サイトではなく、少数の記事や画像から始める個人サイトでも追試できるよう、特別な計測サービスを前提にしていません。結果だけを持ち帰るのではなく、対象の選び方、単位、除外した要素まで確認すると、自分の環境との差を整理しやすくなります。

一次情報として残したもの

dist以下を再帰的に集計し、HTMLページ数、合計byte、共有JavaScriptファイル数を取得したことを記録の中心にしました。記事内の表は、その記録から必要な値だけを転記しています。一般的な解説を先に置いて数字を当てはめるのではなく、先に対象ファイルを決め、取得できた値から考察を書く順序です。元データと公開本文の数字が食い違わないよう、単位はbyte、px、件数など測定時の形式をできるだけ保ちました。

「Astro静的ビルドを計測。50ページでHTML約598KB、共有JSは0本」の計測日は2026年6月10日です。Astro 5で静的出力した時点のファイルを対象としているため、素材やテンプレートを変更すれば値も変わります。この記事は永続的な基準値ではなく、静的サイトの状態を残したスナップショットです。再測定で結論が変わる場合は、更新日と変更理由を追記します。

結果を読むときの注意

外部配信される広告スクリプトとHTML内のインラインスクリプトは共有JSの本数に含まれないという限界があります。一つの指標だけで「速い」「使いやすい」「正しい」と断定しないことが重要です。たとえば容量が小さくても表示が崩れれば採用できず、規格上の目安を満たしても実際の操作が難しい場合があります。表の値は判断の入口であり、最終的な利用体験の代わりではありません。

この静的サイト検証で差が出なかった場合も、作業の優先度を下げる根拠になります。反対に大きな差が出た場合は、dist以下を再帰的に集計し、HTMLページ数、合計byte、共有JavaScriptファイル数を取得したという記録へ戻り、条件の混入や数え方を再確認します。都合のよい値だけを採用せず、対象、式、除外項目を本文へ残すのはそのためです。

実際の制作でどう判断したか

この結果を受け、当サイトでは「記事本文は静的HTMLを維持し、閲覧に不要なクライアントJavaScriptを追加しない」と判断しました。数値を掲載するだけではサイト改善につながらないため、CSS、画像の書き出し、記事テンプレート、公開前チェックのいずれかへ反映します。採用理由を文章にしておくと、後から別の設定へ変えるときにも、以前の判断を検証できます。

ただし「記事本文は静的HTMLを維持し、閲覧に不要なクライアントJavaScriptを追加しない」という判断を全ページへ一律適用するわけではありません。今回の対象と、トップ、記事、固定ページでは利用目的が異なります。外部配信される広告スクリプトとHTML内のインラインスクリプトは共有JSの本数に含まれないという限界もあるため、共通ルールを作ったうえで例外の理由を残す方が、数値だけを守るより保守しやすいと考えています。

同じ確認を再現する手順

再検証するときは、依存関係を固定した状態でnpm run buildを実行し、distの拡張子別ファイルを数えるのが基本手順です。最初に対象ファイルを複製するかビルド結果を保存し、変更前の値を残します。次に一度に変更する条件を絞り、同じ単位で変更後を取得します。最後に差分を計算し、画面上の見え方や操作も確認します。複数の変更を同時に入れると、どの変更が結果へ効いたのか分からなくなります。

自分のサイトで「Astro静的ビルドを計測。50ページでHTML約598KB、共有JSは0本」と同じ確認を行っても、同じ数字になる必要はありません。重要なのは、依存関係を固定した状態でnpm run buildを実行し、distの拡張子別ファイルを数えるという条件を変更前後で揃えることです。OS、ツールの版、画面幅、対象URLなど結果へ影響する情報を残せば、数値が異なっても比較可能な一次記録になります。

次に確認する項目

今回扱わなかった要素は、外部配信される広告スクリプトとHTML内のインラインスクリプトは共有JSの本数に含まれないという点です。次回は対象を広げるのではなく、この不足を一つずつ切り分けます。ファイル容量の次に表示時間、寸法の次に実機操作というように、異なる種類の指標を組み合わせると、単独の数値による誤解を減らせます。

「Astro静的ビルドを計測。50ページでHTML約598KB、共有JSは0本」を再現できないという連絡や数値の指摘が届いた場合は、dist以下を再帰的に集計し、HTMLページ数、合計byte、共有JavaScriptファイル数を取得したという一次記録と本文を照合します。結論へ影響する修正では更新日を変更し、何が変わったかを残します。静的サイトの記事を完成品として固定せず、サイトの変更とともに追試できる記録として維持します。

静的サイト記事の公開前チェック

静的サイトの記事では、個別の結果に加えて「ビルド結果だけで本文を読め、公開URL、メタデータ、配信ファイルが一貫しているか」を公開前の共通確認点にしています。今回の表だけが良好でも、関連する画面やファイルへ悪影響があれば採用しません。変更前の状態を残し、記事で扱った指標と実際の利用場面を往復して確認します。

このチェックは「Astro静的ビルドを計測。50ページでHTML約598KB、共有JSは0本」の文字数を増やすためではなく、測定から公開判断までの抜けを減らすために使います。distの実ファイルを検査する、本番ドメインの絶対URLを確認する、公開後のHTTP応答もローカル結果と照合するを確認し、自動検査だけでは判断できない箇所を画面と文章で読み直します。読者が追試できない説明なら、数値が基準内でも公開しません。

静的サイトの記事を更新するときは、結論だけを新しい値へ置き換えず、検証条件、表、本文の参照値、タイトル、descriptionを順番に照合します。以前の手順を再現できなくなった場合は、外部配信される広告スクリプトとHTML内のインラインスクリプトは共有JSの本数に含まれないという制約がどう変わったかも記録します。どの変更で結果が動いたかを追える状態を優先します。

  • distの実ファイルを検査する
  • 本番ドメインの絶対URLを確認する
  • 公開後のHTTP応答もローカル結果と照合する

まとめ

記事本文を静的HTMLとして配信でき、メディア表示に必要な共有JSは0本でした。今後機能を追加する際も、記事閲覧に不要なJavaScriptを増やさない方針です。