背景の粒子やノイズは写真として保存する方法と、SVGフィルターで生成する方法があります。当サイトの180px四方のノイズSVGをPNGへレンダリングし、容量を比較しました。

この記事の目次
  1. 検証条件
  2. 計測結果
  3. 単純な生成パターンはSVGが小さい
  4. 描画負荷との交換になる
  5. 440bytesの代わりに発生する処理
  6. この検証で確かめたかったこと
  7. 一次情報として残したもの
  8. 結果を読むときの注意
  9. 実際の制作でどう判断したか
  10. 同じ確認を再現する手順
  11. 次に確認する項目
  12. CSS・素材記事の公開前チェック
  13. まとめ

検証条件

  • 対象SVGはfeTurbulenceを使った180×180pxの自作素材
  • Sharpで同寸法のPNGへレンダリング
  • SVGソースとPNGのファイル容量を取得
  • ブラウザでの描画負荷は今回の比較対象外

計測結果

ノイズ素材の形式別容量
形式容量比率
SVG 440 bytes1.0
PNG 43,486 bytes約98.8倍

単純な生成パターンはSVGが小さい

SVGは画素を一つずつ保存せず、ノイズを作る命令をテキストで記述します。今回のような単純な粒子パターンでは、PNGより大幅に小さくなりました。

拡大しても解像度不足にならず、同じ素材を背景として繰り返せる点も利点です。

描画負荷との交換になる

ファイルが小さくても、SVGフィルターはブラウザ側で描画処理が必要です。複雑なフィルターを大きな範囲へ適用すると、低性能端末ではスクロールやアニメーションへ影響する可能性があります。

今回は小さなタイル画像として使用し、不透明度を下げて固定背景へ重ねています。容量比較と実機の動作確認は分けて考える必要があります。

440bytesの代わりに発生する処理

SVGはfeTurbulenceの命令を保存するため440bytesに収まりました。PNGは完成した32,400画素を保持するため43,486bytesです。単純な生成規則ほど、画素を保存するより命令を保存する方が小さくなります。

一方、SVGフィルターはブラウザが模様を生成します。固定された小さなタイルなら利点が大きいものの、広い領域へ動かしながら重ねる用途では描画負荷が増えます。転送量と端末処理のどちらを節約するかを分けて判断します。

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

今回の出発点は「単純なノイズ表現を命令として持つSVGと画素として持つPNGで容量差がどれほど出るか」という疑問です。Web制作の記事では推奨値だけが独り歩きしやすく、条件が異なる結果を並べても判断材料になりません。そこで対象を当サイトの実ファイルへ限定し、変更した項目と固定した項目を分けました。数値が小さいか大きいかを競うのではなく、現在の構成で次の作業を決められるかを目的にしています。

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

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

自作SVGを180px四方のPNGへレンダリングし、二つの実ファイルを比較したことを記録の中心にしました。記事内の表は、その記録から必要な値だけを転記しています。一般的な解説を先に置いて数字を当てはめるのではなく、先に対象ファイルを決め、取得できた値から考察を書く順序です。元データと公開本文の数字が食い違わないよう、単位はbyte、px、件数など測定時の形式をできるだけ保ちました。

「ノイズ素材をSVGとPNGで比較。440bytesと43,486bytesで約99倍の差」の計測日は2026年6月10日です。Astro 5で静的出力した時点のファイルを対象としているため、素材やテンプレートを変更すれば値も変わります。この記事は永続的な基準値ではなく、CSS・素材の状態を残したスナップショットです。再測定で結論が変わる場合は、更新日と変更理由を追記します。

結果を読むときの注意

ファイル容量だけの比較であり、GPU負荷、スクロール時の再描画、電力消費は測定していないという限界があります。一つの指標だけで「速い」「使いやすい」「正しい」と断定しないことが重要です。たとえば容量が小さくても表示が崩れれば採用できず、規格上の目安を満たしても実際の操作が難しい場合があります。表の値は判断の入口であり、最終的な利用体験の代わりではありません。

このCSS・素材検証で差が出なかった場合も、作業の優先度を下げる根拠になります。反対に大きな差が出た場合は、自作SVGを180px四方のPNGへレンダリングし、二つの実ファイルを比較したという記録へ戻り、条件の混入や数え方を再確認します。都合のよい値だけを採用せず、対象、式、除外項目を本文へ残すのはそのためです。

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

