小説家になろうにて「キモオタでギャルゲー、それって何の罰ゲーム!?」連載中!

「表示可能コンテンツの優先順位を決定する」を攻略する ~PageSpeed InsightsとGTmetrixのスコアを改善してみる(第3回)

カスタマイズ&プラグイン
この記事は約7分で読めます。

本記事は、KUSANAGI for ConoHa(1Gプラン)でPageSpeed InsightsGTmetrixのスコア改善を図った過程です。
PageSpeed Insights新版ですとLCPの改善方法となります。

アイキャッチの画像はConoHaイメージキャラクター美雲このは (C)GMO Internet, Inc. 再利用禁止

スポンサーリンク
この記事を読む方へのオススメ

謎の項目「表示可能コンテンツの優先順位を決定する」

一番手こずった項目です。
説明ページ を読んでも、他のページと違って具体的にどうすればいいのかさっぱりわかりません。

説明ページのポイントは、

・リソースで使用されるデータの量を減らす。
・スクロールせずに見える範囲のコンテンツのサイズを削減する。

質問者の写真

何を言ってるのか、全然わからない……
スポンサーリンク

コードの見直しをする

ここでLuxeritasを作った「るな 」さまのページを見てみる。

100-100、さすがです。
ということはLuxeritasの構造には問題ないことになる(当たり前ですが)。

トップページのコード、相当いじったしなあ……と見直してみます。
するとかなりのアラが。
セレクタの組み方間違えていたり、無駄な構成あったり。
一つ一つ自分で作るつもりで見直していきました。

その結果。

質問者の写真

速くはなったけど、「表示可能コンテンツの優先順位を決定する」は消えない!

他にも検索してはあれやこれや試してみましたが、全然ダメ。
どうしようって感じでした。

スポンサーリンク

原因(?)判明!

しかし、サイト記事更新した後、PageSpeed Insightsで計測したところ……。

質問者の写真

消えてる!?

なぜか項目が消えていました。
たまたまではなく何回やっても消えています。
はて?
まあ消えたならいいこと。
次を更新しよう。

そして更新後……

質問者の写真

また出た!

呆然としながらトップページを眺める。
しかしそこで原因に気づきました。

スポンサーリンク

「表示可能コンテンツの優先順位を決定する」の原因はファーストビューにおける画像のファイルサイズ

解答者の写真
原因は、ファーストビューにおける「イラストの密度」の差にあります

本サイトは先頭固定記事を大きく表示するレイアウトにしています。

こんな感じ。
現在は「表示可能コンテンツの優先順位を決定する」が表示されていません。
画像サイズは5kbです。

一方で、

(C)GMO Internet, Inc. 再利用禁止

これをサムネイルに使ったときは出ました。
前者に比べていかにも重そう。
画像サイズを調べてみると18kb。

つまり、

解答者の写真
単純に画像のファイルサイズが大きかったからいけなかったのね

まさに「サイズを小さくする」という指摘そのものの原因です。

……と言っても。
圧縮してこれなのだから、どうしようもないです。
「サイトおしらせ」も兼ねて大きくしてあるので、このレイアウトはやめたくない。
画質30まで落としてもファイルサイズはそんなに減らない。

ということで、「これでいい」と割り切りました。
サムネイルサイズ次第のものをこだわってもしかたありませんので。

ただ原因が判明して、すっきりはしました。

スポンサーリンク

【2017/3/17追記】子テーマのstyle.cssファイルを分離する ~AutoptimizeやLuxeritasの結合機能を使っている場合

「表示可能コンテンツの優先順位を決定する」の別の解決法を見つけたので追記しておきます。
ある程度カスタマイズしてstyle.cssが肥大化している場合(20kbくらい)、かつLuxeritasのCSS結合機能を使っている場合限定です。

それは、次の通り。

子テーマのstyle.cssのファーストビューに関係ある部分と関係ない部分を分離してファイルを二つ作る。
→CSSを結合し、インライン化する(インライン化しないとレンダリングブロックチェックに引っ掛かるたため)。
→関係ない方のCSSファイルを圧縮し、非同期で読み込ませる。

CSSの圧縮はこちらで。

Refresh-SF - Online JavaScript and CSS Compressor

CSSを非同期で読み込ませる方法は、luxe.jsに次の記述をします。

