WordPress 5.5のサイトマップとLazy-Loadingの無効化方法

Web

WordPress 5.5で追加されたサイトマップとLazy-Loadingの無効化方法

WordPress 5.5が公開されました。WordPress 5.5ではデフォルトでXMLサイトマップが作成されるようになり、また、画像の遅延読み込み(Lazy-Loading / Lazy-Load)もデフォルトで追加されました。

サイトマップは『http://アドレス/wp-sitemap.xml』に作成されます。細かいカスタマイズはできず、更新日時もありません。また、特定のURLをサイトマップから外したりといったことをGUIで行ったりもできません。残念ながら低機能で、プラグインの『Google XML Sitemaps』などの方が使い勝手が良いのが現状です。

画像の遅延読み込みはwidth属性とheight属性のある『<img>』タグに『loading="lazy"』が自動挿入されるようになりました。

デフォルトでこれらの動作が不要な場合は、『functions.php』に以下を記述することで無効化できます。サイトマップの作成を防ぐ方法は、1つ目か2つ目、どちらかお好みでご利用ください。

/* WordPress 5.5のサイトマップ作成を防ぐ (wp-sitemap.xmlにアクセスすると404にする) */
add_filter( 'wp_sitemaps_enabled', '__return_false' );
/* WordPress 5.5のサイトマップ作成を防ぐ (wp-sitemap.xmlにアクセスするとTOPページを表示する) */
remove_action('init', 'wp_sitemaps_get_server');
/* WordPress 5.5のlazy-loading『loading="lazy"』挿入の無効化 */
add_filter( 'wp_lazy_loading_enabled', '__return_false' );

必要になった場合はこれらの記述を削除してください。なお、『loading="lazy"』は有効のままの方がおすすめです。

メモ: 『loading="lazy"』の挙動と「Luxeritas」のLazy Loadの挙動
<『loading="lazy"』の挙動>
・かなり下の方の画像が遅延読み込みになる。例えば、20枚の画像が縦に並んでいるページがあって、ブラウザの画面内には3枚の画像が表示されているとしたら、10枚目までは読み込みが完了している。ブラウザを下にスクロールさせて4枚目を表示させると11枚目を読み込み、5枚目の表示で12枚目が読み込まれるといった感じになる。
・そのため、見ている側は遅延読み込みが行われていると気づかず、表示面でも通信面でも良好なエクスペリエンスが得られるので有効が好ましい。
このURLをChromeのデベロッパーツール(F12)のNetworkタブで見るとどういう挙動かわかる。
AMPは『loading="lazy"』に対応していないため、AMPページに挿入されるとエラーが発生する。AMPを使っている場合はお使いのWordPressテーマがこの問題の回避に対応しているか要確認。(Luxeritasは3.10.0.1で対応) テーマが対応していないなら無効にする。
<WordPressテーマ「Luxeritas」のLazy Load>
・画面に表示される直前の画像が遅延読み込みになる。例えば、20枚の画像が縦に並んでいるページがあって、ブラウザの画面内には3枚の画像が表示されているとしたら、3枚目までしか読み込まれない。ブラウザをスクロールさせると4枚目、5枚目と順次読み込みが発生する。
・『loading="lazy"』と比べてファーストビューの読み込み量が少ない。

両方とも有効にしていても競合はしない。(Luxeritasの場合。他のテーマは不明) 両方有効の場合は「Luxeritas」のLazy Loadが優先される。記事内の大きな画像は「Luxeritas」のLazy Loadを使い、サイドバー等の小さな画像は『loading="lazy"』に任せるといったハイブリッド使用も可。(当サイトがそれです)

Posted by にっち