Datenvolumen komprimieren

Hallo @ericteubert,

Da Podcastseiten meist mobil angesteuert werden, um schnell mal mobil, beim Hören einen Kommentar abzugeben, habe ich mein bestes gegeben die Seite in der Geschwindigkeit zu optimieren. Im WP ist ein Plugin am Werkeln, das die ausgelieferten JS und CSS Dateien komprimiert, also überflüssige Tabs, Absätze, Leerzeichen, etc. löscht. Der Apache ist auf’s Datenkomprimieren konfiguriert. Zum Teil habe ich auch weitere CSS Dateien, von Plugins manuell durch den Kompressor geworfen. Maschinen können das ja trotzdem lesen, sie brauchen keine übersichtlichen Tabs und Abstände.
Ausgerechnet Podlove wird von Google Pagespeed immer wieder angemahnt.

  • Durch die Komprimierung von: podlove-podcast-plugin/lib/modules/static/podlove-web-player.js?ver=2.0.19 könnten nach der Komprimierung 4,2 KB (15 %) eingespart werden.

Kann man folgende Dateien, die aktuell über das Podlove CDN ausgeliefert werden, nicht einfach ins Plugin tun und somit vom eigenen Server abrufen lassen, so könnte man eine Verlangsamung durch das Öffnen einer zusätzlichen Verbindung zum Podlove-Server vermeiden:

Ist verständlich was ich meine? :slight_smile:

Edit; Nachtrag:
Ich sehe gerade noch, dass podlove die Episodencover in seinen Cache legt. Wäre es nicht sinnvoll die benötigten Bildgrößen einfach mit zu den anderen gercoppten Bildern im WP zu legen; und die Bilder einfach von WP mitgenerieren zu lassen? Vor allem, weil dann Plugins, wie TinyPNG die Bilder mit komprimieren. :smiley: Das wäre für alle super: Der Podcaster muss sich um nix weiter kümmern, Google ist zufrieden und vor allem der Besucher der Website muss weniger Bits durch seine gedrosselte Leitung (Ja, die Drossel ist ein echtes Problem!) in der U-Bahn ziehen.
Warum habt ihr Euch eig. dafür entschieden die Bilder in der benötigten Größe nicht einfach mit generieren zu lassen und stattdessen in den Cache zu legen und immer wieder neu zu generieren? In beiden Fällen ist die Datei ja zuverlässig abrufbar und muss nicht neu erzeugt werden. Mir fiel auf, dass ich, seit dem aktiven gebrauch von Podlove, einen CronJob im Webserver habe. Ist es nicht effizienter nur ein Mal die Bilder zu erzeugen, als es immer zu zu tun?

3 „Gefällt mir“

Etwas offtopic von mir,aber welche PlugIns zum Komprimieren in Wordpress nutzt Du?
Und wie komprimierste manuell css Dateien dass Browser damit zurecht kommen?
Zu lange Ladezeiten ist auch bei mir nen Problem…

2 „Gefällt mir“

@Mespotine
Das Plugin heißt WP Super Minify, gibt auch noch andere, aber als ich mein WP aufgesetzt hatte war das am besten bewertet und hat auch so einige Plugin-CSS-Dateien mitkomprimiert, was andere Plugins nicht taten. Kleiner, aber sehr guter Helfer:

“Manuell” komprimieren, oder besser gesagt reduzieren, geht eig. auch easy. Du kopierst den Quelltext einfach in das Formular und es spuckt Dir einen reduzierten Text aus. Den kannst Du aber quasi nicht mehr lesen, darum solltest Du eine Kopie der Originaldatei anlegen. Wenn Du in Plugin CSS oder JS Dateien eingreifst und sie reduzierst, kann es sein, dass Du beim Update wieder eine große Datei mit viel Overload drin hast.
http://www.cssminifier.com

Und das ist das ganze noch mal für Java Script:
http://javascript-minifier.com

Und ein Killerplugin ist noch Tiny PNG. Die komprimieren Dir JPEG und PNG Dateien für das Web optimiert. Das spart oft richtig viele Bits! Man sieht meistens keinen Qualitätsunterschied, vor allem wird das Bild anscheinend in “Schichten” geladen, man kann bei langsamen Verbindungen zusehen, wie das Bild schärfer wird. Facebook und Co. komprimieren Bilder übrigens auch auf die Weise. Am praktischsten ist es das als WP Plugin zu betreiben, da so auch die von Wordpress erzeugten Bilder in anderen Größen (cropped images), durch den Algorithmus gejagt werden. Hier kannst Du auch noch mal richtig Geschwindigkeit holen.
Hier die Website: https://tinypng.com
Und hier gibt es das für Wordpress, als Plugin:
https://wordpress.org/plugins/tiny-compress-images/

Alles zusammen macht den Server nicht langsamer, verändert die Qualität nicht, ist aber für die Userexperience richtig hilfreich. :slight_smile: Ich ärgere mich ja immer, wenn Seiten riesig sind und nur Mist laden.
Und überprüfen kannst Du den Erfolg dann über die Google Pagespeed Insights.

Am Ende kannst Du dann auch noch Deinen Webserver pimpen, damit er selbst auch noch alle anderen Dateien mit gZIP komprimiert.

4 „Gefällt mir“

