ブログ

エンヴィデザインの取り組みやナレッジをお届けします。

Webフォントを軽量化する!サブセット化とセルフホスティング

制作について

株式会社ENVY DESIGN

フロントエンドエンジニア

Webフォントって見た目もきれいでデバイスにも影響されずに表示されるし便利ですよね。
でもそのまま使うと重たい…

全文字を含んだフォントをCDNから読み込むと必要ない文字までロードされ読み込みに時間がかかってしまうからですね。特に日本語は漢字・ひらがな・カタカナと文字数が多く容量が大きいです。

そこで対策として、よく使う文字だけを自分のサーバーに置いて読み込むセルフホスティングという手法を使って、読み込み速度を上げることができます。

”よく使う文字だけに絞り込むこと”をサブセット化といいます。
webフォントをサブセット化してセルフホスティングする手順についてご紹介します!

Webフォントをサブセット化してセルフホスティングする際の注意点

フォントをサブセット化してセルフホスティングする事はフォントデータの改変・再配布になる可能性があるので、使用したいフォントのライセンスを確認してください。

今回はSILオープンフォントライセンスで利用・改変・再配布OKのGoogle fontsのNoto Sans Japaneseを使用します。


Google fontsのサイトから直接フォントデータをダウンロードしてサブセット化する事もできますが、フォントの見た目が少し変わってしまう場合があるので、フォントの見た目が変わらない方法でご紹介します。

①フォントのダウンロード

まずは「google-webfonts-helper」サイトから必要なフォントを検索してファイルをダウンロードします。
https://gwfh.mranftl.com/fonts

  • 「1. Select charsets」で必要な言語を選択します。日本語の場合はJapaneseを追加で選択します。
  • 「2. Select styles」で必要なフォントのstyles(太さ)を選択します。
  • 「3」で表示されているcssをコピーします。Customize folder prefix (optional):欄に自分の環境に合わせたパスを入力するとコードに反映されそのままコピペで利用できて便利です。
  • 「4. Download files:」のダウンロードボタンからデータをダウンロードします。

②サブセット用にファイルを変換する

「google-webfonts-helper」サイトからダウンロードしたファイルの拡張子はwoff2です。このままだとサブセット化できないので一旦otf(またはttf)のデータに変換する必要があります。WOFFコンバーターというツールを使って変換します。
WOFFコンバーター(武蔵システム)

※「google-webfonts-helper」サイト以外からのダウンロードしたデータであればotf(またはttf)の場合もあるので、その場合は変換は不要です。

  • ①でダウンロードしたwoff2ファイルを選択します
  • ②でotf(またはttf)ファイルを保存する場所を選択してファイル名を入力します
  • 「変換開始」ボタンをクリックすると、②で選択した場所に変換されたotf(またはttf)ファイルが保存されます。

③サブセット化する

otf(またはttf)データに変換したファイルを使ってサブセットフォントメーカーというツールを使ってサブセット化します。
サブセットフォントメーカー(武蔵システム)

  • ①で先ほど変換したotf(またはttf)ファイルを選択します
  • ②でサブセット化後の保存先を選択しファイル名を入力します。
  • ③に使用する文字をコピーして貼り付けます。
  • 「作成開始」ボタンをクリックすると②で選択した場所にサブセットされたファイルが保存されます。

使用する文字について

こちらの記事を参考に「JIS第1水準+常用漢字+その他(合計3759字)」で文字数を絞りました。

使いたいフォントのweightが複数ある場合はこの作業を繰り返します。

④サブセット化したファイルをweb用に変換する

サブセット化したotf(またはttf)ファイルを、再度WOFFコンバーターを使ってweb用のwoffとwoff2に変換します。
woffとwoff2は圧縮されたフォントデータで容量が小さくなるのでウェブページの読み込み速度が速くなります。

  • ①でttfファイルを選択します。
  • ②で保存場所を選択しファイル名を入力します。空の場合は①と同じ場所に同じファイル名のwoffが作成されます。
  • ③の「woff2を作成する」にチェックを入れておきます。デフォルトでwoffが作成されますが、woff2の方が圧縮率が高いのでwoff2も作成します。 EOTはIE専用のフォントデータなのでチェックは外してOKです。
  • 変換開始ボタンをクリックすると②で選択した場所にwoffとwoff2のファイルが作成されます。

