Magento και Ταχύτητα – Συμβουλές Βελτιστοποίησης Επιδόσεων

980 520 master
  • master
  • 0

Το Magento βρίσκεται στην κορυφή ανάμεσα στις πλατφόρμες ηλεκτρονικού εμπορίου και είναι αναγνωρισμένο παγκοσμίως από προγραμματιστές και ιδιοκτήτες καταστημάτων ηλεκτρονικού εμπορίου. Παρά τη δημοτικότητα του το Magento είναι ένα αρκετά βαρύ CMS (Content Management System – Σύστημα Διαχείρισης Περιεχομένου) και είναι αργό εάν δεν εφαρμοστούν η σωστή διαμόρφωση και οι σωστές ρυθμίσεις. Αυτό συμβαίνει επειδή αυτές οι ρυθμίσεις δεν είναι πολύ εμφανείς, και συχνά παραλείπονται ακόμη και από έμπειρους προγραμματιστές ιστού, εάν δεν είναι εξοικειομένοι με το Magento.

Υπάρχουν πολλές μέθοδοι που μπορούν να εφαρμοστούν από κάποιον ωστέ να βελτιωθούν οι επιδόσεις του Magento και άλλων CMS (Content Management System – Σύστημα Διαχείρισης Περιεχομένου) συστημάτων που είναι βασισμένα σε PHP. Αυτές οι μέθοδοι ξεκινούν από ρυθμίσεις εντός του Magento και επεκτείνονται σε ρυθμίσεις στον σέρβερ ή στο χώρο φιλοξενίας.

Εδώ θα μελετήσουμε μερικές μεθόδους που είναι σχετικά απλούστερες και αυξάνουν αισθητά την ταχύτητα φόρτωσης των σελίδων Magento.

1)Μειώστε το μέγεθος του αρχείου μεταφοράς μεταξύ του browser (προγράμματος περιήγησης) & του web server (σέρβερ ιστού)

Μία χρήσιμη προσέγγιση για να αυξήσετε τις επιδόσεις ενός καταστήματος Magento σημαντικά είναι μειώνοντας το μέγεθος του αρχείου μεταφοράς μεταξύ του browser (προγράμματος περιήγησης) και του web server (σέρβερ ιστού).

Μειώστε τα αρχεία JavaScript και CSS:

Η συμπίεση των αρχείων JavaScript και CSS μπορεί να μειώσει τα δεδομένα κατά πολλά byte και μειώνει το χρόνο που απαιτείται για κατέβασμα, ανάλυση και εκτέλεση. Υπάρχουν πολλά online εργαλεία που είναι διαθέσιμα για τη μείωση των αρχείων JavaScript και CSS, όπως τα jscompress.com, minifyjavascript.com, csscompressor.com, και minifycss.com.

Βελτιστοποιήστε τις Εικόνες αλλάζοντας το μέγεθος τους:

Επιλέξτε μία κατάλληλη μορφή αρχείου εικόνας και συμπιέστε τις εικόνες χρησιμοποιώντας έναν συμπιεστή εικόνων για να μειώσετε το bandwidth (εύρος) μεταξύ του browser (προγράμματος περιήγησης) και του web server (σέρβερ ιστού). Υπάρχουν πολλά εργαλεία συμπίεσης εικόνων που προσφέρονται online όπως τα imageoptimizer.net, hjpeg-optimizer.com, JPEGMini.com, κλπ.

Ενεργοποιήστε την GZIP συμπίεση

Μπορείτε να μειώσετε σημαντικά τον αριθμό byte που στέλνονται μέσω του δικτύου χρησιμοποιώντας την GZIP συμπίεση που μειώνει το μέγεθος των HTML, CSS, και JavaScript αρχείων που στέλνονται μέσω του δικτύου έως και 70% και μειώνει δραματικά το χρόνο που απαιτείται για κατέβασμα.

2) Μειώστε τον Αριθμό των HTTP Αιτημάτων