Habe jetzt die Plugins installiert und die ganzen Podlove Dateien über FTP geändert. Wie geht das denn mit dem “Server-Pimpen” und geht das auch wenn man nur einen Webspace und keinen eigenen Server hat?

Was ist da gemeint, Minifizierung oder Auslieferung per gzip? Und wieso macht das das minify Plugin nicht?

Nein. So ein CDN hat seine Vor- und Nachteile. Der Nachteil ist, wie du ankreidest, dass eine weitere Domain aufgelöst werden muss. Dafür kann der Button aber unabhängig vom Publisher entwickelt und aktualisiert werden. Das wird sich nicht ändern.

Nein, das geht nicht. In WordPress kann man Cropgrößen nur global definieren und jedes Bild wird in alle Größen umgerechnet. Ganz egal, ob das jemals benötigt wird. Wir berechnen für Retina-Support je Bild 3 Größen. Und das sowohl für Episodencover als auch für Icons und Avatare, alle mit unterschiedlichen Dimensionen. Und das dient letztlich sowohl der Schönheit (Retina) als auch der Performance: es wird eben je Gerät das angepasste Bild ausgeliefert, statt immer das hochaufgelöste.

Podlove erzeugt keine Cronjobs. Wir nutzen das PHP Cron-System von WordPress. Jedes Bild wird nur genau einmal erzeugt. Wir können aber nicht alles auf einmal tun, da ja auch Bilder dazukommen (Avatare, Episodenbilder).

1 „Gefällt mir“

Hallo @ericteubert
ich finde jetzt mal endlich die Zeit zu antworten.

  1. Da ist Minifizierung gemeint. Warum das Plugin das nicht macht, ist mir auch schleierhaft, aber vermutlich ließe sich das Problem leicht beheben, in dem im Plugin einfach nur minifizierte Dateien liegen. Müsste man in den Veröffentlichungs-Workflow einbauen, wird nicht so schwer sein, oder? :smiley: Wie gesagt, ich mache das zurzeit immer händisch, in dem ich es durch das erwähnte Tool laufen lasse und dann auf dem Server, im Plugin ablege.

  2. Hmm … ich verstehe das Problem. Bin aber trotzdem unzufrieden. :smiley: Kann man den Browsercache vielleicht einfach verlängern? So oft ändern sich die Podlovelogos ja nicht, dann wäre zunindest mal ein Teil verbessert. Insbesondere, wenn ich innerhalb mehrerer Tage auf verschiedene Seiten gehe, die den Button eingebunden haben, dann ist ja vielen schon mal geholfen, weil sie nicht ständig die selbe Datei in der U-Bahn durch’s Edgeland schieben müssen.

  3. Auch das verstehe ich, allerdings handelt es sich ja um vergleichsweise kleine Datenmengen, die die Bilder belegen, ich persönlich hätte nichts dagegen, wenn alle Bilder immer noch zusätzlich in die 3 Formate gebracht würden.
    Ich weiß nicht, ob es bei anderen Podcastseiten anders ist, aber im Grunde lade ich ja sowieso nur die Episodencover hoch, die dann von Polove also eh noch mal ins passende Format gerendert werden. Und viel mehr Bilder werden ja nicht benötigt und die paar Bilder, die man dann noch (quasi unnütz) zusätzlich in die Podlove-Formate bringt, ohne sie zu nutzen, ist kein großes Opfer …
    … andere Plugins machen das ja auch gern mal. Ich fände es toll, wenn es dafür eine Lösung gäbe, vielleicht durch einen Opt-In Button? :slightly_smiling:

  4. Warum nicht einfach alles auf ein Mal? Ich habe in den letzten Tagen knapp 5’000 PHP Cronjobs verzeichnet. Die werden mir im www/ des Webservers immer wieder als einzelne Log Dateien gespeichert.

Dennoch muss ich sagen, dass ich Podlove sehr gern benutze und ich mag Eure, und vor allem Deine Arbeit, @ericteubert , sehr! Das soll kein Gemäkel sein, sondern nur ein paar Hinweise und vielleicht Wünsche. :slightly_smiling:

Danke,hab meine Seite u.a. dadurch massivst verschnellert :slight_smile:

Hallo @ericteubert,
ich habe noch mal einen kleinen Vorschlag.
Podlove bindet podlove-podcasting-plugin-for-wordpress/lib/modules/bitlove/js/widget.js ein. Die scheint mir nicht so richtig wichtig zu sein, so dass man sie niedrig priorisieren kann.

Kannst Du im Plugin, beim nächsten Update das tag async in das Script im Header setzen, bzw. kannst Du mir sagen, wie ich in meiner functions.php einen Filter setzen kann, der das Script mit einem async Tag belegt oder ich es in den footer legen kann?

Danke schon mal im Vorhinein,

PWP

async/defer geht in WordPress derzeit leider nur mit Hacks. Siehe https://stackoverflow.com/questions/18944027/how-do-i-defer-or-async-this-wordpress-javascript-snippet-to-load-lastly-for-fas für Inspiration.

Alternativ kannst du in dem Fall auch das Bitlove Modul abschalten, wenn du denkst, dass du es nicht brauchst.

Was macht das Bitlove-Modul eig. genau? Holt Bitlove sich das nicht eh allein, über den Feed?