(function(){
 var n = document.createElement('link');
 n.async = true;
 n.defer = true;
 n.type = 'text/css';
 n.rel = 'stylesheet';
 n.href = '【CSSファイルまでのパス】';
 var s = document.getElementsByTagName('script');
 var c = s[s.length - 1];
 c.parentNode.insertBefore(n, c);
})(document);
CSS の非同期読み込みで Web サイト高速化 | Thought is free
CSS はレンダリングをブロックする。 なので、CSS を非同期で読み込んでやれば、レンダリングのスピードは向上する。 最低でも、レンダリングまでの時間は短縮す...

ファーストビューの必要な部分をインライン化するという手法が一般に知られてますが、その考えと近いです。
単に結合するだけだとファーストビューに不要な部分まで結合するので、その結果「表示可能コンテンツの優先順位を決定する」を注意をされます。
なので分離して、(結合圧縮された)style.min.cssの量を減らすわけです。

質問者の写真

実際にこの方法で警告消えたよ

これと同じ現象はプラグインAutoptimizeでも生じます。
Autoptimizeの場合は結合から除外するcssを指定。
(Luxeritasと違い、何も指定しなければ全てのcssを結合する)
上記のスクリプトファイルを作成→実行すればいいです。

なお、高速化に一番効くのは「ファーストビューに使うCSSだけ手作業でインライン化する」です。
ただ本記事は「スコアを上げる」のを目的としていますので、割愛します。

スポンサーリンク

おまけ

「無駄」を削る過程で色々試してみて、記事の趣旨とは関係なく高速化に効果あった方法を紹介します。

KUSANAGIプラグインでテーマの翻訳を切る

KUSANAGIを使ってなくとも「001 Prime Strategy Translate Accelerator」は多くの方が使っていると思います。
高速化とくれば絶対に名前の出てくるプラグインですから。

これにつき、KUSANAGIかつ同プラグインの提供元であるプライム・ストラテジー社社長「中村けん牛」様の記事。

CentOS 7の標準環境だけですぐできる、WordPress「5.4倍高速化」テクニック 前編
企業のCMSサイトやオウンドメディアなどエンタープライズ用途での利用が増えている「WordPress」の高速化について解説する連載。今回は、CentOS 7の標...

「翻訳を停止」して高速化する

WordPressに再度ログインして、翻訳アクセラレータの設定画面で「サイトに表示される翻訳された文章」の項目を「翻訳を停止」に設定してください。

(略)

この設定は、「テーマに翻訳処理がほとんど含まれていない場合」に大変有効です。

(略)

Webサイトのフロントでは翻訳処理そのものをスキップすることで、英語版のWordPressと同等のパフォーマンスを得ることができます。

質問者の写真

その発想はなかった!

翻訳をキャッシュすれば速くなる。
これは当たり前に思い浮かびますし、同プラグインでキャッシュしていたわけです。
どこのサイトでも「キャッシュをする」にしておくように書いてました。

しかし実際問題として使うのは国産テーマ。
そもそも管理画面以外、翻訳自体が要らないわけで。
まさに目からウロコでした。

抜粋を呼び出すコードをget_the_excerptに変更する

tantan様の以下の記事で紹介されていました。

https://webtatan.com/blog/?p=570

よく使われているのはこちら。

<?php the_excerpt(); ?>

これを以下に変更します。

<?php echo get_the_excerpt(); ?>

抜粋の多いページなら、体感でわかるほどキビっとします。
ただし<p>タグを付与しなくなるためCSSの変更しないといけない場合もあります。

スポンサーリンク

まとめ

解答者の写真
「表示可能コンテンツの優先順位を決定する」は、サイトを回ってみても、よくわからないって人多いみたい。
有効な解決法の1つは「ファーストビューのサイズを単純に小さくすること」
もし当サイトと同じく大きいサイズの画像を用いている場合は、小さいサイズのものに入れ替えて試してみて。
次回からはGTmetrixの攻略です
ブログやサイトを始めたい・引っ越したい方へ

レンタルサーバーWING。
KUSANAGI&WEXALが使えるVPS。
どちらでも高速でコスパに優れたConoHaで始めるのがおすすめです。
もっと知りたい方はボタンをクリックしてください。
(ボタン経由で入会した場合、1000円分のクーポンがもらえます)

この記事を書いた人

広島市内のパチンコホール勤務。
3号機時代からのパチンカス。
ADHD、精神障害者手帳3級所持。
慶應義塾大学商学部卒、専攻はマーケティング(広告・宣伝)
国家一種試験経済職の資格で公安調査庁に入庁。
在職時は国際テロ、北朝鮮を担当。
「小説家になろう」の底辺作者。
WordPress記事は素人の備忘録です。

天満川鈴をフォローする
カスタマイズ&プラグイン
スポンサーリンク

コメント

タイトルとURLをコピーしました