Fast jeder Versuch, "es schneller zu machen", beginnt mit einer Vermutung und einem Plugin. Beginnen Sie stattdessen mit einer Zahl, denn sie halbiert das Problem.
Zeit bis zum ersten Byte
curl -o /dev/null -s -w 'dns %{time_namelookup}s connect %{time_connect}s ttfb %{time_starttransfer}s total %{time_total}s\n' https://yourdomain.com/
- TTFB unter 200 ms - der Server ist in Ordnung. Alles, was Sie spüren, steckt im Browser: Bilder, Schriften, Skripte.
- TTFB über 800 ms - die Seite wird langsam gebaut. Daran ändert im Browser nichts etwas.
- connect viel größer als dns - Entfernung oder ein langsamer TLS-Handshake, nicht die Anwendung.
Wenn der Server langsam ist
Die Seite leistet je Anfrage zu viel Arbeit. Nach der Häufigkeit, mit der es daran liegt:
- Eine Abfrage ohne Index — Das Slow Query Log benennt sie. Ein Index spart meist Sekunden.
- Dieselbe Abfrage in einer Schleife — Zwanzig Produkte, zwanzig Abfragen nach ihren Kategorien. Ein Join ersetzt sie alle.
- Ein externer Aufruf ohne Zeitlimit — Eine tote API hält Ihre Seite fest, solange ihr Socket offen bleibt.
- Kein Opcode-Cache — Ohne opcache kompiliert PHP bei jeder Anfrage jede Datei neu.
Wenn der Browser langsam ist
- Bilder. Meist der größte Teil der Bytes. Liefern Sie die Größe aus, die die Seite benutzt, nicht die, die die Kamera erzeugt hat.
- Schriften. Jede Familie und jeder Schnitt ist eine Datei, und eine Schrift, die das Zeichnen blockiert, hält die ganze Seite auf.
- Fremde Skripte. Der langsamste Teil der meisten Seiten ist Code vom Server eines anderen.
Ein Cache-Plugin auf einer langsamen Seite verbirgt das Problem vor Ihnen, aber nicht vor dem ersten Besucher jeder Cache-Periode. Reparieren Sie die Seite, dann cachen Sie sie.
Messen Sie dieselbe Seite dreimal, zur selben Tageszeit, vor und nach jeder Änderung. Eine Änderung, eine Messung - sonst wissen Sie nicht, welche gewirkt hat.