【woff】
ほぼ全てのブラウザに対応(古いIE以外)

【woff2】
woffより圧縮率が高いのでよりデータが軽く読み込みが速くなります。
IEには対応していません。

ほとんどのブラウザ最新版でwoff2に対応しています。IEはサポートが終了しているのであまり気にしなくても良いですが、他ブラウザの古いVerを考慮し念の為woffデータも読み込んでおくと安心です。

⑤フォントファイルをcssで読み込む

woff2とwoffのファイルを必要な場所(例:cssフォルダと同階層にfontsフォルダ等)に置いて①フォントのダウンロードでコピーしたcssを読み込みます。scssの場合はscssに記述します。

webフォントが読み込まれるまでの間にサイト上に何もフォントが表示されない状態を避ける為、font-display: swap;を設定しておきます。
font-display: swap;を記述しておくとwebフォントが読み込まれるまでは代わりに標準のフォントが表示されます。

複数データ(woffとwoff2など)を読み込む記述は下記のように複数記述します。

【記述例】
パスやフォントファイル名は環境に合わせて変更してください。
woff2とwoffの両方を読み込んでいるので、woff2が対応しているブラウザはwoff2が表示され、対応していないブラウザにはwoffが表示されます。

// font
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('../fonts/NotoSans_Regular.woff2') format('woff2'),
url('../fonts/NotoSans_Regular.woff') format('woff');
}

@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('../fonts/NotoSans_Medium.woff2') format('woff2'),
url('../fonts/NotoSans_Medium.woff') format('woff');
}

@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('../fonts/NotoSans_Bold.woff2') format('woff2'),
url('../fonts/NotoSans_Bold.woff') format('woff');
}

【フォント指定例】

.title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

これで便利なwebフォントの容量が軽くなり、サイトの読み込みを速くする事ができます。
webフォントを使う時のデメリットの重さを軽減できるのでぜひ試してみてくださいね!

株式会社ENVY DESIGN

フロントエンドエンジニア

株式会社ENVY DESIGNフロントエンドエンジニア。コーディングとCMS構築を主に担当。フリーランス出身、色々なサイト制作に携わった経験を元に、実装中の気付きや技術的な情報を発信してきます。

よくある質問

はい、もちろんご相談可能です。Webサイトの制作が具体的に決まっていなくても大丈夫です。

制作に関すること、費用に関すること、制作会社選びのお悩みなど私たちにNGは一切ありません。

何でもお気軽にご相談ください

さらに詳しく見る

Webサイトの制作にテンプレートは使用しません。全てオリジナルデザインのオーダーメイドで制作します。

お客様の課題を解決するうえで、テンプレートでのご提案は難しく、長期的な運用にも不向きだと考えているためです。

さらに詳しく見る
さらに詳しく見る

Webサイト制作中の打ち合わせ回数はオンラインを中心に、3回~10回程度が目安となります。

打ち合わせ回数の差は、Webサイトの種類や規模によるところが大きく、1ページのLPでは、3回程度、中規模以上のWebサイトでは10回以上に及ぶこともあります。

さらに詳しく見る

デザインやコーディング、CMSの構築といった個別のご相談もお受けしております。お客様のニーズに応じて、臨機応変に対応いたします。

制作会社様や広告代理店様向けに、Webサイトの外注サービスKUROCOも提供しております。制作パートナーをお探しの企業様は、ぜひご覧ください。

さらに詳しく見る

オンラインでの集客を強化し、
ビジネスを成長へと導きます。

資料ダウンロード

Web制作に関する資料と会社紹介をダウンロードできます。

お問い合わせ・ご相談

Webサイト制作後や制作後の運用などでお悩みの方はお気軽にご相談ください。

お電話でのお問い合わせ

お電話でのお問い合わせをご希望の方は、こちらからお気軽にご連絡ください。

平日9:30-18:30

03-6883-8292