LION BLOG(MEDIA)を例にNative Lazy Loadをプラグイン無しでサムネイルにも適用させる

先日、コードだけでGoogle Chrome対応のNative Lazy Loadを実装する記事を書きました。

しかし、

嘘吐き! Pagespeed Insightに怒られたよ!
サムネイルまでは遅延読み込みしてくれないじゃん!

天満川鈴 WRITTEN BY 天満川鈴
スポンサーリンク

LION BLOGにスクリプト無しでLazy Loadを実装するメリット

というわけで本稿では、サムネイルにもChrome対応Native Lazy Loadを適用させる方法を記します。
どのテーマでもいいのですが、ここではLION BLOG(MEDIA含む)を採り上げます。

LION BLOGとLION MEDIAは「スクリプト無し」による軽快さを売りにしたテーマです

本記事のニーズがあるなら、これらテーマのユーザーじゃないかと思いましたので。
スクリプトを入れずに「オフスクリーン画像の遅延読み込み」で怒られずに済むのですから打ってつけでしょう。

サムネイルへの適用方法

LION BLOGやLION MEDIAじゃなくてもパターン1か2のどちらかでいけると思います。

アーカイブ部分ループ(トップページなど)

パターン1 the_post_thumbnailを使っている場合

まず「loop.php」を子テーマにコピーします……と言いたいところですが「親テーマ」のままでいいと思います。
どうせもう、今後はテーマの更新もないでしょう。
(元々、THE THORのテストバージョンみたいなものなので)
親テーマのままにしておいた方が簡単です。

変更前

<?php if(has_post_thumbnail()) {the_post_thumbnail('icatch');}

変更後

<?php if(has_post_thumbnail()) {the_post_thumbnail('icatch',array( 'alt' =>get_the_title(),'loading' =>lazy));}

パターン2 img srcで直接取得している場合

サムネイルの存在しない記事があるなら、パターン1の箇所のelse以下も書き換えます。

<img src="'.get_template_directory_uri().'/img/img_no.gif" alt="NO IMAGE"/>';}?>
<img src="'.get_template_directory_uri().'/img/img_no.gif" loading="lazy" alt="NO IMAGE"/>';}?>

人気記事一覧ウィジェット

親テーマのfunctions.phpの「人気記事一覧ウィジェットアイテム」を検索して、ループ部分と同様の修正を施してください。

LION BLOGのサムネイル回りの修正

ついでなのでやっておきましょう。
他のテーマでも、やってない場合はしておいた方がいいと思います。

サムネイルサイズの指定(サムネイル左にしたとき)

Pagespeed Insightsの「適切なサイズの画像」で怒られるので修正します。
icatchをmediumに指定し直せばOKです。
(mediumが横幅300の場合)

alt属性を付け加える

Lighthouseで「Image elements do not have [alt] attributes」(画像にalt属性がありません)と怒られるので付け加えます。
“”の中身は空でいいです。私は記事タイトル名にしています。

「画像なし」の方は最初からalt属性が入っています。

修正後のコード

<?php if(has_post_thumbnail()) {the_post_thumbnail('medium',array( 'alt' =>get_the_title(),'loading' =>lazy));} else {echo '<img src="'.get_template_directory_uri().'/img/img_no.gif" loading="lazy" alt="NO IMAGE"/>';}?></a>

Chrome以外はLazy Loadどうするの?

対応しなくてもいいと思います

以下はあくまで私見です。

LazyLoadには一長一短ありまして。
よく言われるSEO上のマイナス効果はlozad.jsなどIntersectionObserverベースのものを使えばいいのですが。
モバイルですと遅れて読み込むのが間に合わず、空白のまま待つor飛ばされるという現象まであります。
(自分が読み手として自サイトをチェックした感想)

トータルでの読み込み時間は変わらない。
だったらスクリプトなんて1つでも少ない方がいいのですから。

あくまでPagespeed Insightsに怒られたくないのでやってるだけ。
そのうちsafari以外は対応してくるんじゃないかと思いますし、Chromeにだけ対応しておけば十分じゃないかと思います。

まとめ

極力シンプルなカスタマイズをしたい方
ぜひ試してみてください!

スポンサーリンク
天満川 鈴のプロフィール画像
WRITTEN BY

天満川 鈴

未経験からWEB業界に入り、現在はWEBディレクターとして実務に従事。 要件整理・導線設計・コンテンツ構成などを学びながら、日々改善を重ねています。 AIを活用したコンテンツ制作・効率化を強みとし、プロンプト設計を含めた制作フローの最適化にも取り組んでいます。
本サイトでは、WordPressやサイト制作に関する試行錯誤・検証内容を中心に発信。 技術検証の一環として、KUSANAGI公式サイトにて記事を2回紹介いただきました。

RECOMMENDED INFRASTRUCTURE

私はConoHa以外を勧めない。

2016年からずっとConoHaを使い倒してきました。知人に「一番いいサーバーは?」と聞かれたら、迷わずここを教えます。

レンタルサーバーナンバーワンを誇る高速環境であることはもちろん。私が「黒い画面って何?」というド素人からサイト制作のプロになれたのは、傍らにずっとこのはちゃんがいてくれたから。
私がConoHaを使い続ける、嘘偽りない理由です。

※ConoHaに初めて入会の方限定。
本CTAの画像もしくはボタンを押してWINGパック12か月以上を契約すると、最大5000円割引してもらえます。

公式サイトで詳細を見る
× 閉じる