ウェブサイトの最適化において、Minificationは誤解されがちな概念の一つです。年月を経て、多くの関心を集めています。
一見シンプルに見えるものの、正しく理解するには深い知識が必要です。多くの開発者が、速く動作するサイト実現のためMinificationを利用しています。
Minificationとは、コードの機能を変えずに不要な文字を削除する工程です。コメントや区切り、改行、空白などが対象となります。手間を省くため、ファイルを結合することも有効です。
Concatenation: 複数のファイルを一つにまとめる工程です。これにより、ダウンロードするファイル数が大幅に減り、読み込み速度が向上します。
Minificationとは、コードから不要な文字を全て取り除く工程です。プログラマーが機能を変えることなく、重要でない文字を削除し、冗長な情報を除いたファイルを生成します。従来のように解凍が必要な方法とは異なります。
通常、コード完成後に実施され、アプリの展開前に行われることが多いです。これにより、ページは縮小版で提供され、全体を送るのではなく必要な部分だけにアクセスできるため、利用者がページとスムーズにやり取りでき、全体の内容も確認できます。応答速度が向上し、読み込み時間が短くなります。
Minificationは、個人ブログから大規模サイトまで、様々なウェブサイトで活用されます。規模に関係なく幅広く利用可能です。
WP Rocketによれば、Minificationはファイル最適化とも言え、HTML、CSS、JSなど様々なマークアップ言語に適用できます。一般的な開発者は、他の開発者が理解しやすいようコードを書くよう努めます。プロの開発者はシンプルさを心がけますが、コードを読みやすくするために改行やコメント、空白も用いられます。しかし、ウェブブラウザはこれらの余分な要素を必要としません。そこでMinificationが、不要な部分を削除する役割を果たします。結果、コードは人間にとっては分かりにくくなりますが、コンピュータの動作には問題がありません。また、不要な部分が残るとファイルサイズが大きくなり、ダウンロードが重くなります。Minificationによりファイルは軽くなり、迅速な配信が可能となります。
例えば、出勤時に必要な道具だけを入れたスーツケースは運びやすいですが、不要なものが入れば大きくなり運搬が困難になります。Minificationは、必要なコードのみを残し、ファイルのサイズを縮小するイメージです。
Minificationは、コード内の無駄な文字を削ってファイルサイズを小さくする手法です。スクリプト、スタイルなど、ウェブブラウザが利用する要素のデータ量を減らすため、ウェブサーバ上で応答前に行われます。サーバは、元のファイルの代わりに縮小版を配信することで、迅速な応答を実現しています。
以下に、Minificationの概要と動作原理を理解するためのステップを示します。
Steps –
ウェブブラウザは、開発者がコードに加えた余分な文字も読み込みます。中には必要なものもありますが、多くは冗長なものです。Minificationはこうした不要な部分を取り除くことを目的としています。空白、コメント、改行などはファイル内で大きなスペースを占め、本来のサイズよりも大きくなってしまいます。コンピュータはこれらを必要としないため、削除することでファイルサイズが大幅に縮小されます。
コード縮小には多くのプラグインが利用できます。WordPressの場合、プラグイン利用で簡単にMinificationが実現でき、WordPress以外でも様々なツールが存在します。
Minificationの大きな利点は、元ファイルに変更があったときだけ実施できる点です。圧縮技術と併用すると、利用者や企業の帯域幅使用量を大幅に削減できます。現代では、長い読み込み時間は好まれないため、短時間での読み込みにはMinificationが欠かせません。
Minificationは、スクリプトやウェブページ内の不要なコードを削り、読み込み時間を短縮する工程です。コード縮小には様々な方法があります。以下はその一例です。
手動によるMinification –
この方法は単純で、開発者が不要なコードを削除するだけです。結果としてコードは短くなりますが、人間には理解しにくくなります。コンピュータは縮小前後で同じ動作をするため、ページ読み込みを高速化する目的で、縮小版が採用されます。手動Minificationは、コードの機能を変えずに、改行や空白、コメントなどを除去します。
オンラインツールによるMinification –
ウェブサイト設計時の手間を省くため、手動Minificationの代わりに利用できるツールも多数存在します。各マークアップ言語に対応したMinifierがあり、以下のような例があります。
CSS Minificationは、不要なコードを削除してファイルサイズを縮小する工程です。CSSminifier.comなどのオンラインツールを使用すれば、コードをコピー&ペーストするだけで縮小版が得られ、手動作業の手間が省けます。即時に縮小できるツールも多く存在しますので、自由に試してみると良いでしょう。
HTML Minification
HTML Minificationは、HTMLファイルのサイズを小さくして読み込み時間を短縮する方法です。HTML minifierを使えば、プロジェクトに容易に取り入れることができます。他にもHTMLcompress.comなどのツールがあり、HTML、JS、CSSをまとめて縮小することが可能です。
例:
before
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<meta name='robots' content='max-image-preview:large' />
<!-- This site is optimized with the Yoast SEO Premium plugin v15.6.2 - https://yoast.com/wordpress/plugins/seo/ -->
<title>Wallarm blog - Cloud-Native Application Security</title>
<meta name="description" content="Cloud-Native Application Security" />
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
<link rel="canonical" href="https://lab.wallarm.com/" />
<link rel="next" href="https://lab.wallarm.com/page/2/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Wallarm Blog - Cloud-Native Application Security" />
<meta property="og:description" content="Cloud-Native Application Security" />
<meta property="og:url" content="https://lab.wallarm.com/" />
<meta property="og:site_name" content="Wallarm Blog" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@Wallarm" />
after
<head><meta charset="UTF-8" /><meta http-equiv="x-ua-compatible" content="ie=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="profile" href="http://gmpg.org/xfn/11" /><meta name='robots' content='max-image-preview:large' /><!-- This site is optimized with the Yoast SEO Premium plugin v15.6.2 - https://yoast.com/wordpress/plugins/seo/ --><title>Wallarm blog - Cloud-Native Application Security</title><meta name="description" content="Cloud-Native Application Security" /><meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" /><link rel="canonical" href="https://lab.wallarm.com/" /><link rel="next" href="https://lab.wallarm.com/page/2/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="website" /><meta property="og:title" content="Wallarm Blog - Cloud-Native Application Security" /><meta property="og:description" content="Cloud-Native Application Security" /><meta property="og:url" content="https://lab.wallarm.com/" /><meta property="og:site_name" content="Wallarm Blog" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@Wallarm" />
JS Minification - JavaScriptの縮小も容易です。プログラマーがJSファイルを変更した際には、Closure Compilerなどが用いられます。Jscompress.comやyui.github.ioといったツールも利用できます.
Jscompress.com: コードをコピーしてツールに貼り付けると、縮小版が得られます。手動で編集するよりも簡単です。
yui.github.io: 開発中に利用するためのツールです。
WordPressを利用している場合、目的に応じたプラグインが多数存在し、非開発者でも手軽に利用できます。
ここまでの説明から、Minificationには多くの利点があることが分かります。以下にその主な例を示します。
これまでの説明では、Minificationの仕組みを例え話で示しました。例えば、友人宅に行く際、必要な分だけのビールを一度に運ぶためにトレーを使うように、ブラウザも一度に扱えるファイル数に限りがあるため、ファイルをまとめて送ることで処理を高速化しています。
従来、ビールを二度に分けて運ぶ必要があったのが、トレーを使えば一度に全て運べるようになるのと同じように、ファイルを結合することでウェブサーバが送信するファイル数を減らし、効率化を実現します。
まとめると、Minificationは決して難解な技術ではなく、コード完成後の最終調整の一環です。劇的な変化は期待できないものの、ページの読み込み速度は確実に向上します。
CSSのMinificationはデバッグが容易ですが、JSの縮小は省かれる部分が直感的でなく、デバッグに時間がかかる場合があります。開発者でなければ、手間に見合わないかもしれません。
最新情報を購読