Webサイトでロゴやアイコンを使うとき、拡大すると画像がぼやけて困った経験はありませんか?
実は、SVGを使えばどんなサイズでも美しく表示できます。 2025年現在、全世界の約60%のWebサイトがSVGを活用しており、Webデザインの標準技術となっています。
本記事では、Web制作歴10年以上の筆者が、SVGの基本からメリット・デメリット、実際の使い方まで初心者向けに解説します。
この記事を読めば、SVGを使うべき場面と避けるべき場面が明確に分かり、適切な画像形式を選択できるようになります。
SVGとは?基本を理解しよう
SVGの定義
SVG(Scalable Vector Graphics) は、XMLベースのベクター画像形式です。
一般的な画像形式(PNG、JPEG)がピクセル(点)の集合体なのに対し、SVGは数式で図形を表現します。
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" fill="#3b82f6" />
</svg>
上記のコードは、青い円を表示するSVGの例です。<circle>タグで「中心座標(50,50)、半径40の円」を数式的に定義しています。
SVGが注目される理由
2025年現在、SVGが広く使われる理由は3つあります:
- レスポンシブデザインへの完全対応 – スマホからPCまで、あらゆる画面サイズで美しく表示
- ファイルサイズの軽量化 – シンプルな図形なら数KB以下で済む
- CSSやJavaScriptでの動的制御 – 色変更やアニメーションが簡単
当サイトでも、ロゴとアイコンをすべてSVG化したことで、ページ読み込み速度が約20%向上しました。
ラスター画像 vs ベクター画像の違い
画像形式には大きく分けて「ラスター画像」と「ベクター画像」の2種類があります。
ラスター画像(PNG、JPEG)の特徴
ラスター画像は、ピクセル(点)の集合で画像を表現します。
- 代表的な形式: PNG、JPEG、GIF、WebP
- メリット: 写真のような複雑な表現が得意
- デメリット: 拡大するとぼやける(ジャギーが発生)
例えば、100px × 100pxの画像を200px × 200pxに拡大すると、元のピクセル情報を引き伸ばすため画質が劣化します。
ベクター画像(SVG)の特徴
ベクター画像は、数式(座標、線、曲線)で図形を表現します。
- 代表的な形式: SVG、AI、EPS
- メリット: 拡大・縮小しても画質が劣化しない
- デメリット: 写真のような複雑な表現には不向き
SVGは拡大時に数式を再計算するため、どんなサイズでも美しく表示されます。
使い分けの基準
| 用途 | 推奨形式 | 理由 |
|---|---|---|
| ロゴ、アイコン | SVG | 拡大縮小が多い、色変更が必要 |
| グラフ、図形 | SVG | シンプルな形状、アニメーション対応 |
| 写真、風景 | JPEG、WebP | 複雑な色彩表現が必要 |
| スクリーンショット | PNG | 文字の可読性が重要 |
| アニメーション | SVG、GIF | SVGは軽量、GIFは簡単 |
ラスター画像 vs ベクター画像の違い
ラスター画像
ピクセル(点)の集合体
形式
PNG, JPEG, GIF, WebP
メリット
写真など複雑な表現が得意
制作ツールが豊富
デメリット
拡大するとぼやける
ファイルサイズが大きめ
ベクター画像(SVG)
数式(座標・線)で定義
形式
SVG, AI, EPS
メリット
拡大しても画質劣化なし
ファイルサイズが小さい
CSSで色変更可能
デメリット
複雑な画像には不向き
専用ツールが必要
シンプルな図形ならSVG、複雑な画像ならPNG/JPEGを選びましょう
画像形式の選び方フローチャート
画像を表示したい
↓
写真や複雑な画像ですか?
はい →
いいえ →
↓
JPEG / PNG
推奨用途
写真・風景画像
スクリーンショット
複雑なイラスト
↓
ロゴ・アイコン・図形?
はい → SVG
↓
SVGがおすすめ
SVGのメリット
拡大・縮小しても画質劣化なし
ファイルサイズが小さい
CSSで色を自由に変更できる
アニメーションが簡単
SEO効果も期待できる
迷ったら:シンプルな図形ならSVG、複雑な画像ならJPEG/PNGを選びましょう
SVGのメリット5つ
1. 拡大・縮小しても画質が劣化しない
SVGは数式で定義されるため、どんなに拡大しても画質が劣化しません。
実例:レスポンシブデザインでの活用
当サイトのロゴは、スマホでは40px、タブレットでは60px、PCでは80pxで表示していますが、すべて同じSVGファイルを使っています。
<!-- 1つのSVGファイルで全デバイス対応 -->
<img src="logo.svg" alt="サイトロゴ" style="width: 100%; max-width: 200px;">
PNGで同じことをする場合、高解像度用に2倍サイズの画像を用意する必要がありますが、SVGなら1ファイルで完結します。
2. ファイルサイズが小さい
シンプルな図形の場合、SVGはPNGの1/10以下のサイズになることもあります。
比較例:シンプルなロゴの場合
- PNG(200px × 200px): 約15KB
- SVG(同じデザイン): 約2KB
複雑なデザインではSVGの方が大きくなることもありますが、ロゴやアイコンではSVGの方が圧倒的に軽量です。
3. CSSで色やサイズを自由に変更できる
SVGはCSSで簡単にスタイルを変更できます。
<svg class="icon" width="24" height="24" viewBox="0 0 24 24">
<path d="M12 2L2 7v10c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V7l-10-5z"/>
</svg>
<style>
.icon {
fill: #3b82f6; /* 青色 */
}
.icon:hover {
fill: #ef4444; /* ホバー時は赤色 */
}
</style>
PNG画像でこれをやるには、色違いの画像を複数用意する必要がありますが、SVGなら1ファイルで済みます。
4. SEO効果が期待できる
SVGはテキストベースなので、検索エンジンがコンテンツを読み取れます。
<svg>
<title>会社ロゴ - 株式会社サンプル</title>
<desc>青いシンボルマークと社名のロゴデザイン</desc>
<circle cx="50" cy="50" r="40" />
</svg>
<title>や<desc>タグで説明を追加することで、画像検索でのヒット率向上が期待できます。
5. アニメーションが簡単に実装できる
SVGはCSSやJavaScriptで動的にアニメーションさせられます。
<svg class="loading" width="50" height="50" viewBox="0 0 50 50">
<circle cx="25" cy="25" r="20" stroke="#3b82f6" stroke-width="4" fill="none"/>
</svg>
<style>
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.loading {
animation: rotate 1s linear infinite;
}
</style>
GIFアニメーションと違い、SVGアニメーションは軽量で滑らかです。
SVGのデメリット3つ
1. 複雑な画像には不向き
写真や複雑なイラストをSVG化すると、ファイルサイズが巨大になります。
失敗例:風景写真をSVG化
- 元のJPEG: 150KB
- SVG化後: 2.5MB(約17倍)
SVGは数式で表現するため、色数が多く複雑な画像ほどファイルサイズが増加します。
2. 古いブラウザでは表示されない場合がある
IE8以前のブラウザではSVGが表示されません。ただし、2025年現在では全ブラウザの99%以上がSVGに対応しており、実質的に問題ありません。
3. 制作に専用ツールが必要
SVGを手書きでコーディングするのは現実的ではないため、以下のようなツールが必要です:
- Adobe Illustrator – プロ向け、高機能(有料)
- Figma – Web制作向け、共同編集可能(基本無料)
- Inkscape – 完全無料のオープンソース
当サイトでは、Figmaでアイコンを作成し、SVGでエクスポートしています。
SVGの使い方|実装方法4パターン
SVGをWebページに表示する方法は4つあります。
方法1: imgタグで読み込む(最も簡単)
最も一般的な方法です。 画像ファイルとして扱えるため、初心者にもおすすめです。
<img src="logo.svg" alt="会社ロゴ" width="200" height="80">
メリット: 簡単、キャッシュが効く
デメリット: CSSで色変更ができない
方法2: インラインSVGとして直接記述(最も柔軟)
HTMLに直接SVGコードを埋め込む方法です。CSSやJavaScriptで自由に制御できます。
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" fill="#3b82f6" />
</svg>
メリット: CSSで色変更可能、アニメーション可能
デメリット: HTMLが長くなる、キャッシュが効かない
方法3: CSSの背景画像として使用
.icon {
width: 24px;
height: 24px;
background-image: url('icon.svg');
background-size: cover;
}
メリット: HTMLをシンプルに保てる
デメリット: 色変更が難しい
方法4: objectタグで読み込む
<object data="logo.svg" type="image/svg+xml" width="200" height="80">
<!-- フォールバック用のPNG画像 -->
<img src="logo.png" alt="会社ロゴ">
</object>
メリット: JavaScriptでSVG内部を操作可能
デメリット: 少し複雑
どの方法を選ぶべきか?
| 用途 | 推奨方法 | 理由 |
|---|---|---|
| ロゴ、静的アイコン | imgタグ | シンプルで十分 |
| ホバー時に色を変えたい | インラインSVG | CSSで制御可能 |
| アニメーションさせたい | インラインSVG | JavaScript制御可能 |
| 大量のアイコン | CSSスプライト | リクエスト削減 |
SVGファイルの作り方・エクスポート方法
Figmaでの作成手順(推奨)
Figmaは無料で使えるデザインツールで、SVG作成に最適です。
- 図形を作成:ツールバーから長方形、円、ペンツールなどを選択
- デザインを整える:色、サイズ、配置を調整
- エクスポート:右パネルから「Export」→「SVG」を選択
最適化のポイント:
- エクスポート時に「Outline stroke」にチェック(線を塗りに変換)
- 不要なグループは事前に削除
- アートボードサイズを適切に設定
Adobe Illustratorでの作成手順
- 新規ドキュメント作成:Web用プリセットを選択
- 図形を作成:ペンツールやシェイプツールで描画
- エクスポート:「ファイル」→「書き出し」→「SVG」
SVGの最適化(重要)
エクスポートしたSVGは、不要なコードが含まれていることが多いため、最適化が必要です。
おすすめツール:SVGOMG(https://jakearchibald.github.io/svgomg/)
- オンラインで無料で使える
- ドラッグ&ドロップするだけ
- 平均30-50%のファイルサイズ削減
実例:最適化前 vs 最適化後
<!-- 最適化前(Illustratorエクスポート直後): 856バイト -->
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
<circle cx="50" cy="50" r="40" fill="#3b82f6"/>
</svg>
<!-- 最適化後(SVGOMG処理後): 112バイト -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" fill="#3b82f6"/>
</svg>
この例では、87%のファイルサイズ削減に成功しています。
よくある質問(Q&A)
Q1. SVGとPNGはどちらを使うべきですか?
A. 用途によります:
- SVGを使うべき:ロゴ、アイコン、図形、グラフ、地図
- PNGを使うべき:写真、スクリーンショット、複雑なイラスト
迷ったら、シンプルな図形ならSVG、複雑な画像ならPNGと覚えておきましょう。
Q2. SVGファイルはどうやって作りますか?
A. 以下のツールを使います:
- Figma(無料、Web制作向け)← 初心者におすすめ
- Adobe Illustrator(有料、プロ向け)
- Inkscape(無料、オープンソース)
当サイトではFigmaで作成しています。ブラウザ上で動作し、無料で十分な機能があります。
Q3. SVGのファイルサイズはPNGより小さいですか?
A. シンプルな図形なら小さいですが、複雑な画像では大きくなります。
目安:
- ロゴ、アイコン:SVGの方が小さい(1/5~1/10)
- イラスト:ケースバイケース
- 写真:PNGの方が圧倒的に小さい
Q4. SVGをWordPressで使う方法は?
A. デフォルトでは、セキュリティ上の理由でSVGアップロードが制限されています。
2つの解決方法:
- プラグインを使う:「SVG Support」プラグインをインストール(推奨)
- functions.phpに追加:
function allow_svg_upload($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'allow_svg_upload');
当サイトでは、「SVG Support」プラグインを使っています。
Q5. SVGにalt属性を設定できますか?
A. はい、方法によって異なります。
imgタグの場合:
<img src="logo.svg" alt="会社ロゴ">
インラインSVGの場合:
<svg role="img" aria-labelledby="logo-title">
<title id="logo-title">会社ロゴ</title>
<circle cx="50" cy="50" r="40" />
</svg>
アクセシビリティのために、必ずalt属性や<title>タグを設定しましょう。
まとめ:SVGを使いこなしてワンランク上のWebサイトへ
本記事では、SVGの基本からメリット・デメリット、実装方法までを解説しました。
重要ポイントの振り返り:
- SVGはベクター形式で、拡大しても画質が劣化しない
- ロゴ・アイコン・図形に最適、写真には不向き
- CSSで色変更やアニメーションが簡単に実装できる
- Figmaで作成してSVGOMGで最適化するのがおすすめ
- WordPressではプラグインでSVG対応が必要
SVGを適切に使えば、Webサイトの表示速度向上とデザイン品質の向上を同時に実現できます。
まずは、自分のサイトのロゴやアイコンをSVG化することから始めてみましょう!