Το άρθρο αυτό ανήκει στη σειρά Εγκληματολογία WordPress: πρακτικοί οδηγοί για ασφάλεια, ανάκτηση και μετάβαση WordPress.
Εισαγωγή
Το site σας σε WordPress είναι αργό. Δοκιμάσατε plugins caching. Αναβαθμίσατε τη φιλοξενία. Παραμένει αργό. Το πρόβλημα είναι ότι αντιμετωπίζετε συμπτώματα, όχι αιτίες. Ο οδηγός αυτός σας διδάσκει να διαγιγνώσκετε τα προβλήματα απόδοσης στην πηγή, με την ίδια εγκληματολογική προσέγγιση που χρησιμοποιούμε στα sites πελατών.
Καθορισμός Βασικών Μετρήσεων
Εργαλεία Μέτρησης
- Google PageSpeed Insights: Core Web Vitals, κινητό/επιτραπέζιο
- GTmetrix: ανάλυση waterfall, ιστορική παρακολούθηση
- WebPageTest: πολλαπλές τοποθεσίες, αναλυτικοί χρόνοι
- Plugin Query Monitor: ερωτήματα βάσης, hooks, κλήσεις HTTP
- Chrome DevTools: καρτέλες Network και Performance
Βασικές Μετρήσεις προς Παρακολούθηση
- Time to First Byte (TTFB): χρόνος απόκρισης server
- Largest Contentful Paint (LCP): χρόνος φόρτωσης κύριου περιεχομένου
- First Input Delay (FID): καθυστέρηση διαδραστικότητας
- Cumulative Layout Shift (CLS): οπτική σταθερότητα
- Συνολικό μέγεθος σελίδας: όλοι οι πόροι μαζί
- Αριθμός αιτημάτων: αιτήματα HTTP για τη φόρτωση της σελίδας
Προβλήματα Απόδοσης Βάσης Δεδομένων
Συμπτώματα
- Υψηλό TTFB (> 600ms)
- Αργός πίνακας διαχείρισης
- Σφάλματα χρονικής λήξης σε ώρες αιχμής
Συνήθεις Αιτίες
- Φουσκωμένος πίνακας wp_options: αυτόματα φορτωμένες επιλογές πάνω από 1MB
- Αναθεωρήσεις άρθρων: χιλιάδες εγγραφές αναθεωρήσεων
- Transients: ληγμένα transients που δεν καθαρίστηκαν ποτέ
- Ορφανά μεταδεδομένα: meta για διαγραμμένα άρθρα/χρήστες
- Δεδομένα plugins: εγκαταλελειμμένοι πίνακες plugins
Διαγνωστικά Ερωτήματα
-- Μέγεθος αυτόματα φορτωμένων επιλογών
SELECT SUM(LENGTH(option_value)) as autoload_size
FROM wp_options WHERE autoload = 'yes';
-- Πλήθος αναθεωρήσεων
SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';
-- Οι μεγαλύτερες επιλογές
SELECT option_name, LENGTH(option_value) as size
FROM wp_options ORDER BY size DESC LIMIT 20;
Προβλήματα Απόδοσης από Plugins
Συμπτώματα
- Αργές φορτώσεις σε ολόκληρο το site
- Συγκεκριμένες σελίδες πολύ πιο αργές από άλλες
- Υψηλή χρήση CPU
Διάγνωση Επίπτωσης Plugins
- Εγκαταστήστε το plugin Query Monitor
- Σημειώστε τα βασικά ερωτήματα και τον χρόνο φόρτωσης
- Απενεργοποιήστε τα plugins ένα προς ένα
- Μετρήστε μετά από κάθε απενεργοποίηση
- Εντοπίστε τον ένοχο (ή τους ενόχους)
Συνήθεις Ένοχοι
- Page builders που φορτώνουν σε κάθε σελίδα
- Plugins κοινωνικής κοινοποίησης με κλήσεις API
- Plugins αναλυτικών χωρίς ασύγχρονη φόρτωση
- Plugins σχετικών άρθρων με σύνθετα ερωτήματα
- Χαλασμένα plugins που κάνουν αποτυχημένα αιτήματα HTTP
Προβλήματα Απόδοσης Θέματος
Συνήθη Προβλήματα Θεμάτων
- Μη βελτιστοποιημένες εικόνες στα assets του θέματος
- Υπερβολική φόρτωση Google Fonts
- CSS/JS που μπλοκάρουν την απόδοση
- Μη αποδοτικά ερωτήματα στα templates
- Χωρίς lazy loading
Εγκληματολογία Θέματος
- Αλλάξτε στο προεπιλεγμένο θέμα (Twenty Twenty-Four)
- Μετρήστε τη διαφορά απόδοσης
- Αν είναι σημαντικά ταχύτερο, το θέμα είναι το πρόβλημα
- Ελέγξτε το functions.php του θέματος για μη αποδοτικό κώδικα
- Ψάξτε για άμεσα ερωτήματα βάσης μέσα στα templates
Προβλήματα Φιλοξενίας και Server
Συμπτώματα
- Σταθερά υψηλό TTFB ανεξάρτητα από σελίδα
- Η απόδοση πέφτει σε κύματα επισκεψιμότητας
- Αργό ακόμη και με ενεργό caching
Παράγοντες Φιλοξενίας
- Υπερφόρτωση κοινόχρηστης φιλοξενίας: πάρα πολλά sites στον server
- Έκδοση PHP: η PHP 7.4 είναι 3 φορές πιο αργή από την 8.2
- Απενεργοποιημένο OPcache: η PHP επαναμεταγλωττίζει σε κάθε αίτημα
- Ανεπαρκής μνήμη: πολύ χαμηλό όριο μνήμης PHP
- Συμφόρηση I/O δίσκου: αργός αποθηκευτικός χώρος
- Γεωγραφική απόσταση: server μακριά από τους χρήστες
Λανθασμένες Ρυθμίσεις Caching
Γιατί δεν Δουλεύει το Caching
- Συνδεδεμένοι χρήστες παρακάμπτουν την cache
- Καλάθι/ολοκλήρωση αγοράς WooCommerce χωρίς σωστή εξαίρεση
- Πολύ μικρή διάρκεια ζωής cache
- Μη ρυθμισμένο caching browser
- CDN χωρίς σωστή ενσωμάτωση
- Απενεργοποιημένο object caching
Επαλήθευση Caching
- Ελέγξτε τις κεφαλίδες HTTP για την κατάσταση cache
- Επαληθεύστε ότι υπάρχουν αρχεία cache στον δίσκο
- Δοκιμάστε ως αποσυνδεδεμένος χρήστης σε ανώνυμη περιήγηση
- Χρησιμοποιήστε curl για να δείτε τις κεφαλίδες απόκρισης
Προβλήματα Εικόνων και Πολυμέσων
Συνήθη Προβλήματα
- Ασυμπίεστες εικόνες (αρχεία 5MB+)
- Λάθος μορφή (PNG για φωτογραφίες, JPEG για γραφικά)
- Χωρίς σερβίρισμα WebP/AVIF
- Εικόνες σε λάθος διαστάσεις (4000px για container 400px)
- Χωρίς lazy loading για εικόνες κάτω από το ορατό τμήμα
Έλεγχος Εικόνων
- Ελέγξτε τις μεγαλύτερες εικόνες στον φάκελο uploads
- Εξετάστε την υλοποίηση του srcset
- Επαληθεύστε ότι το lazy loading είναι ενεργό
- Δοκιμάστε την παράδοση WebP
Προβλήματα JavaScript και CSS
Πόροι που Μπλοκάρουν
- Scripts που μπλοκάρουν την απόδοση στο head
- Υπερβολικό inline CSS
- Αχρησιμοποίητο CSS που φορτώνει σε κάθε σελίδα
- Scripts τρίτων που μπλοκάρουν την απόδοση
Εγκληματολογία JS/CSS
- Εξετάστε την καρτέλα Coverage στα Chrome DevTools
- Εντοπίστε το ποσοστό αχρησιμοποίητου CSS/JS
- Ψάξτε για διπλές βιβλιοθήκες (πολλαπλές εκδόσεις jQuery)
- Ελέγξτε την επίπτωση των scripts τρίτων
Προτεραιότητες Αποκατάστασης Απόδοσης
- Server/Φιλοξενία: το θεμέλιο πρέπει να είναι γερό
- Βάση δεδομένων: καθαρισμός και βελτιστοποίηση
- Caching: σωστή υλοποίηση
- Εικόνες: συμπίεση και lazy loading
- Plugins: αφαίρεση ή αντικατάσταση των αργών
- Θέμα: βελτιστοποίηση ή αντικατάσταση
- JS/CSS: defer, async, minify
Συμπέρασμα
Η βελτιστοποίηση απόδοσης χωρίς διάγνωση είναι εικασία. Χρησιμοποιήστε την εγκληματολογία για να εντοπίσετε τα πραγματικά σημεία συμφόρησης, ιεραρχήστε κατά επίπτωση και μετρήστε τα αποτελέσματα. Ένα γρήγορο site WordPress είναι εφικτό, αλλά μόνο αν αντιμετωπίζετε τις αιτίες, όχι απλώς τα συμπτώματα.