Werbung / Banner buchen
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Pagespeed und Image-Caching

    AGI

    • modified Team
    • Beiträge: 300
    • Geschlecht:
    Pagespeed und Image-Caching
    am: 04. April 2019, 09:13:08
    Guten Morgen,

    unser Freund Google bemängelt beim prüfen des Pagespeeds schon seit geraumer Zeit das nicht optimale Caching.
    Für Bilder wird vorgeschlagen, den Cache auf mindestens 1 Jahr zu stellen.
    Das kann natürlich zu Problem führen, wenn ein Bild innerhalb des Zeitraums verändert wird.
    Daher liefert Google auch gleich den Lösungsvorschlag mit: Einen Hash-Wert an die Bild-URL anzufügen, Beispielsweise einen Timestamp.

    Nun könnte man beim Ausliefern des Bildes jedes Mal dessen Bearbeitungszeit auf dem Server abfragen und an die URL anfügen. Das ist in meinen Augen jedoch nicht sehr effizient.
    Ich fände es besser, wenn das Image-Processing das Datum der Bearbeitung in den Bild- und Produkttabellen abspeichert. Diese Timestamps lassen sich dann beim Erzeugen der Bild-URLs einfach daran anfügen. (mein_bild.jpg?v=123456789)

    Leider ist eine solche Änderung in der aktuellen Shopversion 2.0.4.2 rev 11374 nicht updatesicher möglich.
    Daher wollte ich die Idee erst hier Diskutieren bevor ich Core-Dateien individuell verändere. Und wer weiß, vielleicht nimmt das Team den Vorschlag in die nächste Shopversion auf.

    Viel muss ja nicht angepasst werden:
    1. Datenbanktabellen um Timestamp-Spalte erweitern
    2. Timestamps beim beim durchführen des Image-Processings speichern
    3. Produkt-Klasse anpassen um den Timestamp auszulesen und beim erzeugen der Bild-URLs anzufügen
    4. Caching für Bilder in der .htaccess auf 1 Jahr stellen

    Ok, für Bilder die Keine Produktbilder sind, bräuchten wir noch eine andere Lösung.

    Viele Grüße
    Andreas

    Linkback: https://www.modified-shop.org/forum/index.php?topic=40164.0
    rechtstexte für onlineshop

    Timm

    • Fördermitglied
    • Beiträge: 6.318
    Re: Pagespeed und Image-Caching
    Antwort #1 am: 04. April 2019, 10:28:13
    Gute Idee.

    Aber könnte es nicht ein Problem sein, wenn man die Bilder nicht per imageprocessing generieren lässt, sondern selbst verkleinert und hochlädt per ftp? Da würde das mit dem Zeitstempel nicht angehangen werden, oder?

    Gruß Timm

    manne35

    • Fördermitglied
    • Beiträge: 591
    • Geschlecht:
    Re: Pagespeed und Image-Caching
    Antwort #2 am: 04. April 2019, 10:38:55
    Wäre ich vorsichtig mit.
    ... Jedenfalls früher, zur Internet Steinzeit, dauerte es lange bis Bilder ein gutes Ranking bekamen, ...die bei jeder Bildnamensänderung auch wieder leicht futsch war.... Aber wie gesagt, ich bin da kompostie...

    ---> OK habs kapiert, dies wäre ja sowieso nur bei einer Bild Änderung der Fall, dann ist das hinfällig.
    Ändert Ihr eigentlich oft die Bilder ?... Bei mir ist das sehr sehr selten.

    @  AGI
    zu was für Problemen könnte das denn führen wenn ein Bild geändert wird ?

    Timm

    • Fördermitglied
    • Beiträge: 6.318
    Re: Pagespeed und Image-Caching
    Antwort #3 am: 04. April 2019, 10:48:12
    Bilder sind mittlerweile größtenteils schneller über die Bildersuche zu finden, als die Seite im Index landet. Oft schon nach 24h. Zumindest wenn sie in der Sitemap stehen und einen aussagekräftigen Namen haben. Ist bei mir zumindest so durch Nutzung einer automatischen Sitemap inkl Bilder und automatischen SEO Bildernamen.

    Gruß Timm

    AGI

    • modified Team
    • Beiträge: 300
    • Geschlecht:
    Re: Pagespeed und Image-Caching
    Antwort #4 am: 04. April 2019, 10:51:29
    Das Problem entsteht, wenn der Cache auf 1 Jahr gesetzt wird und die Bilder ohne Hash verwendet werden.
    Eine Änderung des Bilds führt dann nicht dazu, dass die Browser es nicht neu laden sondern weiter davon ausgehen, dass es unverändert ist.

    Daher wird eine Lösung erforderlich sein, auch für Kategorie-Bilder und Co,
    Oder der Cache wird nur für Produktbilder per htaccess auf 1 Jahr gesetzt, wenn das geht?

    Der Hash-Wert an der URL verändert ja das eigentliche Bild nicht, sodass die Bildersuche bei Google auch noch ein Bild mit altem Timestamp finden wird. Das sollte also keinen Einfluss haben, oder sehe ich das Falsch?

    @Timm, ja, Bilder ohne imageprocesing werden nicht erfasst.
    Da ich im Moment aber von Produktbildern ausgehe die im Normalfall über den Shop hochgeladen werden, sollten alle prozessiert werden.

    Viele Grüße
    Andreas

    Timm

    • Fördermitglied
    • Beiträge: 6.318
    Re: Pagespeed und Image-Caching
    Antwort #5 am: 04. April 2019, 11:16:41
    Ich mach das auch über immer über das imageprocessing mit geänderter Schärfung. Wollte es nur mal als Gedanken mit aufzählen, da es scheinbar einige gibt, die mit der Qualität des Imageprocessing nicht zufrieden sind und deshalb die Bilder selbst hochladen. Vielleicht gäbe es ja eine Lösung, die für alle funktioniert.

    Gruß Timm

    Hetfield

    • modified Team
    • Beiträge: 937
    Re: Pagespeed und Image-Caching
    Antwort #6 am: 04. April 2019, 11:22:36
    Hier mal eine Klassenerweiterung, die das Datum des Artikelbilds per filemtime ausliest und anhängt.

    MfG Hetfield  8-)

    AGI

    • modified Team
    • Beiträge: 300
    • Geschlecht:
    Re: Pagespeed und Image-Caching
    Antwort #7 am: 04. April 2019, 11:42:08
    Hallo Hetfield,

    an diese Lösung dachte ich auch zuerst. Das wäre ja auch updatesicher möglich.
    Aber:
    Die Erweiterung liest bei jedem Mal, wenn ein Produktbild ausgegeben werden soll, dessen Erstellungszeit aus.
    Aus performance-Gründen hätte ich diese Zeit aber gern in der Datenbank, um sie nicht immer neu ermitteln zu müssen, wenn nichts geändert wurde.

    Viele Grüße
    Andreas

    Alfred

    • Experte
    • Beiträge: 2.117
    Re: Pagespeed und Image-Caching
    Antwort #8 am: 04. April 2019, 17:09:15
    unser Freund Google bemängelt beim prüfen des Pagespeeds schon seit geraumer Zeit das nicht optimale Caching.
    Für Bilder wird vorgeschlagen, den Cache auf mindestens 1 Jahr zu stellen.
    Das kann natürlich zu Problem führen, wenn ein Bild innerhalb des Zeitraums verändert wird.

    Für solche Fälle gibt es doch eine Bilder-Sitemap.
    Wie lange was gecacht wird kann man ja in der .htaccess festlegen.
    Das heißt doch nicht das Google erst in einem Jahr wieder kommt und crawlt.
    Es ist nur eine Anweisung für den Browser der Nutzer.

    Alles andere was den Bildnamen ändert ist nicht zu empfehlen wenn man schon rankt.

    AGI

    • modified Team
    • Beiträge: 300
    • Geschlecht:
    Re: Pagespeed und Image-Caching
    Antwort #9 am: 04. April 2019, 17:25:39
    Hallo Alfred,

    An der Stelle reden wir aneinander vorbei.
    Zitat
    Das heißt doch nicht das Google erst in einem Jahr wieder kommt und crawlt.
    Es ist nur eine Anweisung für den Browser der Nutzer.
    Google ist an der Stelle auch egal.

    Wenn der Cache nun mit einem Jahr festgelegt wurde und sich das Bild zwischenzeitlich ändert, muss der Browser des Nutzers nun auch das neue Bild laden. Und das wird wohl nur mit angefügtem Timestamp geschehen.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: Pagespeed und Image-Caching
    Antwort #10 am: 06. April 2019, 14:15:54
    ...
    Aber:
    Die Erweiterung liest bei jedem Mal, wenn ein Produktbild ausgegeben werden soll, dessen Erstellungszeit aus.
    Aus performance-Gründen hätte ich diese Zeit aber gern in der Datenbank, um sie nicht immer neu ermitteln zu müssen, wenn nichts geändert wurde.
    ...

    Der Tabelle products ein Feld hinzuzufügen welches automatisch von der product-Klasse ausgelesen wird ist doch mittels $add_select_product möglich und die Klassenerweiterung liest das neue Feld aus und hängt es an den Bildnamen an.
    Ich weiß, den Zeitstempel in das neue Feld zu speichern bei Upload eines Bildes ist das Problem.
    Das dürfte man allerdings mittels Klassenerweiterung der catagories-Klasse im Backend lösen können.
    Code: PHP  [Auswählen]
    $this->catModules->insert_product_after($products_data,$products_id);
    Auch wäre es möglich das per Ajax zu lösen, denke ich.

    Generell finde ich übrigens, daß es Zeit wird auch den Kategorie-Bildern standard-mäßig ein Imageprocessing zu verleihen.

    Gruß,
    noRiddle
    17 Antworten
    18006 Aufrufe
    24. November 2015, 12:50:52 von LED-Profi
    38 Antworten
    21459 Aufrufe
    03. Oktober 2015, 09:12:42 von Tomcraft
    1 Antworten
    865 Aufrufe
    18. September 2020, 11:40:14 von Tomcraft
               
    anything