Φιλοξενία & Πρόσθετα WordPress

Κάνοντας το WordPress Γρήγορο και Ασφαλές: Μια Λίστα Ελέγχου για Επιδόσεις και Πρόσθετα

Το WordPress είναι τόσο γρήγορο και ασφαλές όσο και τα στοιχεία που το τρέχουν. Ακολουθεί η πρακτική λίστα ελέγχου που εφαρμόζουμε σε κάθε ιστότοπο WordPress που φιλοξενούμε — τι να αποθηκεύσετε στη μνήμη cache, τι να ασφαλίσετε και ποια πρόσθετα αξίζουν τη θέση τους σε σύγκριση με εκείνα που η πλατφόρμα καθιστά περιττά.

Το WordPress είναι τόσο καλό όσο και αυτό που το τρέχει

Το WordPress τροφοδοτεί ένα μεγάλο μέρος του ιστού επειδή είναι ευέλικτο, αλλά αυτή η ευελιξία είναι επίσης ο λόγος για τον οποίο γίνεται αργό και ανασφαλές: μια προεπιλεγμένη εγκατάσταση υποβάλλει ερωτήματα στη βάση δεδομένων δεκάδες φορές ανά σελίδα, εκπέμπει την έκδοση και τη στοίβα της σε όποιον κοιτάζει, και σας προσκαλεί να συσσωρεύετε πρόσθετα μέχρι η απόδοση και η επιφάνεια επίθεσης να διογκωθούν αθόρυβα. Τίποτα από αυτά δεν αποτελεί ελάττωμα του WordPress όσο συνέπεια της εκτέλεσής του σε υποδομή που δεν κάνει τίποτα για να βοηθήσει.

Τα καλά νέα είναι ότι οι ίδιες λίγες αποφάσεις διορθώνουν τα περισσότερα από αυτά, και πρόκειται για αποφάσεις που αφορούν το stack και όχι το περιεχόμενο. Κάντε επιθετικό caching στο σωστό επίπεδο, κρατήστε τη βάση δεδομένων εκτός του hot path, τρέξτε τα ελάχιστα plugins που αξίζουν πραγματικά τη θέση τους, διατηρήστε τα πάντα ενημερωμένα και απομονώστε τον ιστότοπο ώστε τυχόν πρόβλημα να παραμένει περιορισμένο. Αυτή η ανάρτηση είναι αυτή η λίστα ελέγχου, με τη σειρά που την εφαρμόζουμε σε κάθε ιστότοπο WordPress στην πλατφόρμα.

Προσωρινή αποθήκευση στον διακομιστή, όχι μόνο σε πρόσθετο

Ο μεγαλύτερος μοχλός για την ταχύτητα του WordPress είναι να μην εκτελείται καθόλου το WordPress στις περισσότερες επισκέψεις. Ένα τυπικό αίτημα εκκινεί το WordPress, εκτελεί τα πρόσθετά σας και κάνει ερωτήματα στη βάση δεδομένων πριν στείλει έστω ένα byte. Μια προσωinική μνήμη ολόκληρης σελίδας (full-page cache) σερβίρει την έτοιμη σελίδα απευθείας από τον διακομιστή ιστού στην επόμενη επίσκεψη, παραλείποντας ολόκληρη αυτή την εκκίνηση. Το πού βρίσκεται αυτή η προσωρινή μνήμη έχει σημασία: ένα πρόσθετο προσωρινής μνήμης βρίσκεται εντός της PHP, επομένως η PHP εξακολουθεί να ξεκινά προτού η προσωρινή μνήμη μπορέσει να απαντήσει, ενώ μια προσωρινή μνήμη σε επίπεδο διακομιστή απαντά νωρίτερα στο αίτημα και διατηρεί τις σελίδες σε μια μορφή που ο διακομιστής μπορεί να αποστείλει άμεσα.

