PHPで出力されるHTMLのminify化(高速化/SEO対策)

PageSpeed Insightsとかで自分のサイトチェックしてみたら「HTML を縮小する」ってのが挙がってたので対応(minify)化してみる。
WordPressを使って構築しているサイトなので、とりあえずindex.phpファイルを開いて下記を追記しただけです。

function sanitize_output($buffer) {
        $search = array(
                '/\>[^\S ]+/s',     // タグの前の余計なスペースを削除
                '/[^\S ]+\</s',     // タグの後ろの余計なスペースは削除
                '/(\s)+/s',         // 連続した無駄な無いスペースを削除
                '/<!--(.|\s)*?-->/' // コメント部分は削除
        );
        $replace = array(
                '>',
                '<',
                '\\1',
                ''
        );
        $buffer = preg_replace($search, $replace, $buffer);
        return $buffer;
}
ob_start("sanitize_output");

意外とこれってポイント高いのね。
コメントの削除とかは場合によってはJavaScriptとか動かなくなるので上手く調整してあげてください。

ob_startの関数自体はPHP公式サイトご参照ください。
本来の用途じゃないかもしれないですが、昔のサイトでページごとにそれぞれコーディングしてて収集が付かないときとかに一括して出力内容変更したりするのにも使えそう。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする