10 richtige Wege, um Ihr langsames WP-Admin-Backend schneller zu machen.
Wenn Sie frustriert sind über ein langsames Backend, das ewig braucht, um von einer Seite zur nächsten zu gelangen, dann können Sie mir glauben, dass ich Sie verstehe. Frontend-Seiten sind viel einfacher zu cachen, aber das Backend ist es nicht.
Bedeutet das, dass Sie für immer mit miserablen Ladezeiten im Backend und ewig dauernden Verwaltungsfunktionen geplagt sind?
NEIN!…ok, vielleicht…aber ich werde Ihnen helfen, das Beste aus Ihren Möglichkeiten zu machen.
Die Ursache für langsame Backend
Backends sind langsam, weil sie völlig dynamisch sind.
Und mit "dynamisch" meine ich, dass sie bei jeder Seitenanforderung die Datenbank abfragen müssen. Die Datenbank wird aufgerufen und jede Information wird von Grund auf neu angefordert, als ob sie noch nie zuvor gesehen wurde. Es gibt keine Zwischenspeicherung.
Es hilft auch nicht, dass das Backend manchmal mehr Informationen anzeigt. Welche Nutzer, welche Inhalte, welche Kommentare, wie viele Verkäufe usw. Es werden oft Informationen berechnet, die gar nicht angezeigt werden. Außerdem läuft die Heartbeat-API ständig im Hintergrund, um Ihre Änderungen automatisch zu speichern.
Datenbanken können auch langsamer werden, wenn sie größer werden. So wie die Suche nach Dingen in Ihrem Haus schwieriger wird, wenn Sie mehr Dinge haben. Datenbanken brauchen länger, wenn Sie nach sehr komplizierten Daten suchen, die vergraben oder auf komplexe und/oder ineffiziente Weise organisiert sind.
Mit diesem Wissen… sehen wir uns an, wie wir diese dynamischen Backend-Anfragen optimieren können, um Ihre WP-Admin-Erfahrung zu beschleunigen.
1. Überprüfen Sie Ihre Plugins
Jedes Mal, wenn mich jemand wegen eines langsamen Backends um Hilfe bittet, gilt er für mich sofort als "schuldig, bis seine Unschuld bewiesen ist".
Überprüfen Sie alle Ihre Plugins und finden Sie heraus, welche zu dieser gottverdammten langsamen Backend-Last beitragen.
"Aber wie?!"
Etwa so…
- Deaktivieren Sie einige unwichtige Plugins, um zu sehen, ob es schneller läuft. Dann deaktivieren Sie noch mehr. Machen Sie so weiter, bis Sie zu dem Punkt kommen, an dem keine Plugins mehr aktiviert sind. Ich bin sicher, Sie wissen inzwischen, welche es sind.
- Sie sollten auch Ihr Theme überprüfen. Versuchen Sie, bei aktivierten Plugins für eine Sekunde zum Standard-Theme zu wechseln. Hat es geholfen?
Hahaha, ich mache nur Spaß… ignorieren Sie die ersten 2 Schritte (ruinieren Sie nicht Ihre Live-Site) und machen Sie es wie ein Profi. Installieren Sie Query Monitor und surfen Sie dann einige Seiten im Frontend, während Sie das Diagnose-Panel am unteren Rand Ihres Browsers studieren. Es gibt nur zwei Dinge, die Sie überprüfen müssen – langsame Abfragen und Abfragen nach Komponenten. Nur so können Sie feststellen, welche Themen, Plugins oder Abfragen die größten Verzögerungen verursachen. Sie sollten sich auch den Speicherverbrauch (in der oberen Verwaltungsleiste) und die Anzahl der Abfragen jedes Plugins ansehen.
Sobald Sie herausgefunden haben, was die Ursache ist, sollten Sie sie ersetzen!
- Langsames Slider-Plugin? – Besorgen Sie sich ein neues Slider-Plugin!
- Langsames Theme? – Besorgen Sie sich ein anderes Theme!
Einige von Ihnen werden Bindungsschmerzen haben, wenn sie sich von ihren kostbaren Plugins trennen müssen… aber ich verspreche Ihnen eines… was auch immer für ein beschissenes Plugin Ihr Backend verlangsamt, es besteht eine gute Chance, dass es ein qualitativ hochwertigeres alternativ Plugin in Entwicklerqualität gibt, das keine Alpträume von langsamen Abfragen verursacht.
2. Prüfen Sie auf Fehler
- Error.log – finden Sie es in Ihrem public_html-Verzeichnis und schauen Sie hinein. Sehen Sie viele Fehler?
- Konsolenfehler – öffnen Sie die Entwicklertools und sehen Sie nach, ob es offensichtliche 404-Anfragen gibt.
In der Regel sind es nicht so sehr die Fehler, die das Problem verursachen, sondern die Plugins, die mit diesen Fehlern in Verbindung stehen.
3. Prüfen Sie den hohen Speicherverbrauch
Drei Dinge, die Sie wissen müssen:
Wie viel Speicherplatz Ihre gesamte Website verbraucht. (Versuchen Sie WP Server Health Stats)
Wie viel Speicher Ihr Theme und Ihre Plugins verbrauchen. (Query Monitor)
Wie viel Speicherplatz Ihre Autoloads verbrauchen.
Von hier aus haben wir ein paar Taktiken.
Natürlich können Sie versuchen, die Speichergrenzen Ihrer Website zu erhöhen. Fügen Sie die folgenden Zeilen in Ihre wp-config.php-Datei ein, und zwar oberhalb der Zeile "That's all, stop editing! Viel Spaß beim Bloggen.":
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
Die erste Option erhöht den Speicherbedarf für das Frontend, die zweite für das Backend. Für die meisten gut aufgebauten Websites brauchen Sie beides nicht. Sie können die zweite Option sogar auf 512 MB oder noch mehr erhöhen, aber das Problem ist, dass dieses Limit immer noch durch das globale PHP-Speicherlimit des Servers begrenzt ist. Wenn Sie Ihren eigenen VPS-Server haben, können Sie so viel einstellen, wie Sie wollen. Wenn Sie auf einem beschissenen Shared Host sind, ist es wahrscheinlich sehr begrenzt und der Versuch, es höher zu setzen, wird nichts bringen.
Wenn es gesagt werden muss, sollten Sie Plugins loswerden, die so viel Speicher verbrauchen. Und vergessen Sie bitte nicht, Ihre Autoloads zu überprüfen. Oft gibt es viele alte Themes oder Plugins, die Sie nicht mehr haben und die immer noch Speicher fressen! Sie sitzen in der Datenbank herum und laden ihre Indizes, auch wenn kein Plugin sie benutzt!
4. Upgrade Ihres Web-Hostings (oder Web-Servers)
Haben Sie alle Ihre aufgeblähten Plugins ersetzt?
- NEIN?!
- WARUM NEIN? Weil Sie Geld sparen wollten?
Nun, heute können Sie das gesparte Geld für ein besseres Hosting ausgeben. Tut mir leid, Kumpel, Sie müssen für bessere Qualität bezahlen!
Ok, seien wir fair… vielleicht haben einige von Ihnen Ihre Plugins ersetzt. Oder Sie haben gesehen, dass Ihre Plugins nicht das Problem waren!
Die Antwort ist dieselbe… der einfachste Weg, um von diesem Punkt aus keine Probleme zu haben, ist ein besserer Webhost oder ein stärkerer Webserver. Beachten Sie, dass ich nicht gesagt habe, dass Sie sich einen teuren Webhost suchen sollen. Nein!
Unabhängig davon, in welcher Kategorie von Webhosting Sie sich befinden (Shared Hosting, VPS usw.), ich garantiere Ihnen, dass es wahrscheinlich einen anderen Webhost gibt, der besser ist und preislich nicht so weit entfernt.
Aber seien Sie vorsichtig… dieser einfache Ausstiegsknopf funktioniert nicht so, wie Sie denken. Der neue Server darf nicht einfach nur teurer oder größer sein, er muss Ihrer Website tatsächlich mehr Ressourcen bieten! Nur weil Sie sich für einen größeren oder stärkeren Server entscheiden, bedeutet das nicht, dass Ihre Website automatisch Zugang zu mehr CPU und Speicher erhält. Ich habe schon viele Leute gesehen, die ein Upgrade durchgeführt und das Doppelte bezahlt haben und trotzdem keine bessere Leistung erhalten haben.
Was sollte ein guter Server haben?
Das ist schwer zu sagen, denn alle Spezifikationen oder Statistiken, die ich Ihnen gebe, könnten leicht durch falsches Marketing erlogen sein (genau wie Sie in Ihre derzeitige missliche Lage geraten sind). Am einfachsten ist es zu spüren, ob er schnell ist oder nicht.
Aber wenn Sie darauf bestehen, ist es gut zu wissen, ob sie das neueste PHP und MySQL haben. Schnelle Festplatten mit guten E/A‑Raten. Und aggressive Einstellungen. Außerdem ist es gut, wenn der PHP-Speicher anständig ist.
5. Verringern Sie das Heartbeat-API-Intervall
Dies ist eine niedrig hängende Frucht, mit der man ohne großen Aufwand einige gute Ergebnisse erzielen kann. Es gibt einige spezialisierte Plugins, die dies tun, wie Heartbeat Control… aber es ist viel besser, wenn Sie es von Ihrem Caching-Plugin (wie Swift, Rocket, LiteSpeed) verwenden können.
Meine Empfehlungen dazu:
- Sie können Heartbeat (wahrscheinlich) sicher auf allen Seiten im Frontend und Backend deaktivieren, außer im Beitragseditor.
- Deaktivieren Sie ihn nicht im Beitragseditor, da der Heartbeat dort für die automatische Speicherung verwendet wird.
- Wenn Sie viele Autoren haben, die sich gleichzeitig einloggen und arbeiten, können Sie das Heartbeat-Intervall für den Beitragseditor verlängern, aber deaktivieren Sie es trotzdem nicht!
- Klicken Sie hier, um mehr über WordPress Heartbeat API zu erfahren.
6. Objekt-Caching
Sicherlich haben Sie schon einmal von Schlagwörtern wie "Memcache" und "Redis" gehört. Redis (heutzutage das bessere und Standardmodul) ist ein Servermodul, mit dem Sie Ihre Datenbankabfragen zwischenspeichern können. Es ist sehr schnell, da es die Informationen im Speicher und nicht auf der Festplatte speichert (wie beim typischen Seiten-Caching).
Es gibt viele Vorbehalte und Variablen, die zu beachten sind… Ich werde im Folgenden allgemeine Empfehlungen geben und Sie können den Rest recherchieren, wenn Sie neugierig sind:
- Objekt-Caching benötigt viel Speicherplatz. Daher ist es normalerweise nur bei VPS-Paketen erlaubt und fast nie bei Shared Hosting. Selbst wenn Ihr Shared Hosting Objekt-Caching erlaubt, ist es wahrscheinlich kastriert.
- Eine gute Ablaufzeit für den Objekt-Cache liegt zwischen 5 und 60 Minuten. Ist sie zu kurz, läuft der Cache ab, bevor Sie von ihm profitieren können. Bei einer zu langen Zeit ist Ihr dynamischer Inhalt veraltet, bis der Objekt-Cache abläuft (aber vielleicht ist das für Sie in Ordnung).
- Objekt-Caching funktioniert wie Seiten-Caching, aber mit kürzeren Cache-"Nutzen"-Zeiten. Die ersten paar Treffer sind langsam, die folgenden schnell, bis der Cache abläuft (und neu aufgebaut werden muss).
- Objekt-Caching ist hilfreich, wenn Sie viel im Backend arbeiten. Wenn Sie nur ein paar Minuten pro Tag ein- und ausgehen, sind Sie wahrscheinlich ohne Objekt-Caching schneller.
Falls Sie sich wundern, heißt es Objekt-Caching, weil es die Datenbankabfragen (auch bekannt als "Datenbankobjekte") zwischenspeichert… was Ihnen erlaubt, die meisten Ihrer dynamischen Funktionen beizubehalten, aber von schnelleren Geschwindigkeiten zu profitieren (da einige Abfragen bereits erstellt sind und nicht bei jedem Klick nachgeschlagen werden müssen).
7. Zwischenspeichern von Admin-Bereichen und eingeloggten Benutzern.
Also gut, das hier ist ein absoluter Verzweiflungsmodus. Meistens ist es eine schlechte Idee, aber in manchen Situationen kann es funktionieren. Hier ist, wann es hilft und wann es nicht hilft:
HILFT, wenn…
- Sie viele eingeloggte Benutzer haben.
- Ihre eingeloggten Benutzer sehen hauptsächlich statische Inhalte.
HILFT NICHT, wenn…
- Sie nicht viele eingeloggte Benutzer haben.
- Ihr gesamtes Backend vollständig auf dynamische Daten angewiesen ist.
Wenn Sie wirklich darüber nachdenken, hilft Ihnen das Caching nur, wiederholte Inhalte schneller zu laden. Wenn Sie keine statischen Backend-Inhalte oder genügend Benutzer haben, um davon zu profitieren, ist das Zwischenspeichern des Admin-Bereichs IMO nicht von großem Nutzen. Wenn überhaupt, dann wird Ihre Website dadurch noch langsamer! (Langsamer, weil Ihre Server-Ressourcen jetzt für den Aufbau und die Löschung von Caches verschwendet werden, die nicht einmal genutzt werden).
WIE man das Backend cachen kann?
Aktivieren Sie die folgenden Funktionen in Ihrem Cache-Plugin:
- Cache-Administrationsbereich – sollte einfach genug sein.
- Cache für eingeloggte Benutzer – Sie müssen eventuell entscheiden, welche Bereiche öffentlich oder privat sind. Öffentlich bedeutet, dass alle Benutzer denselben Inhalt sehen. Privat bedeutet, dass alle Benutzer unterschiedliche Inhalte sehen (z. B. ihre "Konto"-Seiten).
- ESI-Cache – Sie können mit dieser Löcherstanztechnologie spielen, aber ich warne Sie, dass dies nichts für Heimwerker ist. Sie brauchen einen Entwickler, um das richtig zu machen. Wenn Sie LiteSpeed Server und Caching verwenden, ist es am einfachsten, ESI zu nutzen, wenn Ihr Inhalt über Shortcodes oder in einem Widget bereitgestellt wird.
8. Überprüfen Sie Ihr Sicherheits-Plugin
Haben Sie Wordfence oder Sucuri? Nun, Sie müssen sie nicht loswerden, aber Sie sollten wissen, dass sie das Backend stark verlangsamen. Denn sie überprüfen jeden Seitenaufruf auf die Ausführung von Hacks und so weiter.
Sicherlich haben Sie schon Anleitungen gesehen, die Ihnen raten, das Scannen zu verlangsamen… aber das macht wirklich nicht viel aus. Das liegt daran, dass diese Sicherheitsplugins jeden Seitenaufruf protokollieren und auf potenziell schädliche Codeausführungen überprüfen.
9. Verhindern Sie unnötige Plugin-Last im Backend
Willkommen bei der "Freude" des Asset Load Management. Hier deaktivieren wir alle unnötigen CSS/JS-Aufrufe aus dem Backend.
Ich nehme zurück, was ich über den vorherigen Schritt gesagt habe. Es gibt einen Schritt, der noch verzweifelter ist als der vorherige. Früher habe ich versucht, bis zu diesem Grad zu optimieren, aber ich habe erkannt, dass das dumm ist. Ihr Leben ist wertvoller, als damit Zeit zu verschwenden. Es hat überhaupt keinen Sinn … das ist so, als würde man am Abend vor dem Schlammlaufen am nächsten Tag die Sohlen seiner Schuhe putzen.
- Sie sollten ein Qualitäts-Theme haben.
- Mit Qualitäts-Plugins.
- Auf einem guten Webserver.
- Und Ihre Autoloads sollten von allen Überbleibseln alter Themes/Plugins befreit sein.
Wenn Sie hier sind und versuchen, eine Zeitreise durch Ihr Leben zu machen, indem Sie CSS/JS-Assets ein- und ausschalten, liegt das daran, dass Sie bei einem früheren Schritt stur waren. Ich empfehle Ihnen dringend, zurückzugehen und alles andere zu tun. Sie werden am Ende so viel mehr Arbeit machen, als wenn Sie nur Ihre Themes/Plugins austauschen würden. UND Sie könnten versehentlich Ihre Website beschädigen oder zukünftige Vorgänge beeinträchtigen und vergessen, dass Sie etwas deaktiviert haben.
Wollen Sie trotzdem weitermachen? *seufz* Ok, Sie haben gewonnen. Empfehlungen unten:
- Ich bevorzuge Asset CleanUp: Page Speed Booster gegenüber all den anderen Asset-Loadern oder Plugin-Organizer-Plugins da draußen.
- Perfmatters kann auch ganz nett sein.
- WP Gonzalez und Plugin Load Filter sind ebenfalls in Ordnung.
- Der Rest ist entweder 1) zu kompliziert und schlecht zu bedienen, oder 2) sie fügen ihre eigene Last hinzu, die die Last, die sie entfernt haben, zunichte macht!
- Versuchen Sie nicht, jedes einzelne Asset aus jedem Plugin zu entfernen. Konzentrieren Sie sich auf die wichtigsten aufgeblähten Plugins!
Der einzige professionelle Weg, um unnötigen Ballast aus Plugins zu entfernen:
Forken Sie das Plugin und hacken Sie es.
10. Widerstehen Sie den dummen Ideen
Ich habe gehört, dass Kunden von Zeit zu Zeit viele dumme Taktiken aushecken. Sie lesen zufällige Worte im Internet und denken, dass sie zutreffen. Ich freue mich, sie im Folgenden für Sie zu widerlegen:
- Ein besseres Cache-Plugin - leider nein. Cache-Plugins sind in der Regel für den Einsatz im Frontend gedacht.
- Installation von Performance-Plugins – Ich habe all die dummen Booster-Plugins für WooCommerce, Pagebuilder und so weiter gesehen. Im besten Fall beanspruchen sie nur mehr Speicher über Autoloads, so dass das Plugin schneller läuft, während der Rest Ihrer Website langsamer wird.
- Erhöhen des Speicherlimits – dies ermöglicht lediglich, dass Ihre langsame Website weiterläuft, anstatt Fehler zu machen. Dies führt nicht dazu, dass Ihre Website ihren [verschwenderischen] Speicherverbrauch reduziert.
- Cloudflare zwischenspeichern Ihren Admin – DUMM! NEIN!
- Statische Seiten – nein, statische Seiten sind nur für das Frontend gedacht.
- Load Balancing oder Cluster-Setup – wenn Ihre Website zu aufgebläht ist, um auf einem Server zu laden, wird das Hinzufügen eines weiteren Proxys nicht helfen oder die Last in irgendeiner Weise umverteilen. Das ist so, als würde man versuchen, einen Kuchen mit 2 Küchen zu backen, anstatt mit einer. Lastausgleich ist für hohen Datenverkehr gedacht, nicht für langsamen Code.
- Remote Datenbank – lol, nein! Ihre langsame Datenbank läuft jetzt noch langsamer, da sie sich nicht auf demselben Server befindet.
- Asset-Organisation (Schritt 7 oben) – denn selbst wenn Sie die Assets herausschneiden, werden Sie die Abfragen nicht herausschneiden. Und bedenken Sie, dass die Asset-Verwaltung meist nur den Frontend-Benutzern hilft, da die Backend-Benutzer diese Assets nicht einmal zum Laden verwenden.
- Tuning der MySQL-Konfigurationen – Ich bezweifle stark, dass dies Ihr Problem ist.
Eine gewisse Geschwindigkeitsoptimierung ist für Nicht-Entwickler wirklich nicht zu machen. Selbst wenn Sie Ihre Website nicht kaputt machen, verbessern Sie Ihre langsame Geschwindigkeit vielleicht nur um 10 % (wenn Sie sie nicht sogar noch verschlimmern). Ich empfehle Ihnen, einen Entwickler zu engagieren, wenn Sie so weit gekommen sind.