Κάθε ιστότοπος WordPress που φιλοξενούμε εκτελείται σε LiteSpeed Enterprise με LSCache σε επίπεδο διακομιστή, και το δικό μας πρόσθετο Κρυφής Μνήμης συνδέει το WordPress σε αυτό σωστά εξαρχής — προεγκατεστημένο και αυτόματα ενημερωμένο, ώστε να είναι ένα λιγότερο πράγμα για διαμόρφωση ή ενημέρωση. Σε προέλευση που δεν είναι LiteSpeed, το ίδιο πρόσθετο απλώς δεν εκπέμπει επικεφαλίδες πλήρους σελίδας και παραμένει ανενεργό ενώ η κρυφή μνήμη αντικειμένων συνεχίζει να λειτουργεί, επομένως ένας ιστότοπος που μεταφέρθηκε δεν μένει ποτέ ημι-διαμορφωμένος. Ο πρακτικός κανόνας για τη δική σας λίστα ελέγχου: μία κρυφή μνήμη πλήρους σελίδας, στον διακομιστή, και μην τοποθετείτε δεύτερο πρόσθετο κρυφής μνήμης πάνω από αυτό — συγκρούονται.

Η προσωρινή μνήμη αντικειμένων και η βάση δεδομένων

Κάθε αίτημα δεν μπορεί να είναι μια στατική σελίδα. Οι συνεδρίες συνδεδεμένων χρηστών, το περιβάλλον διαχείρισης, η αναζήτηση, τα καλάθια και κάθε εξατομικευμένο τμήμα πρέπει να εκτελούν PHP, και για αυτά ο στόχος μετατοπίζεται από την παράκαμψη της εφαρμογής στην παράκαμψη της βάσης δεδομένων. Μια προσωinική μνήμη αντικειμένων ανά ιστότοπο — Redis, στην περίπτωσή μας — αποθηκεύει τα αποτελέσματα επαναλαμβανόμενων αναγνώσεων της βάσης δεδομένων στη μνήμη, ώστε οι ίδιες επιλογές, τα transients και οι αναζητήσεις να μην υποβάλλονται ως ερωτήματα στη βάση δεδομένων σε κάθε επίσκεψη. Το αποτέλεσμα εμφανίζεται ακριβώς εκεί όπου η προσωρινή μνήμη ολόκληρης σελίδας δεν μπορεί να βοηθήσει: ταχύτερη διαχείριση, ταχύτερα καλάθια και σημαντικά χαμηλότερος φόρτος στη βάση δεδομένων υπό την επίδραση της κίνησης.

Η λέξη-κλειδί είναι «ανά ιστότοπο». Μια κοινόχρηστη μνήμη cache αντικειμένων σημαίνει ότι ένας πολυάσχολος ή κακογραμμένος ιστότοπος μπορεί να εκδιώξει τα δεδομένα cache όλων των άλλων και να στερήσει από τους γείτονές του τη βάση δεδομένων· μια αποκλειστική cache ανά ιστότοπο, σε συνδυασμό με όρια βάσης δεδομένων ανά ιστότοπο, διατηρεί αυτή την ακτίνα ζημιάς περιορισμένη. Στη λίστα ελέγχου σας, θεωρήστε μια μόνιμη cache αντικειμένων ως απαραίτητη για κάθε ιστότοπο με συνδεδεμένους χρήστες ή κατάστημα, και να είστε επιφυλακτικοί με τη φιλοξενία όπου αυτή είναι κοινόχρηστη μεταξύ μισθωτών.

Τα πρόστιθετα που αξίζει να χρησιμοποιείτε — και αυτά που αντικαθιστά η πλατφόρμα

Κάθε πρόσθετο που προσθέτετε είναι κώδικας που εκτελείται σε αιτήματα και μια πόρτα από την οποία κάποιος μπορεί μια μέρα να περάσει, οπότε ο ειλικρινής στόχος είναι τα λιγότερα δυνατά πρόσθετα που κάνουν τα περισσότερα. Ένας καλός πάροχος φιλοξενίας εξαλείφει την ανάγκη για ολόκληρη κατηγορία εξ αυτών: με προσω D-μνήμη (cache) σε επίπεδο διακομιστή, διαχειριζόμενη προσωρινή μνήμη αντικειμένων (object cache) και αντίγραφα ασφαλείας πλατφόρμας, δεν χρειάζεστε πρόσθετο προσωρινής μνήμης, ξεχωριστό πρόσθετο object-cache ή πρόσθετο αντιγράφων ασφαλείας — αυτές οι εργασίες γίνονται καλύτερα κάτω από το WordPress, και η εκτέλεσή τους από πάνω απλώς προσθέτει διένεξη και υπερφόρτωση.

Ό,τι αξίζει να διατηρηθεί είναι το μικρό σύνολο που προσφέρει πραγματικές δυνατότητες: τα πρόσθετα που όντως χρειάζεται ο ιστότοπός σας για τη λειτουργία του, και —στην πλατφόρμα μας— τα δύο πρόσθετα επιπέδου αποθετηρίου που κατασκευάζουμε και παρέχουμε με κάθε ιστότοπο. Το πρόσθετο cache μας συνδέει το WordPress με την cache του διακομιστή και διαχειρίζεται την έξυπνη εκκαθάριση, ώστε μια τροποποίηση να καθαρίζει μόνο τις σελίδες που πρέπει. Το πρόσθετο footprint μας αφαιρεί τα ίχνη που εκπέμπει μια προεπιλεγμένη εγκατάσταση του WordPress —την ετικέτα έκδοσης και γεννήτριας, τα τελικά σημεία ανακάλυψης, το XML-RPC, τα pingbacks και την κεφαλίδα powered-by— σε κάθε ανάπτυξη, ώστε μια ενημέρωση προσθέτου ή θέματος να μην μπορεί να τα επαναφέρει σταδιακα. Και τα δύο είναι κατασκευασμένα σύμφωνα με τα πρότυπα του καταλόγου προσθέτων του WordPress.org, είναι δωρεάν και ενημερώνονται αυτόματα.

Διατήρηση του WordPress ασφαλούς και ενημερωμένου

Οι περισσότερες παραβιάσεις του WordPress δεν είναι έξυπνες· είναι παλιές. Ένας ξεπερασμένος πυρήνας, ένα θέμα ή ένα πρόσθετο με γνωστή, δημοσιευμένη ευπάθεια είναι μακράν ο πιο συνήθης τρόπος με τον οποίο τα sites πέφτουν θύματα επίθεσης, γεγονός που καθιστά τη διατήρηση ενημερωμένου λογισμικού την πιο σημαντική εργασία ασφάλειας που υπάρχει — και την πιο βαρετή, γι' αυτό και συχνά παραμελείται. Η Managed hosting θα πρέπει να το αφαιρέσει από τη λίστα των υποχρεώσεών σας: διορθώνοντας τη στοίβα κάτω από το WordPress, και κάνοντας τις ενημερώσεις του πυρήνα και των πρόσθετων ασφαλείς προς εφαρμογή, παρέχοντάς σας ένα αντίγραφο staging για να τις δοκιμάσετε και ένα αντίγραφο ασφαλείας για επαναφορά.

