Antwortzeitmessung in ms - wie auf CB

Klingt nach einem Fall für W3 Total Cache, aber damit habe ich bisher keine guten Erfahrungen gemacht, meist klappt bei mir danach (wie bei gzip) nichts mehr.
 
Aus dem gleichen Grund wie bei gzip kann ich es nicht herausfinden - ich kenne mich damit genau gar nicht aus.

EDIT: Habe gzip nun per .htaccess aktiviert (davor über die functions.php) - jetzt wird alles wieder korrekt dargestellt. Kann mal jemand überprüfen, ob gzip korrekt läuft? Soweit ich das beurteilen kann, ja. Aber Google Page Speed meckert noch immer über fehlende Komprimierung.

Habe es so gemacht:
Code:
#Gzip
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
#End Gzip
 
Zuletzt bearbeitet:
Gzip läuft, bringt dir aber eben nichts, da es eine Mikrooptimierung ist. Du hast nicht das Problem, dass der Download zu lange dauert, sondern dass dein Wordpress zu lahm ist und du zuviele Dateien bei jeder Anfrage abrufst. Das sind die beiden Probleme, die du hast.
 
Hm, okay.
Habe jetzt auch W3 Total Cache aktiviert, aber nicht mit allen Einstellungen.
Ist die Geschwindigkeit jetzt besser?

Die neue .htaccess sieht etwas wild aus, finde ich:

Code:
# BEGIN W3TC Browser Cache
<IfModule mod_mime.c>
    AddType text/css .css
    AddType application/x-javascript .js
    AddType text/x-component .htc
    AddType text/html .html .htm
    AddType text/richtext .rtf .rtx
    AddType image/svg+xml .svg .svgz
    AddType text/plain .txt
    AddType text/xsd .xsd
    AddType text/xsl .xsl
    AddType text/xml .xml
</IfModule>
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css A31536000
    ExpiresByType application/x-javascript A31536000
    ExpiresByType text/x-component A31536000
    ExpiresByType text/html A3600
    ExpiresByType text/richtext A3600
    ExpiresByType image/svg+xml A3600
    ExpiresByType text/plain A3600
    ExpiresByType text/xsd A3600
    ExpiresByType text/xsl A3600
    ExpiresByType text/xml A3600
</IfModule>
<FilesMatch "\.(css|js|htc|CSS|JS|HTC)$">
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header append Cache-Control "public, must-revalidate, proxy-revalidate"
    </IfModule>
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.2.4"
    </IfModule>
</FilesMatch>
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|SVGZ|TXT|XSD|XSL|XML)$">
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header append Cache-Control "public, must-revalidate, proxy-revalidate"
    </IfModule>
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.2.4"
    </IfModule>
</FilesMatch>
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|WAV|WMA|WRI|XLA|XLS|XLSX|XLT|XLW|ZIP)$">
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header set Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate"
    </IfModule>
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.2.4"
    </IfModule>
</FilesMatch>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*\/)?w3tc_rewrite_test$ $1?w3tc_rewrite_test=1 [L]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{QUERY_STRING} =""
    RewriteCond %{HTTP_HOST} =www.fabianstolba.at
    RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR]
    RewriteCond %{REQUEST_URI} (wp\-comments\-popup\.php|wp\-links\-opml\.php|wp\-locations\.php) [NC]
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|wordpress_\[a\-f0\-9\]\+|wordpress_logged_in) [NC]
    RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache/0\.9\.2\.4) [NC]
    RewriteCond "%{DOCUMENT_ROOT}/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f
    RewriteRule .* "/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{QUERY_STRING} =""
    RewriteCond %{HTTP_HOST} =www.fabianstolba.at
    RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR]
    RewriteCond %{REQUEST_URI} (wp\-comments\-popup\.php|wp\-links\-opml\.php|wp\-locations\.php) [NC]
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|wordpress_\[a\-f0\-9\]\+|wordpress_logged_in) [NC]
    RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache/0\.9\.2\.4) [NC]
    RewriteCond "%{DOCUMENT_ROOT}/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.xml%{ENV:W3TC_ENC}" -f
    RewriteRule .* "/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.xml%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> 

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 2 days"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/jpeg "access 2 weeks" 
ExpiresByType image/jpg "access 2 weeks"
ExpiresByType image/png "access 2 weeks"
ExpiresByType text/css "access 1 month"
ExpiresByType text/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType text/xml "access plus 1 seconds" 
ExpiresByType image/x-icon "access 1 year"
</IfModule> 

#Gzip
 

<IfModule mod_deflate.c> 

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

</ifmodule>
 

#End Gzip


# END WordPress
 
Zuletzt bearbeitet:
Ja das PHP ist vielfach schneller geworden. Das kannst du aber auch selbst im Firebug/Chrome im Net-Panel sehen....

Wenn du jetzt noch das Expires-Caching für die JavaScript-Dateien, Stylesheets und Grafiken machst, wird die Seite ein ganzes Stück schneller sein.
 
Ist das nicht bereits darin enthalten?

Code:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 2 days"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/jpeg "access 2 weeks"
ExpiresByType image/jpg "access 2 weeks"
ExpiresByType image/png "access 2 weeks"
ExpiresByType text/css "access 1 month"
ExpiresByType text/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType text/xml "access plus 1 seconds"
ExpiresByType image/x-icon "access 1 year"
</IfModule>

Oder muss ich woanders da noch ran?
 
Verstehe - habe entdeckt, dass es von W3 Total Cache bereits oben in der .htaccess eingetragen ist, also brauche ich den unteren Teil nicht mehr.

Was ist hier das Stichwort, nachdem ich bei meinem Hoster fragen muss?
Expires Header werden nicht unterstützt? Oder wie?
Also fragen ob mod_expires.c unterstützt wird.
 
Ich frag mich, wie beknackt ein Hoster sein muss, dass er etwas die Expires oder GZip nicht grundsätzlich frei schaltet, sorgt es ja nur dafür, dass der Server deutlich weniger Last hat und er dementsprechend mehr Kunden auf den Server packen kann.
 
Meinst du, gzip ist bei meinem Hoster auch nicht aktiviert?
Rückmeldung vom Support gibt es wohl erst ab morgen. :)
 
@Daaron: Das sind diese typischen Hoster, das ist selbst bei einigen großen so. Da wird der Apache so betrieben wie er direkt über die Debian-Repos kommt (da kann er auch 10 Jahre alt sein, egal) oder mit der Standardconfig vom kompilieren. Mitdenkende Hoster habe ich seltenst erlebt.

Ein guter Hoster wird es dann auf Nachfrage aber wenigstens aktivieren, da trennt sich dann die Spreu vom Weizen.
 
Zurück
Oben