Schritte zur Optimierung von WordPress im Hinblick auf die Serverauslastung?

81

Welche Schritte kann ich neben der Installation von W3 Total Cache oder einem anderen Caching-Plugin unternehmen, um sicherzustellen, dass mein Design und meine Website so schnell wie möglich ausgeführt werden?

Paul Sheldrake
quelle
Wenn Sie Ihre Site mit VPS betreiben, sollten Sie versuchen, den Cache erneut zu aktivieren.
Ahmetlutfu

Antworten:

32

Sie könnten WordPress auf Nginx installieren. Es gibt eine Reihe von Ressourcen, um zu helfen:

Einige Leistungsinformationen von diesem letzten Link (der etwas anders zu sein scheint als die anderen):

Also habe ich beschlossen, einen Proxy vor WordPress zu platzieren, um so viel wie möglich statischen Cache. Der gesamte nicht authentifizierte Datenverkehr wird direkt aus dem Nginx-Dateicache bereitgestellt, wobei einige Anforderungen (z. B. die Generierung von RSS-Feeds) von 6 Seiten / Sekunde bis über 7000 Seiten / Sekunde verarbeitet werden. Uff. Nginx kümmert sich auch um das Protokollieren und Gzippen, sodass die schwereren Back-End-Apaches das tun, was sie am besten können: Dynamische WordPress-Seiten werden nur bei Bedarf bereitgestellt.

...

Auf Nginx - es ist so effizient, es ist beängstigend. Ich habe noch nie gesehen, dass es mehr als 10 bis 15 Megabyte RAM und ein bisschen CPU verbraucht, selbst unter unserer größten Last. Unsere Gangliendiagramme lügen nicht: Wir haben unseren Speicherbedarf halbiert, unseren ausgehenden Netzwerkdurchsatz verdoppelt und unsere Last vollständig ausgeglichen. Wir haben im Grunde keine Probleme gehabt, seit wir dies eingerichtet haben.

Travis Northcutt
quelle
Hat jemand eine Statistik über die Geschwindigkeitseinsparungen bei der Verwendung von Nginx?
Mike Lee
Mike, ich habe einen weiteren Link und einige Informationen aus diesem Beitrag hinzugefügt.
Travis Northcutt
Ich habe mein Hauptblog von einem 1G-Server mit Apache auf einen 512M-Server mit Nginx verschoben. Läuft trotz des geringeren Arbeitsspeichers flüssiger. Zugegeben, ich habe andere Dienste, die auf dem 1G-Server ausgeführt werden (E-Mail, IMAP, Mailman, mehrere andere Websites mit geringem Datenverkehr).
Dougal Campbell
Hinweis: Das Ausführen von WordPress unter nginx unterscheidet sich von der Verwendung von nginx als Proxy-Cache vor Wordpress.
Sam
26

Legen Sie clientseitige Ablaufzeiten für Dinge wie CSS, Bilder, JavaScript usw. fest, die nicht für jeden Seitenaufruf erneut heruntergeladen werden müssen. Dies hat bei weitem den größten Unterschied bei den Ladezeiten meiner Website bewirkt. Der schnellste Download ist der Download, der niemals stattgefunden hat ...

# BEGIN Expire headers
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 7200 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 2592000 seconds"
  ExpiresByType text/javascript "access plus 2592000 seconds"
  ExpiresByType application/x-javascript "access plus 2592000 seconds"
  ExpiresByType text/html "access plus 7200 seconds"
  ExpiresByType application/xhtml+xml "access plus 7200 seconds"
</IfModule>
# END Expire headers

# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
  <FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(css)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(js)$">
    Header set Cache-Control "max-age=2592000, private"
  </FilesMatch>
<filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=7200, public"
</filesMatch>
# Disable caching for scripts and other dynamic files
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
# END Cache-Control Headers

Sie können alles, was Sie können, vor-gzipen (7-zip ist ein gutes Werkzeug dafür) und es an derselben Stelle hochladen, an der Sie gerade gzipten. Ändern Sie die .htaccess-Datei, um die vor-gzipten Dateien bereitzustellen (siehe unten). Die Einschränkung hier ist, dass Sie daran denken müssen, sie erneut zu komprimieren, wenn Sie Dinge aktualisieren. Dies reduziert den CPU-Aufwand, abgesehen vom Parsen von .htaccess.