Πέρα από το νόμισμα, περιμένετε να επιβάλλονται τα όρια για εσάς: σάρωση κακόβουλου λογισμικού εξ ορισμού, ώστε μια μόλυνση να εντοπίζεται αντί να ανακαλύπτεται από έναν επισκέπτη, απομόνωση ώστε ένας παραβιασμένος ιστότοπος να μην μπορεί να φτάσει σε έναν άλλον, προστασία DDoS στο άκρο και TLS παντού με πιστοποιητικά που ανανεώνονται αυτόματα. Τίποτα από αυτά δεν αντικαθιστά τη βασική υγιεινή — ισχυρά διαπιστευτήρια, πρόσβαση ελάχιστων προνομίων, κατάργηση πρόσθετων που δεν χρησιμοποιείτε πλέον — αλλά σημαίνει ότι η υποδομή δεν είναι ο αδύναμος κρίκος. Στη λίστα ελέγχου σας, το ερώτημα για οποιονδήποτε πάροχο φιλοξενίας είναι απλό: είναι η ασφάλεια η προεπιλογή ή ένα πακέτο που αγοράζετε;

Το WooCommerce και οι σελίδες που δεν πρέπει ποτέ να κάνετε cache

Ένα ηλεκτρονικό κατάστημα είναι το μέρος όπου η επιθετική προσωisνή αποθήκευση (caching) αποφέρει τα μεγαλύτερους κέρδη της και προκαλεί τη μεγαλύτερη ζημιά αν είναι απλοϊκή. Ο κατάλογος, οι σελίδες προϊόντων και κατηγοριών είναι οι σελίδες με την υψηλότερη επισκεψιμότητα και τη μεγαλύτερη δυνατότητα caching που διαθέτετε, και η εξυπηρέτησή τους από προσωρινή μνήμη ολόκληρης σελίδας είναι ό,τι καλύτερο μπορείτε να κάνετε για την ταχύτητα ενός καταστήματος. Αλλά οι σελίδες καλαθιού, ταμείου και λογαριασμού είναι προσωπικές και δεν πρέπει ποτέ να εξυπηρετούνται από κοινόχρηστη προσωρινή μνήμη — αν το κάνετε αυτό, ένας αγοραστής βλέπει το καλάθι κάποιου άλλου, κάτι που αποτελεί ταυτόχρονα κα ست λειτουργία του καταστήματος και παραβίαση της ιδιωτικότητας.

Ο τρόπος για να έχετε και τα δύο είναι η προσωρινή αποθήκευση (caching) της σελίδας και η παράκαμψη για τα δυναμικά μέρη. Τα Edge Side Includes αποδίδουν το τμήμα του καλαθιού, τα σύνολα του mini-cart και την κατάσταση του λογαριασμού ανά αίτημα, ενώ το υπόλοιπο της σελίδας σερβίρεται από την cache, και το καλάθι, το checkout, η ενότητα my-account και οποιαδήποτε σελίδα nonce ή συνεδρίας εξαιρούνται από προεπιλογή. Η φρεσκάδα διαχειρίζεται μέσω έξυπνης αυτόματης εκκαθάρισης που ενεργοποιείται όταν αλλάζει ένα προϊόν, μια τιμή ή μια παραγγελία, ώστε να μην παραμένει ποτέ μια παλia τιμή. Αν χρησιμοποιείτε το WooCommerce, αυτό είναι το σημείο της λίστας ελέγχου που πρέπει να πετύχετε ακριβώς: γρήγορο ηλεκτρονικό κατάστημα από την cache, ζωντανό καλάθι ανά χρήστη, χωρίς ποτέ να γίνεται cache σε προσωπικά δεδομένα.

Συχνές ερωτήσεις

Χρειάζομαι ακόμα ένα πρόσθετο προσωρινής αποθήκευσης (caching) όπως το WP Rocket;

Όχι. Η προσωρινή αποθήκευση ολόκληρης σελίδας (full-page caching) διαχειρίζεται στον διακομιστή ιστού από το LSCache του LiteSpeed, το δικό μας πρόσθετο (plugin) cache συνδέει το WordPress με αυτό και διαχειρίζεται την έξυπνη εκκαθάριση (smart purging), ενώ μια προσωρινή μνήμη αντικειμένων Redis ανά ιστότοπο βρίσκεται πίσω από αυτό. Η προσθήκη ενός δεύτερου πρόσθετου προσωρινής αποθήκευσης ολόκληρης σελίδας επιπλέον συνήθως έρχεται σε διένεξη με την cache σε επίπεδο διακομιστή αντί να βοηθά, οπότε δεν είναι ούτε απαραίτητη ούτε συνιστώμενη.

