Perofrmance Probleme

Hallo,

der Shop liegt bei IONOS auf einem shared Server.

Ich habe beim Aufruf der Seite teilweise Wartezeiten bis zum Laden der Seite von 20-30 Sekunden, das ist viel zu langsam.

Gzip ist aktiviert. was gibt es noch für Möglichkeiten. Die Ladezeiten sind uach ohne Bilder oder Slider auf Startseite so lange.

Ergebnisse Pagespeed Insights

Erste Inhalte gezeichnet 2,1 s

Geschwindigkeitsindex 3,5 s

Zeit bis Interaktivität 5,0 s

Inhalte weitgehend gezeichnet 4,4 s

Erster CPU-Leerlauf 4,4 s

Maximaler potenzieller First Input Delay 400 m

 

beim IONOS Website-Checker

 

kommt folgendes

Schnell sein

Behebung erforderlich

CDN aktivieren

Ein Content Delivery Network (CDN) optimiert die Auslieferung Ihrer Website an Ihre Besucher. Es ist vor allem dann sinnvoll, wenn Sie Besucher aus unterschiedlichen geographischen Regionen auf Ihrer Website haben.

Website-Größe optimieren

Optimieren Sie die Übertragungsgröße Ihrer Website. So wird sie schneller geladen.

 

Das übertragene Volumen Ihres HTML ist mit 168 KB umfangreich. Es sollten nicht mehr als 64 KB sein.

 

 

da muss unbedingt noch was passieren.

Hier mal der Inhalt der .htacces im public Verzeichnis

DirectoryIndex index.php
    
	# HTTPS ERZWINGEN
	RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
	RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
	RewriteCond %{HTTPS} !on
	RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
	

    Options -MultiViews



    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    # Sets the HTTP_AUTHORIZATION header removed by Apache
    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

    # If the requested filename exists, simply serve it.
    # We only want to let Apache serve files and not directories.
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    # Rewrite all other queries to the front controller.
    RewriteRule ^ %{ENV:BASE}/index.php [L]



    
        RedirectMatch 302 ^/$ /index.php/
    
    
    RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteRule (.*) https://%{HTTP_HOST}/$1 
    

# Beginn Anpassung
# Gzip Komprimierung

mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*



AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript



##### Optimize default expiration time - BEGIN

    ## Enable expiration control
# ExpiresActive On

    ## CSS and JS expiration: 1 month after request
    ExpiresByType text/css "access plus 1 month"
	#ExpiresByType text/css "now plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
	#ExpiresByType application/javascript "now plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
	#ExpiresByType application/x-javascript "now plus 1 month"
	ExpiresByType text/javascript "access plus 1 month"

    ## Image files expiration: 1 month after request
    ExpiresByType image/bmp "now plus 1 month"
	ExpiresByType image/gif "access plus 1 month"
	ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/jp2 "now plus 1 month"
    ExpiresByType image/pipeg "now plus 1 month"
	ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/svg+xml "now plus 1 month"
    ExpiresByType image/tiff "now plus 1 month"
    ExpiresByType image/x-icon "now plus 1 month"
    ExpiresByType image/ico "now plus 1 month"
    ExpiresByType image/icon "now plus 1 month"
	ExpiresByType image/ico "access plus 1 month"
    ExpiresByType application/ico "now plus 1 month"
    ExpiresByType image/vnd.wap.wbmp "now plus 1 month"

    ## Font files expiration: 1 month after request
    ExpiresByType application/x-font-ttf "now plus 1 month"
    ExpiresByType application/x-font-opentype "now plus 1 month"
    ExpiresByType application/x-font-woff "now plus 1 month"
    ExpiresByType font/woff2 "now plus 1 month"
    ExpiresByType image/svg+xml "now plus 1 month"

    ## Audio files expiration: 1 month after request
    ExpiresByType audio/ogg "now plus 1 month"
    ExpiresByType application/ogg "now plus 1 month"
    ExpiresByType audio/basic "now plus 1 month"
    ExpiresByType audio/mid "now plus 1 month"
    ExpiresByType audio/midi "now plus 1 month"
    ExpiresByType audio/mpeg "now plus 1 month"
    ExpiresByType audio/mp3 "now plus 1 month"
    ExpiresByType audio/x-aiff "now plus 1 month"
    ExpiresByType audio/x-mpegurl "now plus 1 month"
    ExpiresByType audio/x-pn-realaudio "now plus 1 month"
    ExpiresByType audio/x-wav "now plus 1 month"

    ## Movie files expiration: 1 month after request
   ExpiresByType application/x-shockwave-flash "now plus 1 month"
   ExpiresByType x-world/x-vrml "now plus 1 month"
   ExpiresByType video/x-msvideo "now plus 1 month"
   ExpiresByType video/mpeg "now plus 1 month"
   ExpiresByType video/mp4 "now plus 1 month"
   ExpiresByType video/quicktime "now plus 1 month"
   ExpiresByType video/x-la-asf "now plus 1 month"
   ExpiresByType video/x-ms-asf "now plus 1 month"


##### 1 Month for most static resources

    Header set Cache-Control "max-age=2592000, public"


##### Set Header Vary: Accept-Encoding

    
        Header append Vary: Accept-Encoding

 

Also die Kleinigkeiten, die Pagespeed bemängelt sind da sicherlich nicht das Problem.

Am besten kann man solche Dinge mit Tideways oder Blackfire analysieren, ich bezweifle aber, dass du sowas bei 1 und 1 zur Verfügung hast. Kann so erstmal alles sein. 

Wie viele Produkte und Kategorien hast du denn?

1 „Gefällt mir“

Hallo Moritz,

danke für deine Antwort, es wird sich inkl. der Varianten im Bereich von 2000-3000 bewegen.

habe hier noch ein anders Problem

https://forum.shopware.com/discussion/67583/ausgetauschte-produktbilder-werden-nicht-ins-frontend-uebernommen#latest

vielleicht hast du noch eine Idee warum da nichts ins Frontend übernommen wird?

Grüße Siggi

 

 

Das ist aber quasi garnichts, da musst du unter einer Sekunde liegen.

Welche Datenbank und PHP Version hast du denn da?

Hallo Moritz,

PHP Version: 7.3.1.6

MySQL 5.012

ich verstehe ja auch nicht warum das so lange dauert.

Grüße Siggi

Sicher, dass du MySQL 5.0 meinst?

 

Hallo Moritz,

Sorry war  doch MySQL 5.7

kann den Fehler reproduzieren, wenn ich den Browserverlauf aus der Chronik im Firefox lösche und die Seite neu aufrufe geht es relativ schnell.

Rufe ich die Seite später wieder auf ohne die Chronik zu löschen dauert es wieder sehr lange. Da scheint irgendetwas falsch eingestellt zu sein, ich vermute bei

ExpiresByType

in der .hatacces.

fragt sich nur was da falsch ist.

Grüße Siggi