Το TTFB (Time to First Byte) είναι ο χρόνος από την έναρξη ενός request μέχρι να ληφθεί το πρώτο byte της απάντησης. Περιλαμβάνει όχι μόνο επεξεργασία στον server, αλλά και redirect, DNS, σύνδεση δικτύου, TLS και διαδρομή προς τον server, ανάλογα με το εργαλείο μέτρησης.
Πριν ξεκινήσεις
- Διάλεξε περισσότερα από ένα URLs: στατική σελίδα, δυναμική σελίδα και κρίσιμο template.
- Σημείωσε αν η μέτρηση είναι cold ή warm cache.
- Μέτρησε από τοποθεσία κοντά στο κοινό σου και από τουλάχιστον μία δεύτερη.
- Κατέγραψε ώρα και τυχόν traffic/background jobs.
Μέθοδος 1: PageSpeed Insights
- Άνοιξε
pagespeed.web.dev, βάλε το URL και πάτησε Analyze. - Διάβασε field data όπου υπάρχουν και αναζήτησε diagnostic σχετικό με server response time/TTFB.
- Σύγκρινε Mobile και Desktop, αλλά θυμήσου ότι η lab προσομοίωση περιλαμβάνει συνθήκες δικτύου.
Μέθοδος 2: Chrome DevTools
- Άνοιξε τη σελίδα, μετά Developer Tools > Network.
- Ενεργοποίησε Disable cache μόνο για την ελεγχόμενη cold-cache δοκιμή και κάνε reload.
- Επίλεξε το πρώτο request τύπου document.
- Στο Timing βρες το Waiting (TTFB). Περιλαμβάνει network round trip και χρόνο προετοιμασίας απάντησης από τον server.
- Επανάλαβε με cache ενεργή/ζεστή και από δεύτερο δίκτυο.
Μέθοδος 3: WebPageTest ή εξωτερικό monitoring
Επίλεξε σταθερή test location/browser και κάνε πολλαπλά runs. Το waterfall βοηθά να ξεχωρίσεις DNS, connect, TLS, waiting και redirects. Μη συγκρίνεις αποτελέσματα από διαφορετικές τοποθεσίες/ρυθμίσεις σαν να είναι ίδια.
Θέση screenshot: Chrome Network > document request > Timing με Waiting (TTFB).
Τι μπορεί να αυξάνει το TTFB
- Hosting/server load: CPU, memory, I/O limits ή υπερφορτωμένες διεργασίες.
- PHP: παλιά/ακατάλληλη έκδοση, αργός κώδικας, πολλά plugins ή έλλειψη OPcache όπου σχετίζεται.
- Database: αργά queries, μεγάλοι πίνακες, locks ή autoloaded δεδομένα.
- Cache: page/object cache που λείπει, δεν κάνει hit ή εξαιρεί υπερβολικά URLs.
- Εφαρμογή: εξωτερικά API calls, sessions, redirects, security scans και βαριά initialization.
- Δίκτυο: μεγάλη γεωγραφική απόσταση, DNS, TLS, proxy/CDN routing ή packet loss.
Πώς βρίσκω την αιτία με ασφάλεια
- Σύγκρινε στατικό αρχείο με δυναμική σελίδα. Αν μόνο η δυναμική είναι αργή, εστίασε στην εφαρμογή/PHP/database.
- Σύγκρινε cold και warm cache. Μεγάλη βελτίωση στο warm δείχνει ότι η cache λειτουργεί αλλά το uncached path παραμένει βαρύ.
- Συσχέτισε με Resource Usage, error/slow logs και ώρα cron/backup.
- Χρησιμοποίησε application profiling/query monitor σε staging, όχι ανεξέλεγκτα στο production.
- Άλλαξε ένα στοιχείο τη φορά και κράτησε ίδιες συνθήκες μέτρησης.
Πώς ελέγχω ότι ολοκληρώθηκε σωστά
- Κάνε πολλαπλά runs και σύγκρινε τη διάμεσο πριν/μετά.
- Επιβεβαίωσε βελτίωση σε διαφορετικά URLs και όχι μόνο στην αρχική.
- Έλεγξε από περισσότερες τοποθεσίες και σε πραγματικό traffic.
- Βεβαιώσου ότι δεν χάλασαν login, cart/checkout, φόρμες ή δυναμικό περιεχόμενο λόγω cache.
- Παρακολούθησε Resource Usage και application errors μετά την αλλαγή.
Συνηθισμένα προβλήματα
- Ένα μόνο υψηλό run: μπορεί να είναι cold start ή δίκτυο. Χρειάζονται επαναλήψεις.
- Υψηλό TTFB μόνο μακριά γεωγραφικά: έλεγξε routing/CDN πριν κατηγορήσεις την PHP.
- Cache κρύβει πρόβλημα: μέτρησε authenticated/uncached paths με ασφάλεια.
- Μεγάλη ανακατεύθυνση: αλυσίδες HTTP→HTTPS ή domain redirects προσθέτουν χρόνο πριν το τελικό request.
- Συμπέρασμα “χρειάζεται μεγαλύτερο plan”: υψηλό TTFB δεν αποδεικνύει από μόνο του έλλειψη πόρων. Αναβάθμιση δικαιολογείται όταν μετρήσεις δείχνουν επίμονα resource faults αφού αποκλειστούν εφαρμογή, queries, cache και δίκτυο.