Ποια πρόσθετα καθιστά η πλατφόρμα περιττά;

Τα πρόσθετα προσωρινής αποθήκευσης (caching), τα ξεχωριστά πρόσθετα προσωρινής αποθήκευσης αντικειμένων (object-cache) και τα πρόσθετα αντιγράφων ασφαλείας είναι όλα περιττά εδώ, επειδή αυτές οι εργασίες εκτελούνται κάτω από το WordPress — προσωρινή αποθήκευση σε επίπεδο διακομιστή, διαχειριζόμενη προσωρινή αποθήκευση αντικειμένων ανά ιστότοπο και αντίγραφα ασφαλείας πλατφόρμας. Η κατάργεισή τους μειώνει τις διενέξεις και την επιφάνεια επίθεσης. Αυτό που αξίζει να παραμείνει σε λειτουργία είναι τα πρόσθετα που πραγματικά χρειάζεται ο ιστότοπός σας για τη λειτουργία του, συν τα δύο δωρεάν πρόσθετα προσωρινής αποθήκευσης και footprint που παρέχονται προ εγκατεστημένα.

Θα χαλάσει η προσωρινή μνήμη (caching) το καλάθι μου στο WooCommerce ή τις σελίδες σύνδεσης;

Όχι. Το καλάθι, το ταμείο, ο λογαριασμός μου και τυχόν σελίδες nonce ή συνεδρίας εξαιρούνται από την προσωρινή μνήμη από προεπιλογή, και τα Edge Side Includes διατηρούν το τμήμα του καλαθιού και τα σύνολα ενεργά σε σελίδες που διαφορετικά θα αποθηκεύονταν στην προσωρινή μνήμη. Οι αγοραστές βλέπουν πάντα το δικό τους καλάθι και ένα λειτουργικό ταμείο, ενώ η βιτρίνα εξακολουθεί να φορτώνεται από την προσωρινή μνήμη, και η έξυπνη αυτόματη εκκαθάριση διαγράφει τις επηρεazόμενες σελίδες όταν αλλάζει ένα προϊόν, μια τιμή ή μια παραγγελία.

Πώς διατηρείτε το WordPress ασφαλές χωρίς να το διαχειρίζομαι εγώ;

Διορθώνουμε τη στοίβα τεχνολογιών κάτω από το WordPress, καθιστούμε τις ενημερώσεις του πυρήνα και των πρόσθετων ασφαλείς προς εφαρμογή με δοκιμαστικό περιβάλλον (staging) και επαναφορά με ένα κλικ, εκτελούμε σάρωση για κακόβουλο λογισμικό και προστασία DDoS ενεργοποιημένες από προεπιλογή, απομονώνουμε κάθε ιστότοπο ώστε μια παραβίαση να μην μπορεί να εξαπλωθεί, και εκδίδουμε και ανανεώνουμε πιστοποιητικά TLS αυτόματα. Αυτό εξαλείφει την υποδομή ως τον αδύναμο κρίκο· η βασική υγιεινή, όπως τα ισχυρά διαπιστευτήρια και η αφαίρεση μη χρησιμοποιούμενων πρόσθετων, εξακολουθεί να επιβαρύνει εσάς.

Δοκιμάστε το δωρεάν για 14 ημέρες

Δημιουργήστε τους πρώτους σας ιστότοπους δωρεάν για 14 ημέρες — χωρίς πιστωτική κάρτα. Μεταφέρετε έναν υπάρχοντα ιστότοπο ή δίκτυο; Η πρώτη σας μετανάστευση είναι κερασμένη από εμάς.

Ξεκινήστε δωρεάν