Этот плагин не тестировался с последними 3 основными выпусками WordPress. Скорее всего, он уже не поддерживается и может быть несовместим с текущими версиями WordPress.

Native Lazyload

Описание

Ленивая загрузка медиаданных с использованием встроенной функции браузера. Узнайте больше о новом атрибуте loading или посмотрите тикет ядра WordPress, где обсуждается включение аналогичной реализации в само ядро WordPress.

If the loading attribute is not supported by the browser, the plugin falls back to a JavaScript solution based on IntersectionObserver. For the case that JavaScript is disabled, but the loading attribute is supported by the browser, a noscript variant of the respective element will be added that also includes the loading attribute without any further changes.

«Нативный» означает «Быстрый»

If you have found your way over here, you are probably aware of how crucial performance is for a website’s user experience and success. You might also know that lazy-loading is a key feature to improve said performance. However, the solutions for lazy-loading so far still added a bit of overhead themselves, since they relied on loading, parsing and running custom JavaScript logic, that may be more or less heavy on performance.

Плагин прекращает использоние этих методов. Он использует новый атрибут loading, который исполняет ленивую загрузку медиа встроенными в браузер методами. Этот атрибут уже поддерживается в Chrome, и в скором будущем будет поддерживаться и остальными браузерами. Использование встроенных «родных» методов значит, что не нужно использовать сторонние функции Javascript, тем самым также значит, что плагин гораздо легче. А «гораздо легче», значит «быстрее».

И последнее, но не менее важное замечание: следует учитывать тот факт, что плагин существенно улучшится со временем, поскольку все больше и больше браузеров внедряют поддержку атрибута loading.

Как использовать

Просто активируйте плагин, и все ваши изображения и фреймы в содержимом записи будут загружаться лениво.

Благодарность

Этот плагин частично основан на логике WP Rig и рекомендациях из web.dev и developers.google.com.

Установка

  1. Закачайте папку native-lazyload в директорию /wp-content/plugins/ или установите плагин через панель администрирования WordPress.
  2. Активируйте плагин через меню «Плагины» в WordPress.

Часто задаваемые вопросы

Где находятся настройки плагина?

Этот плагин не имеет страницы настроек. После активации он сразу начинает работать.

Как я могу отключить ленивую загрузку конкретного изображения или фрейма?

Вы можете добавить им класс skip-lazy, чтобы указать плагину, что вы хотите отключить ленивую загрузку для этого изображения или фрейма.

Плагин загружает дополнительный файл JavaScript! Как это отключить?

Это абсолютно справедливо. Обратите внимание, плагин загружает файл Javascript как резервный метод и только в случае, если браузер еще не поддерживает встроенные атрибуты loading. В файле имеются функции для автоматической ленивой загрузки медиа не используя встроеные методы. Если вы предпочитаете не использовать резервный метод и полагаться только на поддержку атрибута встроенной ленивой загрузки loading, вы можете отключить его, добавив линюю кода add_filter( 'native_lazyload_fallback_script_enabled', '__return_false' ) где-нибудь в кодовых файлах вашего сайта.

Работает ли плагин на AMP страницах?

Если вы используете AMP, то вам не нужна ленивая загрузка, поскольку AMP уже из коробки загружает лениво все медиаданные. Плагин построен таким образом, что он не нарушает совместимость с AMP, будьте в этом уверены.

Куда я могу отправить свой запрос в службу поддержки?

Для получения поддержки используйте форумы поддержки wordpress.org . Если у вас возникла техническая проблема с плагином и вы знаете, как ее исправить, вы также можете открыть тикет на Github.

Как я могу помочь в развитии плагина?

Если у вас есть идеи по улучшению плагина или устранению ошибок, не стесняйтесь сообщить об этом и создать тикет в официальном Github репозитории плагина. Пожалуйста, следуйте рекомендациям.

Вы также можете помочь проекту, переведя его на свой язык. Для этого перейдите по адресу translate.wordpress.org.

Отзывы

31.12.2020
This plugin adds loading="lazy" and then, the browser lazy loads the image. I think that native lazy loading performed by the browser is the only viable solution for lazy loading. For many years, I tried to implement lazy loading on my websites. I faced many issues. Once images were not crawled. Once my website was penalized because of cloaking. Versions differed depending on the client. I am enough with javascript scripts that slow down the pageload and negatively impact the pagespeed insight. I think that for now and in the future, the native lazy loading is the only way to go for lazy loading.
27.02.2020
First, did not break my site and it did lazyload most of the page images. It does not lazyload images if they are served from a different host. Example, unbounce, etc. I will add another caveat, all of my images and their versions are always carefully resized and highly compressed. Checked with lighthouse and my score took a hit downwards. 13 points down on performance score. I tested on my Staging area, uncached. FCP went from 2.1s to 4.2s, all of the other metrics, including time to interactive, CPU idle, speed index and First Meaningful Paint took a dive. I will chuck this to I was already hyperoptimized and lazy loading is not truly needed on my site/s. But I would advise others to try it out (not on their live site) and test speed with Google Lighthouse before and after.
17.02.2020
Seems to work well. On browsers that don't support lazy loading, it doesn't seem to load the images as soon as I would like. As in there can be a bit of a delay between scrolling and the image appearing on screen. Not to bad though. Not going to worry about it as native image loading is the way of the future and will be implemented into more browsers.
Посмотреть 31 отзыв

Участники и разработчики

«Native Lazyload» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«Native Lazyload» переведён на 16 языков. Благодарим переводчиков за их работу.

Перевести «Native Lazyload» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.0.2

  • Fix broken images which are using data URI scheme (e.g. base64-encoded images). Props ieim.
  • Fix images in IE 11 not being loaded until the user starts scrolling. Props Soean.
  • Fix image loading script not working in IE10 and other browsers that do not support dataset.

1.0.1

  • Улучшение совместимость с другими плагинами, используя более специфический класс и добавляя его только для резервного JS.
  • Запуск скрипта ленивой загрузки по событию DOMContentLoaded для поддержки совместимости с плагинами наподобие Autoptimize.
  • Отключение изменения элементов внутри ответа AJAX.

1.0.0

  • Первая версия