Μελέτες έχουν αποκαλύψει ότι η συγκέντρωση στους ενήλικες κατά μέσο όρο διαρκεί οχτώ δευτερόλεπτα. Αυτός είναι ο λόγος που ο χρόνος φόρτωσης είναι ο σημαντικότερος παράγοντας επιτυχίας ενός online καταστήματος, οπότε μειώστε τα HTTP αιτήματα όσο το δυνατόν περισσότερο. Υπάρχουν αρκετές διαθέσιμες μέθοδοι που μπορούν να σας βοηθήσουν να μειώσετε τα HTTP αιτήματα και να διατηρήσετε την υψηλή ποιότητα της σελίδας σας ταυτόχρονα. Συνδυάστε τα αρχεία JavaScript και τα αρχεία CSS: Συγχωνεύοντας τα αρχεία CSS και τα αρχεία JavaScript, ο χρόνος του κύκλου του HTTP μπορεί να μειωθεί. Αυτή είναι μία ενσωματωμένη ιδιότητα του Magento.

Πηγαίνετε στο System (σύστημα) > Configuration (διαμόρφωση) > Advanced (για προχωρημένους) > Developer (προγραμματιστής)

Στις επιλογές JavaScript και στις επιλογές CSS επιλέξτε Yes (ναι)

Συνδυάστε εικόνες χρησιμοποιώντας στοιχεία CSS:

Με τη βοήθεια στοιχείων CSS, ο αριθμός εικόνων μπορεί να μειωθεί συνδυάζοντας τις σε όσο λιγότερα αρχεία είναι δυνατό. Αυτό θα μειώσει τα αιτήματα του σέρβερ και θα μειώσει τον αριθμό των byte που απαιτούνται από μία σελίδα.

Χρησιμοποιήστε Expires Headers (κεφαλίδες που λένε στον browser εάν θα πρέπει να ζητήσει ένα αρχείο από τον σέρβερ, ή θα πρέπει να το πάρει από την cache του) ή κεφαλίδες ελέγχου της Cache

Με τη χρήση των expire headers (κεφαλίδες που λένε στον browser εάν θα πρέπει να ζητήσει ένα αρχείο από τον σέρβερ, ή θα πρέπει να το πάρει από την cache του) ή κεφαλίδων ελέγχου της cache, ο αριθμός των HTTP αιτημάτων και το μέγεθος τους μπορεί να μειωθεί για πιο γρήγογη φόρτωση της σελίδας.

Ενεργοποιήστε τα Apache KeepAlives

Όταν χρησιμοποιείτε κοινόχρηστους χώρους φιλοξενίας, ο browser (πρόγραμμα περιήγησης) ενδέχεται να κλείσει τις συνδέσεις, οπότε είναι σημαντικό να ενεργοποιήσετε τα Apache KeepAlives για να βελτιώσετε την επικοινωνία μεταξύ σέρβερ και browser (προγράμματος περιήγησης).

Μειώστε τον αριθμό των στοιχείων DOM

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

Εξετάστε την εναλλακτική να μειώσετε τα στοιχεία DOM. Υπάρχουν πολλά δωρεάν εργαλεία διαθέσιμα, όπως τα DOMMonster, και DOMinspector, που εξετάζουν τη σελίδα σας και προσφέρουν προτάσεις για βελτίωση.

Τα στιγμιότυπα οθόνης παρακάτω έχουν παρθεί χρησιμοποιώντας το εργαλείο DOM Monster. Η πρώτη εικόνα είναι ένα παράδειγμα μία υγιούς σελίδας με μικρότερο αριθμό στοιχείων DOM, ενώ η δεύτερη εικόνα δείχνει ένα μεγαλύτερο αριθμό στοιχείων DOM.

YSlow – Το YSlow παίρνει όλα τα δεδομένα για τη σελίδα, και παράγει ένα βαθμό για κάθε κανόνα, και τελικά παράγει τον συνολικό βαθμό. Το Yslow προσφέρει μεγάλη βοήθεια στο σχεδιασμό σελίδων με καταπληκτικές ταχύτητες φόρτωσης. Το Grids.css μπορεί να σας βοηθήσει να σχεδιάσετε μία σελίδα που αποκρίνεται, ενώ τα fonts.css και reset.css σας βοηθούν να εξαλείψετε την προεπιλεγμένη μορφοποίηση του browser (προγράμματος πλοήγησης).

Τοποθετήστε τις CSS κλήσεις στην κορυφή της σελίδας και τις JS κλήσεις στο τέλος της σελίδας

