Τι είναι το TTFB
Το TTFB (Time To First Byte) είναι ο χρόνος από τη στιγμή που ξεκινά η πλοήγηση προς τη σελίδα —κάτι που περιλαμβάνει την επίλυση DNS, τη σύνδεση TCP και το TLS handshake— μέχρι τη στιγμή που λαμβάνει το πρώτο byte απάντησης από τον server. Δεν μετράει πόσο γρήγορα φορτώνει ολόκληρη η σελίδα, ούτε πόσο γρήγορα εμφανίζεται το περιεχόμενο στην οθόνη· μετράει πόσο αργεί να ξεκινήσει η απάντηση, μαζί με όλη τη διαδικασία σύνδεσης που προηγείται. Αν το TTFB είναι υψηλό, όλα τα υπόλοιπα —CSS, JavaScript, εικόνες— ξεκινούν να φορτώνουν αργότερα, οπότε το πρόβλημα πολλαπλασιάζεται.
Πώς μετριέται
Ο πιο απλός τρόπος είναι από τα DevTools του browser: άνοιξε την καρτέλα Network, φόρτωσε τη σελίδα και δες τον πρώτο κύκλο του κύριου αιτήματος (document). Στο Timing αυτού του αιτήματος, το Chrome εμφανίζει ξεχωριστά τα στάδια DNS Lookup, Initial connection/TLS και Waiting (TTFB). Το Waiting (TTFB) αφορά τον χρόνο από την αποστολή του request μέχρι να αρχίσει να φτάνει η απάντηση, και δεν περιλαμβάνει τα προηγούμενα στάδια σύνδεσης. Εργαλεία όπως το PageSpeed Insights ή το GTmetrix το αναφέρουν επίσης ως ξεχωριστή μέτρηση.
Αν έχεις πρόσβαση σε SSH (jailed shell), μπορείς να το μετρήσεις και από τη γραμμή εντολών με το curl, χωρίς να χρειάζεσαι δικαιώματα server:
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" https://to-site-sou.grΗ εντολή αυτή δείχνει καθαρά τον χρόνο μέχρι το πρώτο byte, χωρίς την επιρροή του rendering στον browser.
Ποιοι παράγοντες το επηρεάζουν
Δίκτυο, DNS και TLS
Πριν καν φτάσει το αίτημα στον server, μεσολαβούν η επίλυση DNS, η δημιουργία σύνδεσης TCP και το TLS handshake για το HTTPS. Ένα πολύ χαμηλό TTL στο DNS του domain σου δεν κάνει από μόνο του το DNS lookup πιο αργό, αλλά μπορεί να αυξήσει τη συχνότητα με την οποία απαιτείται νέο DNS lookup, αν οι cached απαντήσεις λήγουν συχνά· μπορείς να διαβάσεις περισσότερα στο άρθρο Τι είναι το TTL στο DNS και πότε αλλάζει.
Επεξεργασία στον server
Αφού φτάσει το αίτημα, ο server πρέπει να «χτίσει» την απάντηση. Σε στατικό HTML αυτό είναι σχεδόν στιγμιαίο. Σε ένα δυναμικό site όπως το WordPress, όμως, ο server πρέπει να τρέξει PHP, να φορτώσει το core, τα plugins, το θέμα, και συχνά να κάνει ένα ή περισσότερα ερωτήματα στη βάση δεδομένων πριν επιστρέψει την απάντηση. Όσο πιο πολλά plugins τρέχουν σε κάθε φόρτωση, τόσο πιο πολύ δουλειά γίνεται πριν σταλεί το πρώτο byte.
Ερωτήματα βάσης δεδομένων
Ένα site με αργά ή πολλά ερωτήματα MySQL —συχνά λόγω βαριών plugins, custom queries χωρίς index, ή απλά μεγάλου όγκου δεδομένων— θα δει το TTFB να ανεβαίνει, ακόμα κι αν ο server δεν είναι γενικά φορτωμένος. Αν υποψιάζεσαι ότι το πρόβλημα είναι εκεί, ένα plugin όπως το Query Monitor σου δείχνει ακριβώς ποια queries καθυστερούν κατά τη φόρτωση της σελίδας, κάτι που το phpMyAdmin δεν είναι σχεδιασμένο να κάνει.
Τι μπορείς να ελέγξεις εσύ
Στο shared ή semi-dedicated hosting δεν έχεις πρόσβαση στη ρύθμιση του ίδιου του server, αλλά έχεις αρκετά χέρια στο τιμόνι από την πλευρά του site:
- Ενεργοποίησε full-page caching με το LiteSpeed Cache plugin, ώστε, στις cacheable σελίδες και όταν υπάρχει cache hit, η απάντηση να μπορεί να σερβίρεται χωρίς να χρειάζεται να ξανατρέξει PHP και βάση δεδομένων.
- Απενεργοποίησε plugins που δεν χρησιμοποιείς πραγματικά — κάθε ενεργό plugin προσθέτει δικό του κώδικα σε κάθε φόρτωση.
- Έλεγξε ότι τρέχεις μια σύγχρονη έκδοση PHP, καθώς οι νεότερες υποστηριζόμενες εκδόσεις PHP συνήθως προσφέρουν βελτιώσεις απόδοσης στην εκτέλεση κώδικα.
- Απόφυγε βαριά custom queries ή plugins που κάνουν πολλά requests σε εξωτερικά APIs κατά τη φόρτωση της σελίδας.
- Το persistent object caching (π.χ. Redis ή Memcached) μπορεί να μειώσει επαναλαμβανόμενα queries προς τη βάση, εφόσον ο πάροχος hosting διαθέτει το αντίστοιχο backend. Το LiteSpeed Cache υποστηρίζει Redis και Memcached, αλλά δεν παρέχει από μόνο του persistent object cache.
Αναλυτικά βήματα για ρύθμιση PHP και cache θα βρεις στα άρθρα Αλλαγή έκδοσης PHP και LiteSpeed Cache για WordPress.
Πότε το πρόβλημα δεν είναι στο site σου
Αν έχεις κάνει όλα τα παραπάνω και το TTFB παραμένει σταθερά υψηλό, ακόμα και σε στατικές σελίδες χωρίς βάση δεδομένων, το πρόβλημα μπορεί να βρίσκεται στο επίπεδο του server —φόρτος, δικτυακή διαδρομή ή ρυθμίσεις που δεν ελέγχονται από τον λογαριασμό hosting. Αυτό ρυθμίζεται σε επίπεδο server και δεν χρειάζεται να το πειράξεις εσύ· σε τέτοια περίπτωση η σωστή κίνηση είναι να ανοίξεις ticket στην υποστήριξη του παρόχου σου, δίνοντας συγκεκριμένη μέτρηση ώρας και ημερομηνίας.
Πριν καταλήξεις ότι φταίει ο server, δοκίμασε την ίδια μέτρηση σε μια απλή, καθαρή σελίδα χωρίς plugins και σε μια βαριά σελίδα με πολλά plugins. Αν η διαφορά είναι μεγάλη, το πρόβλημα είναι στο site, όχι στην υποδομή.
TTFB και Core Web Vitals
Το TTFB δεν είναι επίσημα ένα από τα τρία Core Web Vitals (LCP, INP, CLS), αλλά επηρεάζει άμεσα το LCP, αφού όσο αργεί η πρώτη απάντηση, τόσο αργεί και η εμφάνιση του κύριου περιεχομένου. Το web.dev αναφέρει ένα TTFB κάτω από περίπου 800 χιλιοστά του δευτερολέπτου ως ένα rough guide -όχι επίσημο όριο Core Web Vitals- και το χρησιμοποιεί ως ένδειξη ότι ο server ανταποκρίνεται αρκετά γρήγορα πριν καν ξεκινήσει το rendering στον browser.
Συμπέρασμα
Το TTFB είναι ένας από τους πιο χρήσιμους δείκτες για να καταλάβεις πού μπλοκάρει η ταχύτητα ενός site, γιατί μετρά καθαρά τον χρόνο μέχρι να αρχίσει να φτάνει η απόκριση, πριν από το rendering της σελίδας. Μια σωστή στρατηγική cache, μια σύγχρονη έκδοση PHP και λιγότερα, πιο ελαφριά plugins καλύπτουν το μεγαλύτερο μέρος του προβλήματος στην πλειονότητα των WordPress sites, πριν χρειαστεί καν να ψάξεις κάτι πιο βαθύ στην υποδομή.


