WordPress 5.5 bringt Unterstützung für das Markup zum nativen Lazy Loading mit. Dadurch kommt die Frage auf, ob die vielen Lazy-Loading-Plugins jetzt ausgedient haben. Ich werde das hier für mein Plugin Lazy Loader beantworten.
Bei allen Lazy-Loading-Plugins dürfte ein Vorteil gegenüber der Core-Integration die größere Browser-Unterstützung sein. Da der von WordPress 5.5 unterstützte Webstandard für Lazy Loading noch recht neu ist (von Februar 2020), beschränkt sich der Browser-Support natürlich auf neue Versionen.
Daneben bietet Lazy Loader im Gegensatz zum Core zusätzliche Funktionen, etwa das Nachladen von iFrames und Video-Elementen, und kann optional das gesamte Markup oder vom User angegebene zusätzliche Filter verarbeiten, um mehr Bilder mit Lazy Loading auszustatten (wobei die Core-Lösung durch die Unterstützung von wp_get_attachment_image()
vermutlich auch die meisten Bilder erwischt, die außerhalb des Content-Bereichs durch Plugins/Themes angezeigt werden, es sei denn das Markup wird manuell zusammengebaut). Über manuelle Anpassungen ist noch einiges mehr möglich, wie Lazy Loading von Skripten oder Stylesheets.
Zudem kann durch die Optionen des lazysizes-Skripts, das Lazy Loader für die Nachlade-Funktion nutzt, beispielsweise verändert werden, ob nicht sichtbare Bilder bereits früher geladen werden sollen, oder erst wenn sie nah am sichtbaren Bereich sind.
Wenn ihr allerdings nur Lazy Loading für Bilder benötigt, die von der WordPress-Lösung abgedeckt werden, und der Meinung seid, dass der Browser-Support für eure Nutzerinnen und Nutzer ausreicht, dann wäre es eine Überlegung wert, das bisher genutzte Lazy-Loading-Plugin zu deaktivieren. Zumindest bei Sites mit vielen Bildern würde ich davon momentan aber noch Abstand nehmen und warten, bis die Funktion von mehr Browsern unterstützt wird.
Ich werde Lazy Loader jedenfalls weiter entwickeln, im Plugin-Update für WordPress 5.5 wird die Core-Funktion deaktiviert.
Danke für den Überblick und die Weiterentwicklung des Plugins, Florian! Ich habe die Core-Lösung (also das Feature-Plugin) gerade auf der Website meines Arbeitgebers getestet, und es bleibt tatsächlich weit hinter deiner Lösung zurück. Allein die Scroll-Schwelle (also wie weit ein Bild außerhalb des Viewports liegen muss, um erst später geladen zu werden) spricht schon für den weiteren Einsatz deines Plugins. 🙂
Hi Caspar,
das freut mich zu hören, danke für deinen Kommentar! 🙂 Guter Punkt mit der Scroll-Schwelle, da hatte ich gerade auch einen Fall im Support-Forum, wo das native Lazy-Loading-Markup zum direkten Nachladen von mehr Medien geführt hat.
LG
Natives Lazy Loading wird aber auch vom Browser gesteuert. Die Scroll-Schwelle wird somit nie einstellbar sein, nach den aktuellen Plänen. Es geht also eher um eine Implementierung, die in allen großen Browser funktioniert (Safari kommt noch). Finde ich schon gut.
Das eigene, individuelle Lösungen, am Ende immer »mehr« können, ist doch klar. Die Einfachheit ist aber gerade das, was natives Lazy Load unterscheidet. Da ist kein Plugin, kein Script, kein Ballast. Ich mag es sehr gerne.
Schönes Plugin übrigens. Kannte ich bislang noch nicht und werde ich gleich mal auf einen meiner Blogs weiterempfehlen. Mag einfach saubere, minimale Lösungen.
PS: Hier stimmt was mit dem Cache nicht. Beim ersten Kommentar bekam ich einen 500er und jetzt, viel später, sagt er ich kommentiere zu oft, was doch stark nach Cache aussieht.
Hi,
danke für den Hinweis mit dem 500er, ich beobachte das mal.
Viele Grüße
Florian
Hi Florian,
tolles Plugin!
Ich habe nur einen kleinen Vorschlag:
Es sollte eine Option oder zumindest einen Filter geben, um den NoScript Support zu deaktivieren. Unsere Seite hat SEHR viele Bilder und ist eine dynamische Community, die ohne JS sowieso zu 0% nutzbar ist - wir würden uns gerne den NoScript Markup Code sparen, da für uns nutzlos.
Aktuell habe ich einfach das Plugin gepatched, was natürlich unschön ist: Innerhalb add_noscript_element() einfach ein "return $dom;".
Ein Filter wäre sehr nützlich.
Danke!!
Hi Bjoern,
das ist eine gute Idee, ich werde einen Filter dafür mit in die Liste der Funktionen aufnehmen, die ich einbaue.
Viele Grüße
Florian