Σε έναν κόσμο που ολοένα και περισσότερο εξαρτάται από την τεχνολογία και το διαδίκτυο, η ανάγκη για ενεργειακά βιώσιμες λύσεις γίνεται επιτακτική. Ο τομέας της ανάπτυξης ιστοτόπων (web development) και εφαρμογών, όντας το επίκεντρο του διαδικτύου, δεν αποτελεί εξαίρεση.
Τι είναι το Sustainable Web Development;
Το sustainable web development αποτελεί ένα σχετικά νέο όρο που αναδεικνύει τη σημασία δημιουργίας ιστοτόπων και εφαρμογών που είναι φιλικές προς το περιβάλλον, διατηρώντας παράλληλα υψηλά επίπεδα λειτουργικότητας και απόδοσης. Αναφέρεται, δηλαδή, στις πρακτικές και τις τεχνικές που μειώνουν το περιβαλλοντικό αποτύπωμα των ιστοτόπων και των εφαρμογών. Αυτό περιλαμβάνει τη μείωση της ενέργειας που απαιτείται για τη φιλοξενία, την πρόσβαση και τη χρήση των ιστοτόπων, καθώς και τη βελτίωση της αποτελεσματικότητας του κώδικα και κατ' επέκταση των πόρων που καταναλώνει. Είναι, λοιπόν, μια (σχετικά) νέα τεχνολογική τάση που φέρνει τις αρχές της βιώσιμης ανάπτυξης στο διαδίκτυο.
Πόση σημασία έχει;
Μοιραία μπορεί να αναρωτηθείς τί αντίκτυπο έχει ουσιαστικά η "ενεργειακή" βελτιστοποίηση ενός ιστοτόπου, καθώς το περιβαλλοντικό όφελος πιθανότατα θα είναι ελάχιστο σε σύγκριση με άλλες πηγές εκπομπών διοξειδίου του άνθρακα, όπως οι μεταφορές ή η βιομηχανία. Και θα έχεις απόλυτο δίκιο! Ακόμα και ο ίδιος ο κλάδος της πληροφορικής, πέραν της ανάπτυξης ιστοτόπων και εφαρμογών, έχει δυσθεώρητο ενεργειακό αποτύπωμα, ιδίως αν αναλογιστούμε τις απίστευτες απαιτήσεις σε ενέργεια που έχουν οι εφαρμογές Τεχνητής Νοημοσύνης ή οι υπηρεσίες Cloud. Είναι ενδεικτική η πρόσφατη συζήτηση γύρω από την πρόθεση της Meta (θυγατρικής του Facebook) να ενσωματώσει πυρηνικούς αντιδραστήρες στις δραστηριότητές της μέχρι το 2030, προκειμένου να καλύψει τις αυξημένες ενεργειακές απαιτήσεις των data centers της. Ήδη, βάσει σχετικής μελέτης του 2021 από τους Freitag et al., οι συνολικές εκπομπές CO2 του κλάδου της πληροφορικής σε σύγκριση με τις εκπομπές CO2 ορυκτών ανά χώρα, χρησιμοποιώντας δεδομένα του 2020 από τη βάση δεδομένων εκπομπών της Ευρωπαϊκής Ένωσης για την παγκόσμια ατμοσφαιρική έρευνα (EDGAR), αν το διαδίκτυο ήταν χώρα, θα ήταν η τέταρτη χειρότερη παγκοσμίως σε εκπομπές ρύπων.
Πόσο νόημα έχει λοιπόν να ασχολούμαστε με το ενεργειακό αποτύπωμα ενός ιστοτόπου όταν άλλες πλατφόρμες χρειάζονται ολόκληρα πυρηνικά εργοστάσια για να τροφοδοτούν τα data centers τους; Δύο επιχειρήματα υπάρχουν εδώ:
Πρώτον, ενώ μια μεμονωμένη βιώσιμη εφαρμογή μπορεί να φαίνεται πως έχει ελάχιστη επίδραση, όταν αυτή η προσέγγιση υιοθετείται από εκατομμύρια εφαρμογές, ο αντίκτυπος είναι αντίστοιχα μεγάλος. Σκέψου το εξής: Μικρές βελτιστοποιήσεις, όπως η χρήση πράσινων data centers ή η συμπίεση εικόνων, όταν εφαρμόζονται συστηματικά, οδηγούν κλιμακωτά σε μεγάλες μειώσεις στο ενεργειακό αποτύπωμα. Αντίστοιχα, αν κάθε ιστότοπος μείωνε την κατανάλωση ενέργειας έστω και κατά 10%, η συνολική εξοικονόμηση θα ήταν τεράστια σε παγκόσμια κλίμακα, δηλαδή για το σύνολο των ιστοτόπων.
Δεύτερον, εν τέλει δεν φαίνεται να έχει σημασία το κίνητρο που έχεις για να βελτιστοποιήσεις έναν ιστότοπο, μιας και η συντριπτική πλειοψηφία των ορθών πρακτικών που μειώνουν το ενεργειακό αποτύπωμα ενός ιστοτόπου, όπως θα δούμε και αναλυτικότερα στη συνέχεια, αποτελούν ούτως ή άλλως καλές πρακτικές που ήδη (οφείλουμε να) εφαρμόζουμε κατά την ανάπτυξη ιστοτόπων και εφαρμογών. Κάποιες εξ' αυτών, μάλιστα, φαίνεται ήδη να αποτελούν και ranking factors, οπότε έτσι κι αλλιώς οφείλεις να τις λάβεις υπόψιν αν θέλεις να "σκοράρει" καλύτερα ο ιστότοπος στις μηχανές αναζήτησης. Πάμε να τις δούμε;
Πρακτικές για Βιώσιμη Ανάπτυξη Ιστοτόπων
Αρχικά, όταν μιλάμε για την ενεργειακή απόδοση των ιστότοπων, είναι σαφές πως αναφερόμαστε σε μεγάλο βαθμό σε τεχνικά ζητήματα. Ωστόσο, η αποτελεσματικότητα μπορεί να βελτιωθεί πριν καν ξεκινήσουμε την υλοποίηση ενός ιστοτόπου. Παράλληλα, ο σχεδιασμός και το περιεχόμενο έχουν μεγάλο αντίκτυπο στην ενεργειακή απόδοση. Συνεπώς, οι ακόλουθες πρακτικές είναι βασικά στοιχεία που οφείλει κανείς να εξετάσει πριν, κατά τη διάρκεια και μετά την υλοποίηση ενός ιστοτόπου.
1. Η επιλογή του server
Ένα από τα πρώτα πρακτικά ζητήματα που προκύπτουν ήδη κατά το σχεδιασμό ενός ιστοτόπου είναι η επιλογή του κατάλληλου web hosting περιβάλλοντος για τη φιλοξενία του.
Οι ιστότοποι καταναλώνουν πολλή ενέργεια τόσο λόγω της απαίτησης για αδιάλειπτη λειτουργία του server όσο και για τη μετάδοση δεδομένων προς και από το data center. Η προσεκτική επιλογή της εταιρείας που θα φιλοξενήσει τον ιστότοπο μπορεί επομένως να έχει μεγάλο αντίκτυπο στην ενεργειακή απόδοση και τις ταχύτητες του ιστοτόπου. Τα κυριότερα κριτήρια είναι τα εξής:
-
Χρήση ενός data center κοντά στους χρήστες σου. Μεγάλο μέρος της ενέργειας που καταναλώνεται από το Διαδίκτυο χρησιμοποιείται για τη μετάδοση δεδομένων μέσω των τηλεπικοινωνιακών δικτύων. Είναι αυτονόητο ότι όσο πιο μακριά πρέπει να ταξιδέψει η πληροφορία, τόσο περισσότερη ενέργεια απαιτεί για το ταξίδι της. Επομένως, η επιλογή ενός data center κοντά στο κοινό-στόχο σου θα συμβάλλει στη μείωση της κατανάλωσης ενέργειας. Για παράδειγμα, μπορεί να βρεις ένα οικονομικό πακέτο web hosting από μια εταιρεία που το data center της εδρεύει στις ΗΠΑ, αλλά εάν οι επισκέπτες-στόχοι σου βρίσκονται στην Ελλάδα, τότε η ενέργεια θα σπαταληθεί για τη μετάδοση δεδομένων στον Ατλαντικό. Επιπλέον, αυτή η τεράστια απόσταση πιθανότατα να προκαλέσει επίσης καθυστέρηση στους χρόνους φόρτωσης της σελίδας - που παρεμπιπτόντως αποτελεί και κριτήριο κατάταξης στις μηχανές αναζήτησης. Επομένως η επιλογή ενός data center κοντά στο βασικό target group σου θα είναι καλό τόσο για την εμπειρία των επισκεπτών σου όσο και για τον πλανήτη.
-
Χρήση ενός data center με αξιοπρεπή δείκτη PUE. Το PUE σημαίνει Power Usage Effectiveness, δηλαδή αποτελεσματικότητα χρήσης ενέργειας και είναι το τυπικό μέτρο ενεργειακής απόδοσης για τα data centers. Αντιπροσωπεύει το ποσοστό των υπολογιστών που τροφοδοτούνται με ενέργεια σε σύγκριση με άλλα συστήματα όπως η ψύξη και ο φωτισμός. Αρχικά, λοιπόν, μπορείς να προσανατολιστείς προς κάποιον web host ο οποίος κατ’ ελάχιστον να έχει τη δυνατότητα να μετρήσει κάποια στοιχειώδη μεγέθη όσον αφορά την ενεργειακή του απόδοση. Ιδανικά, θέλεις να είναι διαφανής σχετικά με το PUE του και ακόμα πιο ιδανικά να είναι πολύ χαμηλό. Η τέλεια βαθμολογία PUE είναι 1.0 και φυσικά η τέλεια απόδοση δεν μπορεί να επιτευχθεί ποτέ, αλλά ορισμένες εταιρείες πλησιάζουν αρκετά (για παράδειγμα η Google έχει φτάσει το εξαιρετικό 1.09). Πάντως, ο μέσος όρος παγκοσμίως είναι “κολλημένος” τα τελευταία χρόνια στο 1.56 (Πηγή: Uptime Institute Global Data Center Survey 2024 ). Αξίζει επίσης να σημειωθεί ότι το PUE δεν είναι παρά ένας απλός δείκτης, καθώς υπάρχουν πολλοί άλλοι παράγοντες που το επηρεάζουν, όπως π.χ. το κλίμα της φυσικής τοποθεσίας όπου βρίσκεται το data center, αλλά παρ’ όλα αυτά δίνει ένα ενδεικτικό μέγεθος αποτελεσματικότητας.
Σε κάθε περίπτωση, η επιλογή ενός πράσινου web host οφείλει να ανταποκρίνεται σε ουσιαστικά, μετρήσιμα κριτήρια. Κάποιες εταιρείες διαθέτουν πολιτικές βιωσιμότητας σχετικά με τη χρήση της πράσινης ενέργειας για το data center τους, την ενεργειακή απόδοση, τα ηλεκτρονικά απόβλητα κ.λπ.. Φυσικά, το θέμα της χρήσης πράσινης ενέργειας εξειδικεύεται ακόμα περισσότερο και θα μπορούσε να γραφτεί ένα ολόκληρο άρθρο μόνο γι’ αυτό το θέμα, καθώς δεν έχουν όλες οι δεσμεύσεις την ίδια βαρύτητα (για παράδειγμα, έχει διαφορά το να αξιοποιείς δικές σου υποδομές ανανεώσιμης ενέργειας από το να αγοράζεις από το δίκτυο ρεύμα από ανανεώσιμες πηγές ενέργειας). Εν τέλει, μια εταιρεία hosting που παίρνει στα σοβαρά το ενεργειακό της αποτύπωμα, οφείλει να έχει απτές και μετρήσιμες δεσμεύσεις και όχι αόριστες δηλώσεις τύπου «στοχεύουμε στην αποτελεσματική λειτουργία των δραστηριοτήτων μας» ή «προστατεύουμε το περιβάλλον». Μπορείς να ρίξεις μια ματιά και στον σχετικό κατάλογο πράσινων web hosts του Green Web Foundation όπου περιέχει πάνω από 300 εταιρείες ανά τον κόσμο.
2. Υλοποιώντας έναν ιστότοπο σωστά
Εδώ πιθανότατα δεν θα διαβάσεις κάτι που δεν ήξερες (ή που δεν όφειλες να γνωρίζεις) ήδη, καθώς πρόκειται για μια σειρά ορθών πρακτικών που διέπουν εδώ και χρόνια τον κλάδο του web development.
Ξεκινάμε με το πιο αυτονόητο:
-
Γράφε καθαρό και απλό κώδικα. Αποφεύγοντας, για παράδειγμα, τις περιττές επαναλήψεις κώδικα ή γράφοντας αποτελεσματικά queries, όχι μόνο κάνεις τον ιστότοπο ή την εφαρμογή σου να τρέχει πιο γρήγορα και πιο αποτελεσματικά, αλλά προφανώς μπορεί να συντηρηθεί και πιο εύκολα.
Φυσικά, αυτό δεν ισχύει μόνο για τον κώδικα που γράφεις, αλλά και για τον κώδικα που δανείζεσαι. Εάν, για παράδειγμα, χρησιμοποιείς υπάρχοντα frameworks και libraries, τότε χρειάζεται να τα προσαρμόζεις στις ανάγκες σου ώστε να χρησιμοποιείς μόνο τα κομμάτια εκείνα που προσφέρουν τη λειτουργικότητα που χρειάζεσαι. Το να φορτώνεις μια ολόκληρη βιβλιοθήκη για να χρησιμοποιήσεις π.χ. ένα icon, είναι σαν να πυροβολείς σπουργίτια με κανόνι. Το ίδιο ισχύει και στις περιπτώσεις που θέλεις να επιλέξεις τη χρήση κάποιου CMS για τον ιστότοπό σου. Μπορείς, για παράδειγμα, να αποφύγεις CMS όπως το WordPress, που ακόμα και για την πιο απλή λειτουργία συχνά χρειάζεται να εγκαταστήσεις κάποιο plugin τρίτου κατασκευαστή, και να προτιμήσεις ένα CMS όπως το Joomla! που για τα περισσότερα στοιχεία που πιθανότατα θα χρειαστείς, έχει ήδη προνοήσει ώστε να σου τα προσφέρει από μόνο του. Με αυτόν τον τρόπο ενισχύεις και την ασφάλεια του ιστοτόπου σου, τον κάνεις πιο γρήγορο, πιο λειτουργικό και εν τέλει ελαχιστοποιείς το φόρτο του διακομιστή και δεν προσθέτεις περιττά βάρη στο front-end ή στο back-end. -
Χρησιμοποίησε λιγότερη JavaScript. Η JavaScript επηρεάζει την αποτελεσματικότητα του ιστότοπου με δύο τρόπους: προσθέτοντας πιο βαριά αρχεία στον ιστότοπο και αυξάνοντας τον όγκο επεξεργασίας που απαιτείται από τον server ή από τη συσκευή των χρηστών. Και οι δύο τρόποι φυσικά οδηγούν σε περισσότερη κατανάλωση ενέργειας. Μπορείς να αναζητήσεις εναλλακτικούς τρόπους για να επιτύχεις την επιδιωκώμενη αλληλεπίδραση με τον χρήστη (μιας και συνήθως γι’ αυτό χρησιμοποιείς JavaScript), για παράδειγμα εξερευνώντας μήπως μπορεί να σε καλύψει το CSS3 για κάποιο animation. Ακόμα όμως κι αν δεν μπορείς να αποφύγεις τη χρήση Javascript, μπορείς τουλάχιστον να το χρησιμοποιήσεις αποτελεσματικά, εκτελώντας το για παράδειγμα προς το τέλος της φόρτωσης του ιστοτόπου (δηλαδή τοποθετώντας το script χαμηλά στον κώδικα, όπως άλλωστε είναι και η ορθή πρακτική). Ιδιαίτερη αναφορά χρειάζεται να γίνει εδώ στα scripts παρακολούθησης του επισκέπτη και διαφήμισης, που σπάνια προσφέρουν αξία στον χρήστη, αλλά μπορούν να προσθέσουν σημαντικό βάρος στα αρχεία που φορτώνονται, να προκαλέσουν σημαντική χρήση της CPU, να επιβραδύνουν τους ιστότοπους και -ως κερασάκι στην τούρτα- να παραβιάσουν το απόρρητο των χρηστών. Και κάτι ακόμα: η χρήση των προϊόντων της Google σε αυτό το κομμάτι δεν είναι ούτε μονόδρομος ούτε industry standard. Υπάρχουν και άλλα εργαλεία στην αγορά που κάνουν την ίδια ή παρόμοια δουλειά εξίσου αποτελεσματικά και περιμένουν να τα ανακαλύψεις.
-
Χρησιμοποίησε τα κατάλληλα Fonts. Υπάρχουν τεχνικές που μπορούν να χρησιμοποιηθούν για την ελαχιστοποίηση του μεγέθους των γραμματοσειρών σε ιστοτόπους, που συχνά τους επιβαρύνει παραπάνω απ’ όσο θα ‘πρεπε. Για παράδειγμα, σύγχρονες μορφές αρχείων γραμματοσειρών, όπως το WOFF και το WOFF2, οι οποίες χρησιμοποιούν υψηλότερες μεθόδους συμπίεσης σε σύγκριση με τις μορφές αρχείων TTF, OFT και SVG, μπορούν να οδηγήσουν σε μειώσεις μεγέθους αρχείου έως και 97%. Επίσης, μπορείς να χρησιμοποιείς και υποσύνολο της γραμματοσειράς που επιθυμείς, ώστε να περιλαμβάνει μόνο τους χαρακτήρες που απαιτούνται στον ιστότοπο. Αν πάλι δεν έχεις κάποια ιδιαίτερη προτίμηση σε γραμματοσειρά, τότε μπορείς να χρησιμοποιήσεις κάποια κλασική «συστημική» τύπου Arial ή Times New Roman. Μπορεί να μην είναι οι πιο όμορφες, αλλά έχουν το πλεονέκτημα ότι μπορούν να χρησιμοποιηθούν χωρίς να φορτωθούν καθόλου αρχεία γραμματοσειράς, καθώς βρίσκονται ήδη στις συσκευές των χρηστών.
-
Χρησιμοποίησε την τελευταία έκδοση. Σε τί; Στα πάντα! Ξεκινώντας από την ίδια την τεχνολογία στην οποία βασίζεται ο ιστότοπος. Αν, ας πούμε, χρησιμοποιείς κάποιο γνωστό CMS, τότε χρησιμοποίησε τη νεότερη έκδοση PHP. Οι νεότερες εκδόσεις της PHP όχι μόνο είναι πιο γρήγορες αλλά χρησιμοποιούν και λιγότερους υπολογιστικούς πόρους και συνεπώς λιγότερη ενέργεια. Εκτός αυτού, χρησιμοποιώντας τη νεότερη έκδοση γίνεται πιο εύκολη και η συντήρηση του ιστοτόπου στον άξονα του χρόνου. Από ‘κει και πέρα, κατά κανόνα το ίδιο ισχύει και για τις υπόλοιπες τεχνολογικές υποδομές (πέραν της PHP) αλλά και για τα ίδια τα CMS που, καθώς εξελίσσονται, (πρέπει να) γίνονται πιο γρήγορα και πιο αποδοτικά.
-
Φτιάξτο πιο σκοτεινό. Έχεις προλάβει τις τεράστιες οθόνες CRT της δεκαετίας του ‘80 και του ‘90; Οι σκοτεινές ιστοσελίδες ήταν μία από τις πρώτες τεχνικές εξοικονόμησης ενέργειας σε ιστότοπους πριν από πολλά χρόνια, καθώς οι οθόνες αυτές φώτιζαν μόνο τα pixels που είχαν χρώμα. Έπειτα, όμως, εμφανίστηκαν οι οθόνες LCD οι οποίες, σε αντίθεση με τις οθόνες CRT, είχαν μόνιμο οπίσθιο φωτισμό, χρησιμοποιώντας την ίδια ενέργεια ανεξάρτητα από το χρώμα που ήταν πραγματικά ορατό στην οθόνη. Ωστόσο, με την έλευση των οθονών OLED που φωτίζουν κάθε pixel ξεχωριστά, η χρήση πιο σκούρων χρωμάτων καθίσταται και πάλι μια βιώσιμη τεχνική για τη μείωση της ενέργειας στις συσκευές του τελικού χρήστη. Ακόμα και αν δεν σου αρέσει ιδιαίτερα η ιδέα ενός σκουρόχρωμου ιστοτόπου, πάντως, θα μπορούσες να δώσεις την επιλογή στους χρήστες, φτιάχνοντας και μια σκούρα εκδοχή του template του ιστοτόπου και βάζοντας ένα κουμπάκι στον ιστότοπο που θα μπορεί να ενεργοποιεί το σκουρόχρωμο template.
-
Σχεδίασέ το σωστά! Ένα από τα πλέον βασικά στοιχεία του ιστοτόπου είναι ένας σχεδιασμός που να διασφαλίζει την καλή εμπειρία του χρήστη (User Experience ή UX) μειώνοντας τις τριβές στις μετακινήσεις του. Θέλουμε οι άνθρωποι να μπορούν να βρίσκουν τα πράγματα που θέλουν και να εκτελούν τις ενέργειες που πρέπει να κάνουν με τον βέλτιστο δυνατό τρόπο. Ένας σωστός σχεδιασμός κάνει τη χρήση του ιστοτόπου πιο εύκολη και πιο ευχάριστη για όλους και για άλλη μια φορά μειώνει την ποσότητα ενέργειας που σπαταλάται περιδιαβαίνοντας σε σελίδες που δεν εξυπηρετούν τον σωστό σκοπό ή κοιτάζοντας σελίδες προσπαθώντας να καταλάβουν τι πρέπει να κάνουν στη συνέχεια.
3. Μετά την υλοποίηση
Έχοντας ολοκληρώσει τις πιο «βαριές» εργασίες που αφορούσαν την υλοποίηση, ξεκινά συνήθως η φάση της βελτιστοποίησης ενός ιστοτόπου προκειμένου να γίνει πιο γρήγορος, πιο ασφαλής και πιο λειτουργικός. Εδώ λοιπόν περιλαμβάνεται μια σειρά κρίσιμων ενεργειών που έχει σαφή αντίκτυπο και στην ενεργειακή αποδοτικότητα του ιστοτόπου. Ακολουθούν οι πιο χαρακτηριστικές εξ’ αυτών:
-
Κάνε σωστό SEO. Το Search Engine Optimization (SEO) μπορεί εκ πρώτης όψεως να φαίνεται άσχετο με την ενεργειακή αποδοτικότητα ενός ιστότοπου, αλλά αν το καλοσκεφτείς, στην πράξη οι στόχοι του SEO είναι απόλυτα ευθυγραμμισμένοι με τον στόχο της μείωσης της κατανάλωσης ενέργειας. Όταν βελτιστοποιούμε έναν ιστότοπο για τη βελτίωση της κατάταξης στις μηχανές αναζήτησης, επί της ουσίας βοηθάμε τους ανθρώπους να βρίσκουν τις πληροφορίες που θέλουν πιο γρήγορα και πιο εύκολα. Όταν το SEO είναι επιτυχές, έχει ως αποτέλεσμα οι άνθρωποι να ξοδεύουν λιγότερο χρόνο στο διαδίκτυο αναζητώντας πληροφορίες και να επισκέπτονται λιγότερες σελίδες που δεν ανταποκρίνονται στις ανάγκες τους. Αυτό σημαίνει ότι καταναλώνεται λιγότερη ενέργεια και η ενέργεια που καταναλώνεται χρησιμοποιείται για να προσφέρει πραγματική αξία στον χρήστη.
-
Χρησιμοποίησε Caching! Ένα από τα πιο σημαντικά στοιχεία που παίζουν καθοριστικό ρόλο και στην τελική ταχύτητα ενός ιστοτόπου είναι το Caching των περιεχομένων του. Ιδιαίτερα για ιστότοπους που λειτουργούν με κάποια Βάση Δεδομένων όπως τα γνωστότερα CMS (WordPress, Joomla, Drupal κ.λπ.), οι σελίδες δημιουργούνται δυναμικά κάθε φορά που κάποιος επισκέπτεται μια σελίδα του ιστοτόπου. Αυτό μπορεί να είναι πολύ αναποτελεσματικό στο βαθμό που απαιτεί επεξεργαστική ισχύ από τον server για κάθε προβολή σελίδας, αυξάνοντας την κατανάλωση ενέργειας. Οι τεχνολογίες προσωρινής αποθήκευσης (cache) δημιουργούν εκ των προτέρων στατικές εκδόσεις κάθε σελίδας, έτσι ώστε η επιβάρυνση του server να μπορεί να μειωθεί σημαντικά για τους περισσότερους επισκέπτες. Αυτό μειώνει σημαντικά την κατανάλωση ενέργειας του server και φυσικά η διαφορά στους χρόνους φόρτωσης της σελίδας είναι μεγάλη. Συμπληρωματικά μπορείς να εξερευνήσεις και τεχνολογίες όπως το AMP (Accelerated Mobile Pages) που διευκολύνει τη φόρτωση περιεχομένου σε κινητές συσκευές, αφαιρώντας περιττό κώδικα και μειώνοντας το μέγεθος των τελικών αρχείων, ή το PWA (Progressive Web App) που προσφέρει τη δυνατότητα αποθήκευσης αρχείων στη συσκευή των χρηστών, που σημαίνει ότι το περιεχόμενο και τα στοιχεία δεν χρειάζεται να επαναφορτωθούν σε επαναλαμβανόμενες επισκέψεις. Βέβαια, αν ένας ιστότοπος έχει υλοποιηθεί σωστά και αξιοποιεί με κατάλληλο τρόπο τη δυνατότητα Caching, τότε πιθανότατα δεν έχει ανάγκη από τέτοιες τεχνολογίες, καθώς έχει ήδη το επιθυμητό αποτέλεσμα χωρίς τη χρήση τους.
-
Χρησιμοποίησε ένα CDN. Αναφέρθηκε νωρίτερα πως είναι πολύ σημαντικό ο ιστότοπος να φιλοξενείται σε κάποιον server που βρίσκεται πιο κοντά στους χρήστες. Ωστόσο, αν κάτι τέτοιο δεν είναι εφικτό π.χ. λόγω κόστους ή απαιτήσεων, ή αν ο ιστότοπος απευθύνεται σε χρήστες απ’ όλο τον κόσμο, τότε η χρήση ενός Content delivery network (CDN) είναι μια εξαιρετική λύση, αποθηκεύοντας και στη συνέχεια σερβίροντας αρχεία του ιστοτόπου όπως εικόνες από ένα δίκτυο data centers σε όλο τον κόσμο. Αυτό σημαίνει ότι στις περισσότερες περιπτώσεις, τα μεγαλύτερα αρχεία θα φορτώνονται από μια τοποθεσία που βρίσκεται πιο κοντά στην περιοχή του χρήστη, μειώνοντας την απόσταση που μετακινούνται τα δεδομένα κάθε φορά που φορτώνεται μια σελίδα. Για άλλη μια φορά, αυτό βελτιώνει την ενεργειακή απόδοση και βελτιώνει τους χρόνους φόρτωσης της σελίδας.
-
Σέρβιρε τον ιστότοπο στατικά. Πολλές φορές μπορεί να χρειαστεί να φτιάξεις έναν ιστότοπο ο οποίος δεν θα έχει ανάγκη συχνών αλλαγών, όπως για παράδειγμα ένα απλό εταιρικό προφίλ. Άλλες φορές μπορεί αυτός ο ιστότοπος μετά από ένα διάστημα να εκπληρώσει το σκοπό του (π.χ. ένας ιστότοπος για μια εκδήλωση) ή ακόμα και να εγκαταληφθεί. Σε όλες αυτές τις περιπτώσεις, δεν έχει κανένα απολύτως νόημα να συνεχίζει να λειτουργεί μια Βάση Δεδομένων που να σερβίρει δυναμικά το περιεχόμενο ενός ιστοτόπου (συνήθως βασισμένου σε κάποιο CMS), αφού δεν πρόκειται να γίνει κάποια αλλαγή σε αυτόν. Είναι ενεργοβόρο και δεν εξυπηρετεί κανέναν σκοπό πλέον. Σε αυτή την περίπτωση, λοιπόν, μπορείς να μετατρέψεις τον ιστότοπο σε στατικά αρχεία HTML, CSS και JS, τα οποία φορτώνουν πολύ πιο γρήγορα γιατί δεν χρειάζεται να καλέσουν καμία βάση για να ζητήσουν το περιεχόμενο, το έχουν ήδη ενσωματωμένο εξ’ αρχής. Με αυτόν τον τρόπο όχι απλώς θα γίνει ταχύτερος ο ιστότοπος, αλλά θα είναι και πιο εύκολα διαχειρίσιμος σε περίπτωση που θέλεις π.χ. να τον μεταφέρεις σε κάποιο πιο οικονομικό web hosting πακέτο (εφόσον δεν απαιτεί πλέον την ύπαρξη μιας Βάσης Δεδομένων ή άλλων πόρων που τυχόν χρειαζόταν μέχρι πρότινος).
4. Κατά τη λειτουργία
Μερικά από τα πλέον σημαντικά βήματα για την ενεργειακή αποδοτικότητα ενός ιστοτόπου έμειναν για το τέλος, για να σου μείνουν στο μυαλό. Αφορούν μεν την καθημερινή λειτουργία του ιστοτόπου αλλά, όπως θα διαπιστώσεις, ουσιαστικά πρέπει να λαμβάνονται σοβαρά υπόψιν σε κάθε στάδιο της υλοποίησής του.
-
Συμπίεσε τις εικόνες! Στους περισσότερους ιστότοπους, οι εικόνες είναι μακράν τα πιο βαριά στοιχεία σε όρους μεγέθους αρχείων. Όσο περισσότερες εικόνες χρησιμοποιείς και όσο μεγαλύτερα είναι αυτά τα αρχεία εικόνων, τόσο περισσότερα δεδομένα πρέπει να μεταφερθούν και τόσο περισσότερη ενέργεια καταναλώνεται. Ανεξάρτητα από την εφαρμογή τεχνικών για τη συμπίεση των εικόνων που θα δούμε στη συνέχεια, είτε είσαι developer, είτε designer, είτε content writer, χρειάζεται να σκέφτεσαι πολύ προσεκτικά τη χρήση εικόνων από την πλευρά σου. Προσθέτει πραγματικά αξία στον χρήστη η εικόνα που θέλεις να χρησιμοποιήσεις; Κοινοποιεί χρήσιμες πληροφορίες (που θα ήταν ίσως πιο σκόπιμο να κοινοποιηθούν μέσω κειμένου για καλύτερο SEO) ή είναι αμιγώς διακοσμητική; Θα μπορούσε να επιτευχθεί το ίδιο αντίκτυπο εάν η εικόνα ήταν μικρότερη; Θα μπορούσες να πετύχεις το ίδιο αποτέλεσμα με ένα διανυσματικό γραφικό (π.χ. SVG) ή ακόμα και με κάποιο στυλ CSS αντί για φωτογραφία; Κάνοντας στον εαυτό σου ερωτήσεις όπως αυτές, μπορεί να αναθεωρήσεις για τη σκοπιμότητα χρήσης ορισμένων εικόνων και να μειώσεις τη χρήση τους, χωρίς φυσικά να διακυβεύεται η εμπειρία του χρήστη. Αυτό με τη σειρά του θα συμβάλλει στη μείωση της κατανάλωσης ενέργειας. Το ίδιο φυσικά ισχύει και για τα βίντεο, τα οποία βαραίνουν πολύ περισσότερο μια σελίδα και δημιουργούν πολύ μεγαλύτερο φορτίο στη CPU των χρηστών, με αποτέλεσμα πολύ μεγαλύτερη κατανάλωση ενέργειας.
Πώς μπορείς να κάνεις αποδοτικότερη τη χρήση εικόνων;
- Ανέβασε τις εικόνες στις διαστάσεις που θες αντί να βασίζεσαι σε CSS ή Javascript για να προσαρμόσει αυτόματα το μέγεθός τους. Έτσι, αποφεύγεται η φόρτωση εικόνων που είναι μεγαλύτερες από την κλίμακα στην οποία θα εμφανίζονται.
- Χρησιμοποίησε ένα εργαλείο όπως το TinyJPG ή το ShortPixel για να συμπιέσεις αρχεία εικόνας χωρίς ορατή απώλεια ποιότητας. Από τότε που ανακάλυψα το TinyJPG και είδα την τεράστια διαφορά που κατά κανόνα προκύπτει στο μέγεθος του αρχείου, πλέον δεν ανεβάζω ποτέ φωτογραφία χωρίς να την έχω περάσει πρώτα από ‘κει. Αυτό μακροπρόθεσμα με έχει σώσει και σε άλλα επίπεδα, καθώς αν ανέβαζα τις εικόνες στο αρχικό τους μέγεθος, πλέον θα κατανάλωνα τουλάχιστον τον πενταπλάσιο χώρο σε web hosting απ’ όσο χρειάζομαι τώρα. Άρα, η εξοικονόμηση είναι πολλαπλή.
- Χρησιμοποίησε την πιο αποτελεσματική μορφή αρχείου για κάθε εικόνα, όπως WebP αντί για JPG για εικόνες περιεχομένου ή SVG αντί για PNG σε εικονίδια που αποτελούν οργανικά στοιχεία του ιστοτόπου. Εκτός από εξοικονόμηση πόρων, κάνει καλό και στο SEO! Επίσης, υπάρχουν για τα δημοφιλέστερα CMS υπάρχουν πρόσθετα που μπορούν να μετατρέπουν αυτόματα τις JPG εικόνες που ανεβάζετε σε WEBP.
Με όλους αυτούς τους τρόπους μπορεί να επιτευχθεί σημαντική μείωση στα μεγέθη των αρχείων εικόνας, μειώνοντας την κατανάλωση ενέργειας και βελτιώνοντας τους χρόνους φόρτωσης, χωρίς αντιληπτά μειονεκτήματα για τους επισκέπτες του ιστότοπου. -
Δώσε σημασία στο περιεχόμενο! Όπως προαναφέρθηκε τόσο για το SEO όσο και για το UX, η σύνταξη κειμένων έχει μεγάλο αντίκτυπο στην αποδοτικότητα του ιστότοπου, επειδή επηρεάζει τον χρόνο που αφιερώνουν οι άνθρωποι σε αυτόν και την εμπειρία που αποκομίζουν από αυτόν. Μερικές φορές θέλουμε οι άνθρωποι να περνούν πολύ χρόνο σε έναν ιστότοπο, μαγνητίζοντας το ενδιαφέρον τους στο περιεχόμενό μας. Αυτό που δεν θέλουμε όμως είναι οι άνθρωποι να σπαταλούν τον χρόνο τους με περιεχόμενο που τους προσφέρει ελάχιστη ή καθόλου αξία. Σίγουρα θα σου έχει τύχει αρκετές φορές κάτι τέτοιο ώστε να μη θέλεις (εύχομαι κι ελπίζω) να το διαιωνίσεις ως πρακτική. Συνεπώς, το σαφές και αποτελεσματικό content writing μπορεί να συμβάλει στη μείωση του χαμένου χρόνου στο διαδίκτυο και κατ’ επέκταση στη μείωση της σπατάλης ενέργειας.
Αν είχες την υπομονή να διαβάσεις όλα τα παραπάνω, σίγουρα θα έχεις καταλάβει ότι οι περισσότερες περιπτώσεις όπου σπαταλάται ενέργεια χωρίς λόγο οφείλονται επί της ουσίας σε τεχνικές παραλείψεις. Δηλαδή, ένας προσεκτικά σχεδιασμένος ιστότοπος, θα μπορούσε ήδη από κατασκευής του να είναι και πιο αποδοτικός ενεργειακά. Και το καλύτερο από όλα είναι ότι σχεδόν κάθε ενέργεια που μπορούμε να κάνουμε για να βοηθήσουμε τους ιστότοπους να είναι πιο ενεργειακά αποδοτικοί θα τους κάνουν καλύτερους και με άλλους τρόπους, είτε αυτό είναι καλύτερο SEO, είτε μεγαλύτερη ταχύτητα ή καλύτερη εμπειρία χρήστη.
Έτσι, στοχεύοντας στο να μειώσουμε τις εκπομπές άνθρακα του διαδικτύου, η μείωση της σπατάλης ενέργειας προσέχοντας όλα εκείνα τα στοιχεία που προαναφέρθηκαν, είναι ένα εξαιρετικό σημείο εκκίνησης. Φυσικά, η κατανάλωση ενέργειας ενός ιστοτόπου μπορεί να είναι δύσκολο ή και αδύνατο να μετρηθεί με ακρίβεια (αν και εργαλεία όπως το Website Carbon με το οποίο πειραματίζομαι τον τελευταίο χρόνο, σίγουρα μπορούν να βοηθήσουν), αλλά υπάρχουν ούτως ή άλλως πολλά πράγματα που μπορούμε να κάνουμε για να εξαλείψουμε τη σπατάλη και να βελτιώσουμε την απόδοση. Οι περισσότερες από αυτές τις ενέργειες δεν είναι βασικά δύσκολες, απλώς απαιτούν προσοχή στη λεπτομέρεια και προσεκτική σκέψη σε κάθε πτυχή του σχεδιασμού, της δημιουργίας περιεχομένου, της ανάπτυξης και της φιλοξενίας ενός ιστοτόπου. Σίγουρα πάντως αξίζει τον κόπο, αφού όπως κατέστη σαφές, ένας πιο αποδοτικός ιστότοπος ενεργειακά είναι και ένας καλύτερος ιστότοπος συνολικά.
Αξίζει επίσης να σημειωθεί ότι η βιώσιμη (ή αειφόρα) ανάπτυξη του διαδικτύου δεν αποτελεί καθόλου νέα τάση. Βασικά δεν αποτελεί καν τάση, αντιθέτως φαίνεται να απασχολεί ολοένα και περισσότερο τον κλάδο της πληροφορικής. Χαρακτηριστικό αυτού του αυξανόμενου ενδιαφέροντος είναι και η δημιουργία σχετικών κατευθυντήριων γραμμών από τον W3C, των Web Sustainability Guidelines (WSG), προς το παρόν σε επίπεδο Draft. Αυτές οι οδηγίες στοχεύουν στην ελαχιστοποίηση του περιβαλλοντικού αποτυπώματος μέσω ενός μείγματος σχεδιασμού με επίκεντρο τον χρήστη, αποτελεσματικής ανάπτυξης ιστοτόπων, υποδομών ανανεώσιμων πηγών ενέργειας, βιώσιμης επιχειρηματικής στρατηγικής και διαφόρων συνδυασμών όλων αυτών, με τρόπο σαφή και μετρήσιμο.
Καταλήγοντας, όλοι μοιραζόμαστε και χρησιμοποιούμε το διαδίκτυο, όπως όλοι μοιραζόμαστε και ζούμε σε αυτόν τον πλανήτη. Ωστόσο, ο πλανήτης βιώνει μια άνευ προηγουμένου κλιματική αλλαγή και το διαδίκτυο είναι μέρος του προβλήματος - αλλά και της λύσης. Από τους ιστότοπους έως τα κρυπτονομίσματα κι από την τεχνητή νοημοσύνη έως το διαδίκτυο των πραγμάτων, το internet καταναλώνει μεγάλες ποσότητες ηλεκτρικής ενέργειας σε data centers, δίκτυα τηλεπικοινωνιών και συσκευές χρηστών. Εάν ενστερνιστούμε τη βιώσιμη ανάπτυξη στη δουλειά μας, μπορούμε να δημιουργήσουμε ένα διαδίκτυο που είναι καλό για τους ανθρώπους και τον πλανήτη. Η τελευταία παράγραφος δεν είναι δική μου, είναι η εισαγωγή στο Μανιφέστο του Βιώσιμου Διαδικτύου (Sustainable Web Manifesto) το οποίο διακηρύττει κάποιες απλές, βασικές και ταυτόχρονα πολύ σημαντικές αρχές για να το καταφέρουμε. Ακολουθεί η μετάφραση αυτών των αρχών για το διαδίκτυο που θέλουμε, εν είδει επιλόγου:
-
Καθαρό. Οι υπηρεσίες που παρέχουμε και οι υπηρεσίες που χρησιμοποιούμε θα τροφοδοτούνται από ανανεώσιμες πηγές ενέργειας.
-
Αποδοτικό. Τα προϊόντα και οι υπηρεσίες που παρέχουμε θα χρησιμοποιούν τη μικρότερη δυνατή ποσότητα ενέργειας και υλικών πόρων.
-
Ανοικτό. Τα προϊόντα και οι υπηρεσίες που παρέχουμε θα είναι προσβάσιμα, θα επιτρέπουν την ανοιχτή ανταλλαγή πληροφοριών και θα επιτρέπουν στους χρήστες να ελέγχουν τα δεδομένα τους.
-
Τίμιο. Τα προϊόντα και οι υπηρεσίες που παρέχουμε δεν θα παραπλανούν ή θα εκμεταλλεύονται τους χρήστες στο σχεδιασμό ή το περιεχόμενό τους.
-
Ανα-παραγωγικό. Τα προϊόντα και οι υπηρεσίες που παρέχουμε θα στηρίξουν μια οικονομία που τρέφει ανθρώπους και πλανήτη.
-
Ανθεκτικό. Τα προϊόντα και οι υπηρεσίες που παρέχουμε θα λειτουργούν σε στιγμές και μέρη όπου οι άνθρωποι τα χρειάζονται περισσότερο.