Πάντα να τοποθετείτε τις CSS κλήσεις στην κορυφή της σελίδας και τις Java Scripts κλήσεις στο τέλος της, καθώς αυτό βοηθάει στη βελτίωση της απόδοσης πολλών browser (προγραμμάτων πλοήγησης), και κατά συνέπεια αυξάνει την ταχύτητα φόρτωσης της σελίδας.

3)Υλοποιήστε τους Aπαραίτητους Mηχανισμούς Cache

Ενεργοποιήστε όλους τους Magento μηχανισμούς Cache. Ενεργοποιήστε όλη την προσβάσιμη cache από τον πίνακα διαχείρησης του Magento (System (σύστημα) –> Cache Management (διαχείρηση cache)).

Υλοποιήστε τον opcode cache μηχανισμό

Η PHP είναι μία μεταφραστική γλώσσα, που σημαίνει ότι κάθε φορά που ζητείται μία σελίδα, ο σέρβερ χρειάζεται να διαβάσει πολλαπλά αρχεία για ένα απλό αίτημα, και να τα συντάξει στην γλώσσα μηχανής (opcode). Το Magento συμπεριλαμβάνει πολλά αρχεία σε ένα απλό αίτημα, που σημαίνει ότι υπάρχει αρκετός φόρτος κατά την υλοποίηση του opcode cache.

Εάν χρησιμοποιείτε PHP έκδοση 5.5 ή νεότερη, αυτές οι εκδόσεις έρχονται με ενσωματωμέμες “opcode caches”, που προσφέρουν πιο γρήγορη εκτέλεση της PHP μέσω opcode cache, και βελτιστοποίηση του site.

Διαθέσιμες opcode caches για το Magento είναι οι (APC, accelerator, xcache, etc).

Ενεργοποιήστε τον Memcache μηχανισμό

Το Memcache είναι ένα cache σύστημα υψηλής απόδοσης, κατανεμημένης μνήμης, γενικής φύσης, το οποίο χρησιμοποιείται για επιτάχυνση εφαρμογών ιστού μειώνοντας τον φόρτο της βάσης δεδομένων.

Αυτός ο cache μηχανισμός βοηθάει να λαμβάνετε καλύτερες επιδόσεις από τη βάση δεδομένων σας αφαιρώντας cache δεδομένα από αυτήν. Το Magento υποστηρίζει το Memcache, αλλά δεν είναι ενεργοποιημένο από προεπιλογή. Χρειάζεται να ενεργοποιήσετε το Memcache μέσω του αρχείου διαμόρφωσης του, να ξεκινήσετε την υπηρεσία, και να επανεκκινήσετε το Apache.

Υλοποιήστε την Redis cache

Υπάρχουν προβλήματα κατά την υλοποίηση του TwoLevels Cache Backend (δηλαδή την χρήση του Memcache ταυτόχρονα με τη βάση δεδομένων). Το Redis είναι μία κατάλληλη εναλλακτική για τη λύση αυτού του προβλήματος. Το Redis είναι ένα κατάστημα Open Source (ανοιχτού κώδικα) αδειοδοτημένο από το BSD. Συχνά αναφέρεται ως σέρβερ δομής δεδομένων.

Έχει εξακριβωθεί ότι είναι ένας από τους ανώτερους και πιο αποδοτικούς cache μηχανισμούς για το Magento.

Οι παρακάτω εκδόσεις υποστηρίζουν Redis και back end caching:

  • Enterprise Edition (EE) 1.13 και νεότερες
  • Community Edition (CE) 1.8

Βάλτε σε δράση το “Varnish caching

Το Varnish είναι ένας HTTP επιταχυντής, που λειτουργεί ως εξισορροπιστής φόρτου (load balancer). Κρύβει την HTML που έχει δημιουργηθεί από μία σελίδα και εξυπηρετεί έναν χρήστη συντομότερα από μία κλήση στο Magento Framework. Έτσι μειώνει το χρόνο φόρτωσης και τον χρόνο απόκρισης αισθητά.

Ενεργοποιήστε την Cache Αιτημάτων της MySQL

Η MySQL έχει τη δική της “cache αιτημάτων”, που υποστηρίζει τη βελτιστοποίηση της απόδοσης της MySQL. Βοηθάει στη δημιουργία δυναμικών σελίδων και δυναμικού περιεχομένου, ενώ ταυτόχρονα βελτιώνει σημαντικά την απόδοση.

