Κατασκευή ιστοσελιδων – συμπίεση

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

Με απλά λόγια η μηχανή αναζήτησης παρέχει ένα προϊόν. Αυτό το προϊόν είναι οι σχετικότερες πληροφορίες με βάση την αναζήτηση του χρήστη (χρήστης = πελάτης όσον αφορά την μηχανή αναζήτησης).

Η μηχανή αναζήτησης λοιπόν λαμβάνει σοβαρά υπόψιν της την ταχύτητα φόρτωσης του website μας όσον αφορά την κατάταξή μας σε αυτήν (ανάμεσα σε πολλά άλλα πράγματα), διότι ενδιαφέρεται να είναι ευχαριστημένος ο πελάτης τους (χρήστης που έκανε την αναζήτηση).

Επίσης η ταχύτητα απόκρισης του website μας συμβάλει θετικά ή αρνητικά στην συνολική εικόνα (έστω και υποσυνείδητα) που έχει ο χρήστης για το site. Σκεφτείτε το εξής, πόσο πιθανό θα ήταν να στείλετε ένα link σε κάποιον φίλο σας από ένα site για το οποίο δεν σχηματίσατε καλή άποψη; Η να κάνετε share ή like στο Facebook ή σε οποιαδήποτε άλλη πλατφόρμα κοινωνικής δικτύωσης.

To Drupal έχει εγγενώς πολύ καλούς μηχανισμούς στο να κάνει τις σελίδες των website όσο το δυνατόν πιο light σε http requests αλλά και να μην φορτώνει την βάση.
Τις ρυθμίσεις για το caching τους βρίσκουμε στο url : www.replaceWithMySite.gr/admin/settings/performance

Αφού ενεργοποιήσουμε κατά βούληση κάποιες επιλογές, εξετάζουμε το website με κάποιο optimazation reporting tool όπως το Yslow, to pagespeed ή κάποιο παρεμφερές εργαλείο.
Στο report σίγουρα θα εκπλαγείτε όταν παρατηρήσετε ότι ενώ μειώθηκαν http requests κατά πολύ ( αναλόγως με τον αριθμό των modules που έχουμε στην εκάστοτε εγκατάσταση ) συνεχίζουμε να έχουμε πρόβλημα στο compression των files ( html, js και css ).

Το compression στο οποίο αναφέρονται το page speed , Yslow και λοιπά εργαλεία άφορα πραγματική συμπίεση ( σαν το tar.gz, rar, zip etc ) .
Το aggregate του Drupal συνδυάζει πολλαπλά αρχεία css kai js  σε ένα αρχείο αντιστοίχως οπότε γλυτώνεις δεκάδες http requests το οποίο είναι πολύ καλό βήμα αλλά δεν τα συμπιέζει.

Οι επιλογές που έχουμε είναι οι εξής :

Η θα γίνεται συμπίεση σε web server επίπεδο ( εάν έχουμε διαχείριση ( root ) σε δικό μας server ή VPS ) .
Περισσότερα για αυτό θα βρείτε στα documentations του Apache.

http://httpd.apache.org/docs/2.2/mod/mod_deflate.html (DeflateCompressionLevel).

Σε μια Debian εγκατάσταση όπου χρησιμοποιούμε Apache2 το mod_deflate είναι ήδη εγκατεστημένο.
Tο ενεργοποιούμε απλά

myBox:~#a2enmod deflate

και στην συνέχεια ενεργοποιούμε το compression καθολικά για όλα τα sites του server (εάν αυτό θέλουμε) προσθέτοντας στο αρχείο ρυθμίσεων του apache (debian – /etc/apache2/apache2.conf )
την παρακάτω γραμμή.

AddOutputFilterByType DEFLATE text/html text/plain text/xml

ή μπορούμε να κάνουμε compression ανά site, οπότε στο .htaccess του root φακέλου μας στο site για το οποίο θέλουμε να ενεργοποιήσουμε το compression προσθέτουμε τα παρακάτω :

<IfModule mod_deflate.c>
<FilesMatch “.(js|css|html|)$”>
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

Ή θα εγκαταστήσουμε τα παρακάτω δύο πολύ καλά και δοκιμασμένα modules,

http://drupal.org/project/css_gzip
http://drupal.org/project/javascript_aggregator

και στο : www.tositesou.gr/admin/settings/performance
θα βρεις τις αντίστοιχες επιλογές για να ενεργοποιήσεις το πολυπόθητο compression 😀

Όταν ξανά τρέξουμε το tool θα έχουμε πλέον A grade στο compression!

Published by

Leave a Reply