この結果を受け、当サイトでは「小面積の装飾にはSVGノイズを使い、動作が重い場合は静止画像へ切り替える」と判断しました。数値を掲載するだけではサイト改善につながらないため、CSS、画像の書き出し、記事テンプレート、公開前チェックのいずれかへ反映します。採用理由を文章にしておくと、後から別の設定へ変えるときにも、以前の判断を検証できます。

ただし「小面積の装飾にはSVGノイズを使い、動作が重い場合は静止画像へ切り替える」という判断を全ページへ一律適用するわけではありません。今回の対象と、トップ、記事、固定ページでは利用目的が異なります。ファイル容量だけの比較であり、GPU負荷、スクロール時の再描画、電力消費は測定していないという限界もあるため、共通ルールを作ったうえで例外の理由を残す方が、数値だけを守るより保守しやすいと考えています。

同じ確認を再現する手順

再検証するときは、同じSVGソースを同寸法PNGへ変換し、ソースと出力のbyte数を取得するのが基本手順です。最初に対象ファイルを複製するかビルド結果を保存し、変更前の値を残します。次に一度に変更する条件を絞り、同じ単位で変更後を取得します。最後に差分を計算し、画面上の見え方や操作も確認します。複数の変更を同時に入れると、どの変更が結果へ効いたのか分からなくなります。

自分のサイトで「ノイズ素材をSVGとPNGで比較。440bytesと43,486bytesで約99倍の差」と同じ確認を行っても、同じ数字になる必要はありません。重要なのは、同じSVGソースを同寸法PNGへ変換し、ソースと出力のbyte数を取得するという条件を変更前後で揃えることです。OS、ツールの版、画面幅、対象URLなど結果へ影響する情報を残せば、数値が異なっても比較可能な一次記録になります。

次に確認する項目

今回扱わなかった要素は、ファイル容量だけの比較であり、GPU負荷、スクロール時の再描画、電力消費は測定していないという点です。次回は対象を広げるのではなく、この不足を一つずつ切り分けます。ファイル容量の次に表示時間、寸法の次に実機操作というように、異なる種類の指標を組み合わせると、単独の数値による誤解を減らせます。

「ノイズ素材をSVGとPNGで比較。440bytesと43,486bytesで約99倍の差」を再現できないという連絡や数値の指摘が届いた場合は、自作SVGを180px四方のPNGへレンダリングし、二つの実ファイルを比較したという一次記録と本文を照合します。結論へ影響する修正では更新日を変更し、何が変わったかを残します。CSS・素材の記事を完成品として固定せず、サイトの変更とともに追試できる記録として維持します。

CSS・素材記事の公開前チェック

CSS・素材の記事では、個別の結果に加えて「装飾の容量と描画負荷を抑えながら、サイト固有の見た目を維持できるか」を公開前の共通確認点にしています。今回の表だけが良好でも、関連する画面やファイルへ悪影響があれば採用しません。変更前の状態を残し、記事で扱った指標と実際の利用場面を往復して確認します。

このチェックは「ノイズ素材をSVGとPNGで比較。440bytesと43,486bytesで約99倍の差」の文字数を増やすためではなく、測定から公開判断までの抜けを減らすために使います。ファイル容量と描画処理を分けて考える、共通化で責務が混ざらないか見る、低性能端末でスクロールを確認するを確認し、自動検査だけでは判断できない箇所を画面と文章で読み直します。読者が追試できない説明なら、数値が基準内でも公開しません。

CSS・素材の記事を更新するときは、結論だけを新しい値へ置き換えず、検証条件、表、本文の参照値、タイトル、descriptionを順番に照合します。以前の手順を再現できなくなった場合は、ファイル容量だけの比較であり、GPU負荷、スクロール時の再描画、電力消費は測定していないという制約がどう変わったかも記録します。どの変更で結果が動いたかを追える状態を優先します。

  • ファイル容量と描画処理を分けて考える
  • 共通化で責務が混ざらないか見る
  • 低性能端末でスクロールを確認する

まとめ

今回の単純なノイズではSVGが440bytesに収まりました。ただし、軽いファイルが必ず軽い描画になるわけではないため、複雑な表現では端末上の動作も確認します。