Η MySQL αποθηκεύει το κείμενο του αιτήματος και τα αποτελέσματα στην cache της, και όταν επαναληφθεί το ίδιο αίτημα, τα αποτελέσματα είναι διαθέσιμα άμεσα.

Χρησιμοποιήστε ένα Δίκτυο Διανομής Περιεχομένου(Content Delivery Network (CDN))

Το CDN βοηθάει να μειώσετε το φόρτο του σέρβερ, προσφέροντας το στατικό περιεχόμενο, όπως εικόνες, αρχεία CSS, ή αρχεία JavaScript, μέσω ενός δικτύου σέρβερ που βρίσκονται κοντά στους πελάτες σας. Ένα CDN μπορεί να βελτιώσει εκπληκτικά την εμπειρία των χρηστών στο site σας.

4) Βελτιστοποιήστε την Απόδοση Μέσω του Πίνακα Διαχείρησης του Magento

Κρατήστε την καταγραφή απενεργοποιημένη

Ο μηχανισμός καταγραφής του Magento είναι ενεργοποιημένος. Μπορεί να απενεργοποιηθεί πολύ απλά από τον πίνακα διαχείρησης.

Πηγαίνετε στο System (σύστημα) > Configuration (διαμόρφωση) > Advanced (για προχωρημένους) > Mage Log (μάγος καταγραφής) > Set Disable and Save (απενεργοποίηση και αποθήκευση)

Ενεργοποιήστε τη Σύνταξη

Αυτή η επιλογή σας επιτρέπει να συντάξετε όλα τα αρχεία μίας εγκατάστασης Magento ώστε να παράγουν ένα μοναδικό μονοπάτι για τη βελτίωση της απόδοσης”.

Για την ενεργοποίηση, πηγαίνετε στο “System” (σύστημα) > “Tools” (εργαλεία) > “Compilation” (σύνταξη) και κάντε κλικ στο κουμπί “Run Compilation Process” (έναρξη της διαδικασίας σύνταξης).

Για να χρησιμοποιήσετε αυτό το εργαλείο, τόσο ο κατάλογος όσο και το αρχείο πρέπει να είναι εγγράψιμα.

Ενεργοποιήστε Επίπεδες Κατηγορίες και Προϊόντα

Επειδή οι πληροφορίες κάθε προϊόντος ή κατηγορίας αποθηκεύονται σε πολλαπλούς πίνακες, κάθε φορά που ζητείται ένα προϊόν ή μία κατηγορία, δημιουργείται ένα μεγάλο συνολικό αίτημα για τη συλλογή όλων των τμημάτων πληροφορίας και για τη δημιουργία μίας σελίδας.

Εάν ενεργοποιήσετε την Επίπεδη Κατηγορία αυτές οι σελίδες παράγονται από ένα μόνο αίτημα στη βάση δεδομένων από ένα μόνο πίνακα. Αυτό βελτιώνει αισθητά την απόδοση φόρτωσης μίας σελίδας προϊόντος ή κατηγορίας.

System (σύστημα) > Configuration (διαμόρφωση) >Catalog Panel (πίνακας διαχείρησης καταλόγου) > Catalogue (κατάλογος) > Frontend (μπροστά σελίδες) > θα δείτε δύο επιλογές “Use Flat Catalog Product” (χρήση επίπεδου καταλόγου προϊόντος) και “Use Flat Catalog Category” (χρήση επίπεδου καταλόγου κατηγορίας). Ορίστε και τα δύο ως Yes (ναι).

Συμπέρασμα:

Η βελτιστοποίηση απόδοσης του Magento είναι μία εργασία δίχως τέλος, και δε χρειάζεται να υλοποιήσετε όλες τις παραπάνω προτάσεις. Ωστόσο εάν χρησιμοποιήσετε τα κατάλληλα εργαλεία και τις κατάλληλες ρυθμίσεις, μπορείτε να βελτιώσετε την απόδοση του Magento καταστήματος σας σε μεγάλο βαθμό. Ωστόσο εάν νιώθετε ότι έχετε κολλήσει κάπου, μπορείτε να επικοινωνήσετε μαζί μας, και εμείς μπορούμε να σας βοηθήσουμε να βελτιώσετε την απόδοση του Magento καταστήματος σας.