RewriteEngine on
#Check to see if browser can accept gzip files. If so and we have it - serve it!
ReWriteCond %{HTTP:accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
#make sure there's no trailing .gz on the url
ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$
#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f
#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [QSA,L]

Dies ist nur eine grobe Antwort. Es gibt viele Variationen zu diesem Thema. Ich habe darüber gebloggt und unter http://icanhazdot.net/2010/03/23/some-wordpress-stuff/ einige Verweise auf ausführlichere Artikel hinzugefügt . Lesen Sie das und, was noch wichtiger ist, die Referenzen, auf die ich verweise - sie sind gute Ressourcen.

Beachten Sie, dass Benutzer ihren Cache aktualisieren müssen, wenn Sie häufig basteln.

Ein Plugin, das ich auch sehr nützlich fand, ist wp-minify . Beachten Sie dabei, dass Sie seitenbezogene Elemente (Kontaktformular, Schieberegler für die Startseite usw.) ausschließen sollten, damit Sie nicht für jede Seite den gesamten Satz von CSS, JS usw. erneut herunterladen. Dies ist ein guter Weg, um CSS, JS usw. zu minimieren, zu kombinieren und zu komprimieren. Wp-minify spielt gut mit Supercache und auch mit Ablauf-Headern, die ich oben beschrieben habe.

Verwenden Sie Yslow in Firebug (Firefox) oder einem ähnlichen Programm, um Ihre http-Anforderungen zu überwachen und festzustellen, was komprimiert ist und was nicht. Schauen Sie sich auch die Ablauf-Header an. Sie werden bald sehen, was Sie verbessern können.

CAD-Typ
quelle
2
Für den Fall, dass jemand vorhat, Ihre Rewrites zu kopieren / einzufügen, gibt es eine Instanz von "ReWrite", die korrigiert werden sollte.
Jeremy L
2
welche Instanz?
CAD Kerl
@Nerdling Könnten Sie bitte darauf hinweisen, welche Instanz repariert werden muss? Ich möchte den obigen Code verwenden.
Helgatheviking
Es kann im Zusammenhang mit mod gzip stehen, das in späteren Versionen von Apache veraltet ist. Ich musste meine vor kurzem auf Mod Deflate umstellen.
CAD Kerl
2
Für eine Reihe von Standardeinstellungen für .htaccess bietet das HTML5-Boilerplate-Projekt eine Vorlage. github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
Paul Sheldrake
21

Minimieren Sie die Anzahl der Plugins, die Sie ausführen, auf das, was Sie wirklich benötigen. Beachten Sie insbesondere Plugins, die beim Laden jeder Seite JavaScript- und CSS-Code hinzufügen, auch wenn dieser Code nicht auf der Seite verwendet wird.

Wenn Sie Ihr eigenes Design von Grund auf neu erstellen, teilen Sie Ihr CSS so auf, dass Funktionen, die nur für bestimmte Seitenvorlagen oder Ansichtstypen (einzelne Posts, Archive, Kategorien usw.) erforderlich sind, nur bei Bedarf geladen werden.

Konfigurieren Sie W3TC für die Verwendung eines CDN (wie Amazon CloudFront oder eines der anderen von W3TC unterstützten).

Überprüfen Sie, ob die Minify-Optionen für Sie funktionieren (einige Plugins generieren js / css, die sich nicht gut minimieren lassen. Testen Sie Ihre Site also, nachdem Sie die Minify-Funktion aktiviert haben).

Wenn Sie die volle Kontrolle über Ihren MySQL-Server haben, stellen Sie sicher, dass der query_cache aktiviert ist. Verwenden Sie ein MySQL- Optimierungsskript, um andere Möglichkeiten zur Optimierung Ihrer Datenbankkonfiguration zu finden.

Wenn die Verwendung eines CDN aus irgendeinem Grund problematisch ist, konfigurieren Sie mod_expires in Ihrem Apache-Setup. Stellen Sie die Ablaufzeiten so lange ein, wie es für statische Typen wie Bilder, CSS, Javascript, Video, Audio usw. angemessen ist.

Dougal Campbell
quelle
14

Führen Sie memcached aus und verwenden Sie einen Objektcache , um die Anzahl der Datenbankabfragen zu verringern. Dadurch werden Daten aus der Datenbank und nicht Seiten zwischengespeichert. Ich bin mir nicht sicher, ob w3-total-cache dies bereits tut.

Stellen Sie sicher, dass Sie einen Opcode-Cache wie APC ausführen . (Es sind mehrere weitere verfügbar.)

Annika Backström
quelle
2
APC macht WordPress sehr viel reaktionsschneller, insbesondere auf den Admin-Seiten. ABER es gibt einige mögliche Konfigurationskonflikte zwischen WP-SuperCache und APC. Dies scheint keinen Einfluss auf den W3-Cache zu haben.
WhIteSidE
Es gibt einen ausgezeichneten Beitrag von Mark Jaquith zu diesem Thema: APC Object Cache Backend für WordPress . Sie können Batcache mit APC verwenden.
ICC97
8

Platzieren Sie Ihr Blog nicht nur wie wp-cache auf einem Host-Volume, auf dem die Eigenschaft "noatime" festgelegt ist. Andernfalls führen Sie SSH in Ihrem Host aus (sofern Ihr Webhost dies bereitstellt) und führen Sie diesen Befehl regelmäßig alle paar Tage für Ihre Dateien aus:

chattr -R +A ~/*

Das ~ / * bedeutet "meine Dateien unter meinem Home-Verzeichnis". Sie können diesen Pfad nach Belieben ändern. Sie können dies auch in einem Cron-Job in cpanel einrichten, wenn Ihr Webhost dies bereitstellt.

Weitere Informationen zur Eigenschaft atime finden Sie hier . Dies beschleunigt die Leseleistung von Linux-Festplatten erheblich.

Manchmal wird Ihre Website von Spinnen gehämmert. Sie können ein Tool wie SpyderSpanker oder Chennai Central verwenden, um Spinnen herauszufiltern, die nicht dazu beitragen, mehr Page Rank auf Ihre Website zu bringen und sie lediglich zu verlangsamen, und dann gute Spinnen (wie Google, Bing usw.) zu drosseln, indem Sie sie zufällig senden HTTP 304 Nicht geänderte Nachrichten.

Eine andere Sache, die ich sehe, sind nur schlecht geschriebene Plugins. Wenn Sie lernen, wie man Plugins erstellt, werden Sie feststellen, dass einige Plugins ineffizient codiert sind, oder Sie finden sogar Zeitbomben, z. B. eine Datenbanktabelle, die gefüllt und nie bereinigt wird und z. B. eingehende Verbindungsdaten speichert.

Neben allen anderen hier beschriebenen Lösungen können Sie auch eine WordPress-Webfarm für Ihr Blog erstellen, indem Sie sie auf mehreren Webknoten-PCs hosten, die alle eine Verbindung zu einer einzelnen Datenbank und einem einzelnen Datenträger für die Dateien herstellen (z. B. einem über NFS gemounteten Datenträger) ). Schauen Sie sich Ultra Monkey an, um zu erfahren, wie Sie das alles zum Laufen bringen.

Volomike
quelle
7

Ein paar Antworten aus meinem Kopf:

1) Minimieren Sie die Anzahl der HTTP-Anforderungen, die der Browser an Ihren Host richten muss, indem Sie, wo möglich / praktisch, JavaScript und CSS verketten.

2) Laden Sie so viel wie möglich von Ihren Images / Medien, die für Drittanbieter-CDNs bereitgestellt werden, herunter, insbesondere wenn Sie Shared Hosting verwenden.

3) Reduzieren Sie die Anzahl der auf der Startseite angezeigten Posts, um die gesamte Renderzeit zu verkürzen.

3a) Versuchen Sie, ein Thema zu verwenden, das einige der vorgestellten Beiträge auf der Titelseite und alle anderen älteren Beiträge als Auszüge enthält.

ZaMoose
quelle
2
+1 für die Reduzierung der Anzahl der Beiträge, dies gibt einen enormen Schub ohne Kosten. Die Leute brauchen nicht wirklich zehn alte Posts zu sehen, ich habe meine conf auf acht gesetzt.
Ripper234
7

Durch das Zwischenspeichern des WordPress-Menüs erhalten Sie außerdem eine Leistungssteigerung. Besonders wenn Sie viele Seiten oder eine riesige Menüstruktur haben, sollte dies berücksichtigt werden.

Mach es in 2 einfachen Schritten. Erstellen Sie zunächst eine Funktion, die das Menü abruft oder erstellt, anstatt es wp_nav_menudirekt aufzurufen .

function get_cached_menu( $menuargs ) {

    if ( !isset( $menuargs['menu'] ) ) {

        $theme_locations = get_nav_menu_locations();
        $nav_menu_selected_id = $theme_locations[$menuargs['theme_location']];
        $termslug = get_term_by( 'id', $nav_menu_selected_id, 'nav_menu' );
        $transient = 'menu_' . $termslug->slug . '_transient';

    } else {

        $transient = 'menu_' . $menuargs['menu'] . '_transient';

    }


    if ( !get_transient( $transient ) ) { // check if the menu is already cached

        $menuargs['echo'] = '0'; // set the output to return
        $this_menu = wp_nav_menu( $menuargs ); // build the menu with the given $menuargs
        echo $this_menu; // output the menu for this run
        set_transient( $transient, $this_menu ); // set the transient, where the build HTML is saved

    } else {

        echo get_transient( $transient ); // just output the cached version

    }

}

Ersetzen Sie in Ihrem Thema das wp_nav_menus durch get_cached_menu. Jetzt haben Sie jedes Mal, wenn das Menü aufgerufen wird, eine Datenbankabfrage anstelle der gesamten Menüerstellung.

Menüs ändern sich nicht oft - aber Sie müssen sich auch in die wp_update_nav_menuAktion einklinken, um die alten Transienten zu löschen.

Mach es so:

add_action('wp_update_nav_menu', 'my_delete_menu_transients');

function my_delete_menu_transients($nav_menu_selected_id) {

    $termslug = get_term_by( 'id', $nav_menu_selected_id, 'nav_menu' );

    $transient = 'menu_' . $termslug->slug . '_transient';

    delete_transient( $transient ); 

}

Das Menü wird beim nächsten Aufruf der Seite generiert. Verwenden Sie die zwischengespeicherte Version, bis das Menü erneut aktualisiert wird.

Aktualisierte Version

Vielen Dank an @helgatheviking für den Hinweis auf einen Fehler zwischen Slugs und IDs. Ich habe die Funktionen so aktualisiert, dass sie sowohl mit theme_positionals auch funktionieren menu(für einen direkten Aufruf des Menüs).

Die Menüs werden immer mit dem Namen des Menüs gespeichert, nicht mit der Position im Thema.

fischi
quelle
Dies scheint eine wirklich coole Idee zu sein. Ich habe jedoch ein Problem mit dem Code. Wenn wir die vorübergehenden Ausräumen sind, das $nav_menu_selected_idist eine Zahl, während , wenn der Aufruf get_cached_menu()des menu_idein String - Variable ist, da diese Parameter die CSS - ID für das wird <ul>Element.
Helgatheviking
5

Verwenden Sie eine Datenbankklasse, die für die Optimierung zugeschnitten ist. Wir haben gute Erfahrungen mit eigenem Code gemacht, um die Speichernutzung und die Geschwindigkeit des Datenbankzugriffs zu verringern. Darüber hinaus können Sie die Datenbankstruktur selbst durch einige kleine Änderungen optimieren, die ebenfalls viel bewirken.

Ein Teil des Datenbankklassencodes befindet sich im WordPress-Trac, er hat es nicht in den Core geschafft ( Ticket Nr. 11799 und verwandte ).

hakre
quelle
Interessante Lösung. Hier ist die URL zum Trac Ticket, falls sich auch jemand dafür interessiert: core.trac.wordpress.org/ticket/11799
Mike Lee
4

Für eine stark frequentierte Site sollten Sie alle MySQL-Puffer auf den jetzt vorhandenen Inhalt abstimmen. Unabhängig von der Version von WordPress kann die Konfiguration der MySQL-Ebene berechnet werden .

Wenn Sie über InnoDB-Daten verfügen, ohne innodb_file_per_table zu aktivieren, müssen Sie InnoDB bereinigen, indem Sie jede Tabelle in einen eigenen physischen Tabellenbereich unterteilen . Es ist möglich, ordentliches MySQL-Tuning durchzuführen, selbst wenn Sie eine begrenzte Hardware haben . Es gibt viele Szenarien für solche InnoDB-Optimierungen .

IMHO können Sie keine guten Einstellungen für my.cnf planen, ohne die zu konfigurierende Datenmenge zu kennen. Sie müssten regelmäßig einen aktuellen Datensatz aus der Produktion in eine Staging-Umgebung laden, Optimierungen durchführen und die zu konfigurierenden Zahlen in der Datei my.cnf des Produktionsservers bereitstellen.

RolandoMySQLDBA
quelle
3

Sie können die globale Ausgabekomprimierung aktivieren . Dadurch wird alles automatisch gelöscht, wenn der Browser dies unterstützt. Dies reduziert die Größe der übertragenen Dateien drastisch, erhöht jedoch die CPU-Auslastung.

Scott M.
quelle
Dies führt dazu, dass sich Ihre Website viel langsamer "anfühlt". Der Yahoo! In technischen Dokumenten wird empfohlen, den Code direkt nach dem Ende des Kopfes und vor dem Beginn des Textes zu löschen, damit Skripte und Stile geladen werden können. Indem Sie die gesamte Seite puffern, verhindern Sie, dass dies geschieht, und die Seite "fühlt" sich langsam an, weil der Benutzer warten muss, bis WordPress die gesamte Seite gerendert hat, bevor der Benutzer etwas sieht.
WhIteSidE
Scott sprach nicht vom Puffern der gesamten Seite, sondern von der Verwendung der Apache-Ausgabekomprimierung. Das ist etwas anderes, nur wenn Sie die PHP-Ausgabekomprimierung über den Ausgabepuffer verwenden, würde dies die von Ihnen vage beschriebenen Mängel aufweisen. Aber nicht per se, weil das Puffern der Ausgabe letztendlich die Dinge beschleunigen kann. Dies hat etwas mit E / A auf Ihrem Server zu tun.
Hakre
3

Ich habe kürzlich im WordCamp Houston über dieses Thema gesprochen . Alle oben genannten Empfehlungen sind großartig und es ist wichtig, sicherzustellen, dass das gesamte Front-End-Material vollständig optimiert ist. Dann können Sie mit der Bearbeitung der Caching- und Serverleistungsprobleme beginnen.

Durch progressives Rendern fühlen sich Ihre Seiten schneller an, da der Benutzer den Seiteninhalt sieht, bevor er vollständig geladen ist. Stellen Sie zu diesem Zweck sicher, dass sich alle blockierenden Js ganz unten auf der Seite und Css oben befinden.

Wenn Sie viele Social Media-Schaltflächen verwenden, können Sie die Skripte so anpassen, dass sie nach dem vollständigen Laden der Seite in einen Iframe geladen werden. Ich habe ein Tutorial dazu geschrieben, wie man es mit dem TweetMeMe-Re-Tweet-Button macht (mittlerweile veraltet, da Twitter seinen eigenen Retweet-Button veröffentlicht hat), aber es kann immer noch auf andere Share-Buttons angewendet werden.

Um die Serverleistung zu verbessern, sollten Sie Nginx als Front-End-Proxy für statische Inhalte mit Apache in Betracht ziehen, der das schwere PHP- und MySQL-Heben handhabt.

Chris_O
quelle
2

Da es noch niemand erwähnt hat, besteht einer der wichtigsten Schritte zur Verbesserung der Serverleistung in Verbindung mit einem LAMP-Setup darin, zu Apache Worker Thread und mod_fcgid zu wechseln.

Dadurch wurden 500 MB Speicher auf meinem virtuellen privaten Server freigegeben.

Maschenfelder
quelle
Ich habe dies schon einmal versucht, aber ich konnte noch nie eine stabile Apache Worker + FCGI-Umgebung zum Laufen bringen. Wenn jemand unter Ubuntu eine gute Setup-Anleitung dafür kennt , poste sie bitte. Ich wäre besonders dankbar für Anweisungen, die einige der Apache-Konfigurationsanweisungen beschreiben, die sich auf das FCGI-Verhalten auswirken, und erläutern, wie sich das Optimieren auf die Speichernutzung, die Leistung usw. auswirkt. im Proxy-Cache-Server.
Dougal Campbell
Stall definieren. Meine Installation läuft sehr stabil, aber Sie würden 2 GB RAM in meiner Konfiguration benötigen. Sie müssen nur lesen und optimieren. Apache's Dokumentation zu fcgi ist ziemlich umfangreich.
Maschenfelder
3
versuchen Sie, virtualmin.com zu überprüfen, es ist sehr stabil und kostenlos
Ünsal Korkmaz
1

Anleitung zur Überprüfung des Plugins langsamer

Es gibt ein wunderschön einfaches Plugin namens Page Load Time , das den Seitenfuß mit einem Timer versieht. Es sind eigentlich nur vier Codezeilen:

<?php
function ur_pageload_footer() {
    printf(__('Page in %s seconds', 'pageload'), timer_stop());
}
add_action('wp_footer', 'ur_pageload_footer')

Dann:

  1. Erstellen Sie eine Tabelle
  2. Listen Sie alle aktiven Plugins auf und fügen Sie sie dort ein
  3. Aktualisieren Sie die Seite dreimal und notieren Sie sich die Ladezeit der Seite pro Umdrehung
  4. Gehen Sie die Plugins nacheinander durch und deaktivieren Sie sie
  5. Wiederholen Sie Schritt 3
  6. Beachten Sie die Reihenfolge, in der Sie die Plugins deaktiviert haben

Ihre Tabelle sollte ungefähr so ​​aussehen

+-------+-------+-------+-------+--------+
| Run 1 | Run 2 | Run 3 | Order | Plugin |

Wenn sich also nach dem Deaktivieren eines Plugins die Seitenantwortzeit signifikant erhöht, können Sie sehen, ob Sie dieses Plugin vermeiden können.

Ich habe zwei Plugins gefunden, die dazu geführt haben, dass mqtranslate und das (ziemlich alte, aber gute) Multi-Level-Navigations-Plugin erheblich langsamer wurden .

icc97
quelle
Es wäre wirklich cool, diesen Prozess zu automatisieren, wenn Phantom und Selen (oder etwas Ähnliches) automatisch ablaufen und am Ende einen kleinen Bericht ausspucken.
Paul Sheldrake
-1

Halten Sie sich an das W3 Total Cache- Plugin für die Caching-Funktionalität in WordPress. Aktivieren Sie das Seiten-Caching und das Datenbank-Caching auf der Einstellungsseite des Plugins. Stellen Sie sicher, dass Sie 'Alternativer PHP-Cache (APC / APCu)' als Caching-Mechanismus auswählen. Aktivieren Sie KEINE Minifizierung im W3-Gesamtcache, da es viele Möglichkeiten gibt, das Erscheinungsbild und / oder die Funktionalität Ihrer Website zu beeinträchtigen. Wir überlassen es Cloudflare.

Wenn Sie mit der Konfiguration der restlichen Plug-in-Funktionen fertig sind, richten Sie Cloudflare für Ihre Website ein. Stellen Sie sicher, dass Sie Cloudflare auch in den W3 Total Cache-Einstellungen unter "Erweiterungen" aktivieren.

Cloudflare ist ein Content Delivery Network, das alle statischen Inhalte (Bilddateien, CSS, JS, Dokumente usw.) von Ihrer Site zwischenspeichert und Ihren Besuchern von ihren globalen Servern aus zur Verfügung stellt. Dies kann helfen, die Ladezeiten von Seiten zu verkürzen und die Belastung Ihres Servers zu verringern. Eine Liste der Dateitypen, die von Cloudlfare zwischengespeichert werden, finden Sie in dieser Liste . Darüber hinaus hat Cloudflare einen kostenlosen Plan.

Setzen Sie in Cloudflare die Caching-Stufe auf Standard und den Cache-Ablauf des Browsers auf mindestens 20 Stunden. Aktivieren Sie Always Online ™, damit Cloudflare auch dann die statischen Seiten Ihrer Website aus dem Cache bereitstellt, wenn Ihr Server ausfällt. Aktivieren Sie auch die automatische Minimierungsfunktion (erinnern Sie sich, warum ich Sie gebeten habe, die Minimierung für W3 Total Cache nicht zu aktivieren? Cloudflare macht es besser!). Setzen Sie dann Rocket Loader ™ auf Automatisch.

Hier ist ein Auszug dessen, was Rocket Loader macht:

  • Verringern Sie die Anzahl der Netzwerkanforderungen, indem Sie JavaScript-Dateien, auch Ressourcen von Drittanbietern, bündeln, um das Rendern von Seiten nicht zu verlangsamen.

  • Das asynchrone Laden von Skripten, einschließlich Skripten von Drittanbietern, verhindert,
    dass der Inhalt Ihrer Seite
    sofort geladen wird .

  • Lokale Zwischenspeicherung von Skripten (mithilfe von LocalStorage, verfügbar in den meisten
    Browsern und Smartphones), damit sie nur bei
    Bedarf erneut abgerufen werden .

Weitere Informationen finden Sie hier .

Wenn möglich Schalter Rahmen Genesis für Wordpress , weil sie ohne sauber sind jedes aufblähen. Genesis wurde mit Blick auf Geschwindigkeit und SEO entwickelt. Ich selbst habe es getestet und meine PageSpeed-Werte waren gut. Wenn Sie Genesis verwenden, vergessen Sie nicht, den Fragment-Cache in den Einstellungen für den gesamten W3-Cache zu aktivieren.

Da Sie Cloudlfare jetzt als CDN verwenden, können Sie ein Plugin wie " Imagify " oder " JPEG & PNG-Bilder komprimieren" verwenden komprimieren" von TingPNG verwenden, um Ihre Bilder zu komprimieren. Beide sind kostenlose Plugins, die im WordPress.org-Plugin-Repository verfügbar sind. Außerdem unterstützt Imagify den leistungsstarken Algorithmus für verlustbehaftete Komprimierung.

Installieren Sie abschließend das Plugin " Entfernen von Abfragezeichenfolgen aus statischen Ressourcen " aus dem WordPress-Repository, damit die Abfragezeichenfolgen aus statischen Ressourcen wie CSS- und JS-Dateien entfernt werden. Dies liegt daran, dass Ressourcen mit einem "?" Oder "&" in der URL von einigen Proxy-Caching-Servern nicht zwischengespeichert werden (denken Sie daran, Cloudflare ist auch ein Proxy-Caching-Server).

Installieren Sie dann das Plugin " Google Libraries verwenden ". Mit diesem Plugin kann Ihre WordPress-Site das AJAX Library API-CDN von Google verwenden, anstatt diese Dateien direkt von Ihrer WordPress-Installation bereitzustellen.

Einige der Vorteile sind:

  • Erhöht die Wahrscheinlichkeit, dass ein Benutzer diese Dateien bereits zwischengespeichert hat.
  • Entlastet Ihren Server zusätzlich.
  • Verwendet komprimierte Versionen der Bibliotheken (sofern verfügbar).
  • Die Server von Google sind so eingerichtet, dass sie die HTTP-Komprimierung mit dem anfragenden Browser aushandeln.

Last but not least können Sie mit dem " WP-Optimize " -Plugin von Ruhani Rabin Ihre Datenbank bereinigen und optimieren.

Hoffe, dies beantwortet Ihre Frage in Bezug auf die Optimierung von WordPress, um die Serverlast zu reduzieren.

Antony Agnel
quelle