 Καλησπέρα σε όλους. Αν δεν ακούτε να κάτω πιο κάτω, μπείτε εσείς, γιατί δεν, λοιπόν, καταρχάζει να σας καλωσορίσω κι εγώ με τη σειρά μου, σε ένα φανταστικό event, πολύ καλύτερο αποπέριση, που επιτέλους προάγει το WordPress, το οποίο ξεκίνησε σαν πολύ παρεξικημένο σημείς, αλλά πλέον έχει κατακλήσει και την αγορά και τις καρδίες μας είναι αλήθεια. Ονομάζομαι αρχιμή της Μερτζάρνος, είμαι Lead Engineer, WordPress Developer στην Ιουσία στην Hellenic Technologies, και η ομιλία μου έχει να κάνει με ένα θέμα, το οποίο πραγματικά έχει σίγουρα, όσοι αποδεύσετε freelancers είτε εργάιστες, αν μη στωτήσει κάποιες εταιρίες, σας έχετε δημιουτοποιήσει σίγουρα, έχει να κάνει με την ταχύτα φόρτωσης. Την από λίγο καιρό ήμουν σε μια έκθεση, σαν εκθέτης, και ερχότσαν πολλοί άνθρωποι και με ρωτάγανε γιατί να το κάνω αυτό, αφού είναι αργό και λοιπόν, στην πραγματικότητα εγώ σήμερα θα μιλήσω πιο πολύ για κάποιες τεχνικές, παρά, δεν θα μιλήσω για σερβερικά θέματα, τόσο για το ίδιο το WordPress Team, γιατί αυτό μας σε διαφέρει, διότι οι κατάψέματα, πάρα πολλοί άνθρωποι αγοράζουνε έτοιμα WordPress Team, εκείνε το μεγάλο πρόνομα που συνήθως έχουν ένα εκατομμύριο διαφορετικά features, δεν τα χρησιμοποιούν, δεν ακούνε και τους developers τα οποίοι τους λένε μην πάρεις αυτό, πάρε κάποιο άλλο, και τελικά καταλήγουν, είτε το site σου είναι πάρα πολύ αργό, είτε να υπάρχουν πάρα πολύ μεγάλα προβλήματα στην όλη κατάσταση και στην εμπειρία χρήστη και κακά τα ψέματα, σκοπός μας δεν να πιάσουμε σε ένα PageSpeed, ένα 100%, να κάνει να γίνεται, αλλά εντάξει, είναι ανάλογα την σου σελίδα. Σκοπός μας είναι να παρέχουμε στο χρήστημα στην εμπειρία, γιατί όπως προλόγησε η Ευελίνα, το πρόβλημα είναι ότι δεν θέλω να μπει ένα site, διδικά αν είναι ένα iShop και απλά να κοιτάει τα vani μέχρι να φορτήσει, να φορτώσει η σελίδα. Οπότε λοιπόν ξεκινάμε, θα δούμε διάφορα πράγματα, θα μιλήσουμε λίγο για image compression, κάποιες τεχνικές που μπορούμε να τις εφαρμόσουμε και ξεχωριστά, και κάποιες τεχνικές που μπορούν απλά να χρησιμοποιούντας κάποιο plugin και κάποιο optimization με τη μεριά μας, γιατί μάγικες list δεν υπάρχουν, να πραγματικά, να πετύχουμε πάρα πολύ καλά αποτελέσματα. Θα μιλήσουμε για minification του CSS, το combination του CSS και του GIS, δηλαδή των διαφόρων στατικών assets, όπως λέμε, τα οποία μπορούμε και να τα κάνουμε μήνυφα, να τα συμπτύξουμε αλλά και να τα συνδυάσουμε μεταξύ τους, ώστε σε κάθε request που έχουμε όταν πληκτρολογούμε μια ισοσελίδα απλά, να έρχονται και πιο γρήγορα και πιο μαζεμένα και να φορτώνει και πιο γρήγορα το site, θα μιλήσουμε για τη δυνατότητα που μας δίνει και τα διάφορα caching plugins, αλλά και δυνατότητα που υπάρχει τα διάφορα javascript αρχία, που όσοι ξέρετε από αυτά υπάρχει μεγάλο πρόβλημα, ειδικά όταν κάνουμε, αφαρόζουμε τεχνικές, να τα φορτώνουμε και στο κάτω μέρος του site και να μην μας εμποδίζουν στη φόρτοση της ελίδας γενικότερα, θα μιλήσουμε για το critical CSS που είναι ένα θέμα πάρα πολύ περίεργο πιο πολύ, γιατί ανάλογα την ισοσελίδα διαφέρει, και θα μιλήσουμε για λίγο cdn και για το prefetching prerender, το οποίο είναι πιο πολύ στο τέλος κάποιες πολύ extra πληροφορίες, που μπορεί να με χρησιμοποιηθούν. Χρησιμοποιούνται by default από τους διάφορους μπρόσεις ήδη. Λοιπόν, πριν ξεκινήσουμε, υπάρχει μια απορία πάντα και με ρωτάνε του πλαγίν, ο νότος του πλαγίν, στην πραγματικότητα, εννοείται ότι το WordPress σε κά... βασίζει πάρα πολύ τις λειτουργίες τους απλάγγινς. Αυτή είναι η αλήθεια, από εκεί και πέρα, εννοείται ότι μπορεί να χρησιμοποιήσουμε πλαγγιν. Η εμπειρία μου σαν developer τα τελευταία χρόνια, είτε σαν freelancer, είτε σαν developer στη Hellenic Technologies, είναι ότι από μόνο τους απλάγγινς, αν δεν είναι το theme καλό, και όταν λέω καλογραμμένοι, υπάρχουν κάποια πράγματα, μπορούμε να πούμε, δεν υπάρχει περίπτωση να λειτουργήσουν κάτι θα σπάσει, κάτι θα χαλάσει, και ήταν αυτό που είχα και εμπειρία παλιότερα από διάφορους πελάτες στο freelancer, που μπορεί να με παίρναν τηλέφωνο και να μου λέγανε, έβαλε αυτό το πλαγίν, έσπασε, δεν μου παίζει καθόλου κάποια javascript, κάποια είχα, δεν μου φορτώει το twitter και διάφορα τέτοια, και άντε τώρα να εξηγείς πραγματικά, τι μπορεί να συνέβη. Πώς με δράμε τα αποτελέσματα της ταχύτητας. Λοιπόν, όσον αφορά την ταχύτητα φόρτωσης, υπάρχουν διάφορα εργαλεία. Εγώ προσωπικά προτιμώ το gtmetrics, είναι εργαλείο το οποίο σου δίνει τη δυνατότητα να μετρήσει την ταχύτητα φόρτωσης, μάλιστα χρησιμοποιεί μια τεχνική που δεν μετράει απλά τον load time, όπως λέμε, δηλαδή με το που φορτώσουνε τα πάντα αυτό, μετράει το συγκεκριμένο χρονικό σημείο και στο stenny, αλλά αφού σταματήσει την πλήρη φόρτωση, περιμένει και αλλά δύο δευτερόλεπτα, και στη συνέχεια σου δίνει ένα αποτέλεσμα. Αυτό που θέλω να πω εδώ, είτε χρησιμοποιήσει κάποιος το gtmetrics, όπου δίνει αναλυτικά τα στοιχεία, αναλυτικά τα urls, αναλυτικά τα assets φορτώνει σελίδα μας, είτε χρησιμοποιήσει άλλα στοιχεία, όπως το pagepead που είναι πολύ γνωστό και που λιέται και σαν υπηρεσία, λέει, ας πούμε θα σου φτιάξω σαν να έχει 90% το pagepead, είτε το web page.org που είναι εκπληκτικό εργαλείο και αυτό. Στην πραγματικότητα, εκτός ότι μετράνε διαφορετικά, με διαφορετικούς τρόπους, σκοπός μας ξαναλέω, δεν είναι να χτυπήσουμε το εκατοστάρι, μακάρι να γίνει αυτό, είναι να παρέχουμε την εμπειρία χρήστια μη για το site μας, διότι αν έχουμε δικά ένα ισόπεκοί, ναι, δηλαδή βασίζουμε και την οικονομική μας δυνατότητα στο site, τότε θα είναι μεγάλο πρόβλημα αυτό. Ξεκινάμε, λοιπόν. Θα αναφέρω ένα δύο προβλήματα ταχύτητας και ενώ αφθαίνεται αστείο, ένα τραγείο σημαντικά προβλήματα, είναι πολύ μεγάλες εικόνες. Πριν είναι δύο χρόνια, έλαβα ένα τηλεφόνιμα από κάποιο πελάτι, τέλος πάντων, που γύρισε και μου είπε ότι αρέσει η αρχήμη δεν φορτώνει το site, αλλά υπάρχει πάρα πολύ. Είχα καιρό να σχοληθώ μαζί του, είχαμε τελειώσει την εργασία μας, μπήκα λοιπόν και παρατήρησα ότι είχε βάλει ένα header image, το οποίο ήταν 8MB. Να είναι λογικό να γελάτε. Και εγώ γελασα, βέβαια, τι να του πεις εκείνη την ώρα και μάλιστα μου ανέφερε και έναν ανταγωνιστή, ο οποίος είδα το site του και άνθρωποι είχε κάνει τεχνικές, είχε φαρμώσει πράγματα τουλάσου, του είπα λοιπόν το ανθρώπου αυτό, ότι έχεις τεράστη εικόνα και μετά μου μίλησε για ένα θέμα και μου είπα ναι, αλλά δεν έχαει definition, θέλω να έχαει definition. Υπάρχει το εξής θέμα. Υπάρχουν δύο θεωρίες, οι οποίες μπορεί κάποιος να επιρετήσει και να σκεφτεί και να ακολουθήσει. Η μία θεωρία είναι ότι, που θα δούμε και μετά, ότι πρέπει να κάνω κομπρέστα ήμαζες. Συμφωνώ, υπάρχουν κάποια εργαλία, ή τεχειροκίνητα. Πριν προχωρήσω, ένα άλλο πρόβλημα που υπάρχει και είχε και ο ίδιος αυτό, στις αυτούς έχει καρουζέλ πολλά. Τζάβα σκληρμάλσα καρουζέλ και φορτώνανε τις εικόνες μέσα από το τζάβα σκληρμάλσα, καταλαβαίνετε ότι τα φόρτοσης αργούσε πολύ περισσότερο από τι θα μπορούσε να είμαι. Είχες με 15 εικόνες και επίσης, πολλοί άνθρωποι, δεν λαμβάνουν υπόψη το site, πρέπει να προβληθεί και σε κινητό. Φυσικά να μπειρίσουμε τεχνονογίες A&P και αυτά είναι λίγο κοινέζικα για αυτούς ανθρώπους. Πρέπει να λαμβάνουμε, όταν πλέον τα κινητά έχουν αναρτυχθεί τόσο πολύ, η χρήση τους είναι τεράστια και βλέπουμε σε ειστωσελίδες ένα 50% και 61% από κινητό. Πρέπει να τα λάβουμε υπόψη. Λοιπόν, όσο αναφορώ το image compression τι είναι, είναι οι cbs εικόνων. Όταν ακούμε οι cbs εικόνων, στην Ιουσία είναι κάποιες βασικές τεχνικές οι οποίες μετατρεύουν την εικόνα ώστε να καταλαμβάνει λιγότερο χώρο. Αυτή είναι πάρα πολύ βασική τεχνική και ενώ ακούγεται, όπως θέλω να είπα, όχι αστεία, είναι πολύ βασικό και μπορεί πραγματικά να αλλάξει το page της ελίδας πάρα πολύ. Είναι πολύ βασικό στοιχείο. Το compression αυτό γίνεται με διάφορους αργορίθμους και υπάρχουν κάποια plugins για παράδειγμα το tinypng πολύ πολύ καλή υπηρεσία που ανεβάζει φωτογραφίες και στη stelny comprest χωρίς να χάνουν την ποιότητα θα μιλήσω για αυτό σε μισό λεπτό υπάρχουν το compre.jpeg και υπάρχουν κάποια plugins όπως το imageify και το adaptive images το δεύτερο δε χρησιμοποιεί το δεύτερο δε χρησιμοποιεί κάποιες εικόνες οι οποίες όχι μόνο τις φτιάχνει στα μεγέθη των διαφόρων, γιατί όπως χέρετε οι εικόνες στα μεγέθη των post, ανάλογα τα image sizes που έχετε δώσει τις φτιάχνει και ανάλογα τις οθόνες στα κινητά με κάποια breakpoints που έχει 1024, 768 και λοιπόν και τι γίνουν τώρα και οι cbs οδηγικώνες χωρίς να χάνουν ποιότητα βέβαια υπάρχουν και πιθανότητες να χάσουν την ποιότητα τους υπάρχουν δύο τεχνικές ειμπίεσεις υπάρχει μια cbs στο όνομα είναι η loseless και η lossy συνήθως συνδυάζονται όσον αφορά τη lossy είναι αυτή η οποία αφαιρεί κάποια δεδομένα από την εικόνα όπως χρώματα βασίσει σε κάποιες αλγορύθμους οπτικούς και μπορεί την εικόνα μας τροματικά να αντιχαλάσει πάρα πολύ και όντως να γίνει χάλια η loseless κάνει το ανάποδο κάνει μία σιμπίεσ με κάποια ασήμα αφαιρεί κάποια exchange data όπως λέμε και δεν χάνει καιρδίζει σε χώρο αλλά δεν κάνει πολύ μεγάλη διαφορά στην εικόνα κάποια έτσι ένα συνδυασμό από όλα αυτά αυτό λοιπόν εδώ είναι θα σας πω πιο μετά ήταν ένα site πολύ απλώς ad-est χωρίς τίποτα η διαφορά μου στο gt-metrics από 83% πήγε 84% στο page of performance μόνο από αυτή την αλλαγή δηλαδή χωρίς να κάνω τίποτα άλλο χωρίς καν να ξέρω από γορπρές μόνο βάζοντας τις εικόνες αυτές έγινε μία τεράστια αλλαγή και σαν χρήστης τι γίνεται τώρα πολύ θα να ρωτηθούν καλά δηλαδή χειροκίνητα θα γίνει αυτό θα μπορούσε και μπορεί να γίνει φυσικά γίνεται αλλά το θέμα είναι ότι τα πλαγίνης που προανέφερα είναι πλαγίνης τα οποία σου δίνω τη δυνατότητα ειδικά το imageify να κάνεις bulk optimization βέβαια θέλει λίγο προσοχή γιατί άμα έχει 3 επίπεδες συμπιέσεις και μπορεί σε κάποια φάση ειδιστούν πολύ να είναι ήδη compressed και από εκεί και πέραν υπάρχει ένα πρόβλημα στην εικόνα και το πόσο άσχημα μπορεί να φαίνεται κατά τα άλλα όμως δηλητουγούν πάρα πάρα πολύ καλά λοιπόν ένα τεράστιο επίσης δεύτερο πρόβλημα ταχύτητας που το παρατηρούμε πάρα πολύ στα έτοιμα themes έχει να κάνει με τα static assets όπως είναι τα css όπως είναι τα javascripts οι άνθρωποι που γράφουν τον κόδικα τι καλώς κάνουν και σίγουρα πολύ που γράφτε κόδικα το κάνετε όπως και εγώ όταν γράφουμε κόδικα βάζουμε ήδη μεγάλα για να είναι πιο εύκολα να διαβάζεται πιο εύκολα και να είναι πιο εύκολο και από άλλους developers μπορεί και να το χρησιμοποιήσει το θέμα είναι ότι όταν το στέλνουμε στο browser δεν διαβάζεται από developer διαβάζεται τον browser και αυτά τα κενά αυτή η ποσότα σχολείων και μέσα στα html pages το καλέση έχει ειμπακτόντως το Performance ελίδα μας εμείς λοιπόν εδώ πέρα έχουμε καταφέρει με και με τα πλαγγίνης που αφέρουμε αρκεά άλλα αλλά και με διάφορες λείσεις που θα πω να μπορέσουμε να συμπτήξουμε αυτά τα css και να τα κάνουμε να είναι να είναι μαζεμένα, να είναι λίγο άγκλη, να είναι άσχημα αλλά δεν μας σε διαφέρει γιατι συμπραγματικό, όταν εμείς μπορούμε να χρησιμοποιούμε αυτό το αρχείο και να σερβίρουμε το άλλο το οποίο είναι το λεγό με distribution και το παράγουμε και είναι συνήθως πεπιεσμένοι πολύ συμπιεσμένοι και μπορεί και παραπάνω ανάλογος πόσο μεγάλο είναι το css λοιπόν εδώ πέρα λοιπόν θα μιλήσουμε λίγο για τη διαδικασίας css.js και html minification είναι αυτό που λέει ο τίτλος είναι το να μπορούμε να αφερούμε περιτά στοιχεία από το css.js και html ώστε να σερβίρουμε πολύ πιο γρήγορα και για να είναι πάρα χωρίς και φυσικά να λειτουγούν κανονικά και να μην υπάρχουν σφάλματα βέβαια μπορεί να υπάρχουν σφάλματα και θα αναλύσουμε μετά γιατί μπορεί να υπάρχουν οι τρόποι για να το πετύχουμε εδώ είναι γιατί χειροκίνηται, υπάρχουν κάποιοι css minifirons, online που είναι εκπληκτικοί με χρήση διάφορον πλαγίνς όπως το auto-optima είναι εκπληκτικό πλαγίν στο WordPress αλλά κασάρι όπως λέμε θα δούμε και μετά όλα αυτά τα τοποθετήκες στο footer για να φορτώνουν μετά τον load της ελίδας μας και παράλληλα τα φτιάχνει, κρατάει καζ για πολύ και είναι πάρα πάρα πολύ εύκριστο και το τρίτο είναι πιο developer oriented με χρήση του node server και του grand task manager που στην ουσία έχουμε ένα project και τρέχουμε τοπικά κάποια grand tasks όπου μπορούμε μέσω αυτό να στο project μας θα κάνουμε μετά να μηνυφικήσουν σε όλα τα αρχή και μετά να το ανεβάσουμε Λοιπόν, εδώ ήσως να μην φαίνεται πίσω θα σας πω τι δείχνει Για παράδειγμα, μπορεί θα σας πω κάτι κάνοντας CSS minification υπάρχουν πολλές φορές κάποια errors για παράδειγμα το μεγάλο εμφανίζεται όταν εκτός από το minification κάνουμε και το combine δηλαδή έχω 3 αρχίες CSS τα κολλάω σε ένα Τι γίνεται τώρα, αν μέσα σε κάποιο αρχείο υπάρχει πιθανότητα το path για τα google phones που είναι relative συνήθως να μην μπορεί και το μεταφέρο αλούφισκα το αρχείο ή τη μεταφέρεται να μην μπορεί να δει αυτά τα google phones εκεί πέρε λοιπόν σκά η έρωγη εξαυνικά εκεί που έχουμε κάνει το minify και νιώθουμε περίφανη ότι θα τρέχει σε λίδα μας εξαυνικά βλέπουμε ότι όχι μόνο αργεί, μπορεί να μην αργήσει αν είναι σπασμένη πλήρως τα phones Στο WordPress λοιπόν μας δίνει τη δυνατότητα με κάποιο εξαυνικά όλα αυτά που σας βλέπω και στην παρουσίαση υπάρχουν και στο facebook και υπάρχουν και σε ένα αρχείο που θα υπάρχει στην παρουσίαση σε google drive που θα ανανεώνεται συνεχώς θα το λάβετε μαζί με την παρουσίαση αυτό υπάρχει ένα μία στρόπος να μπορέσουμε να βρούμε όχι μόνο πια αρχία CSS φορτών και με τη σειρά αλλά να δούμε και πια handles χρησιμοποιεί αυτό είναι σημαντικό διότι τα πολύ καλά plugins που κάνουν cashing δίνουν τη δυνατότητα χρησιμοποιώντας κάποιο handle να μπορέσουμε να αφαιρέσουμε γιατί μπορεί κάποιο plugin να μην μπορεί απλά να μπει σε δικασία ούτε του minifiguration ούτε του cashing εντυπω να χρησιμοποιεί κάποια αρχία να χρησιμοποιεί και JavaScript και μιλάω και για JavaScript, αυτό η σχή και να μην μπορεί πια να μπει σε αυτή τη δικασία και εκεί να πρέπει να κάνουμε exclude το url έτσι λοιπόν, στην πραγματικότητα μπορούμε χρησιμοποιώντας όλο αυτό χρησιμοποιώντασα και από πολύ απλωκόδικα να δούμε τι φορτώνει σελίτα μας Πάσαρο και στιγμή τι μπορούμε να αφαιρέσουμε και τι όχι. Επίσης αυτό είναι πολύ σημαντικό όταν έχουμε ένα θυμ αγορασμένο ειδικά, το οποίο έχει ένα κάρο πράγματα και πραγματικά κάποια που δεν χρησιμοποιούνται να βρούμε το χάνδελ, για να το κόψουμε, το κάνουμε the register, στο functions PSP ή όπου αλλού θέλετε συνήθως εκεί πέρα πέζει και να γίνει the register αυτό το αρχείο με σκοπό, να το αφαιρέσουμε και από την διαδικασία, το κατεβάσματος από όταν το ζητάμε από το browser. Όσον αφορά το minification, ένα δεύτερο κομμάτι είναι ότι διάφορα plug-ins, όπως το auto-optimize, όπως το WPRO, και το οποίο είναι εκπληκτικό caching plug-in, χρησιμοποιεί, κάνει mini-fi όλα τα CSS-αρχία και το οποίο είναι ένα δικό του φάκελο και με διάφορα rules που χρησιμοποιεί στο ht-access, καταφέρνει την ώρα που ζητάει ο browser της ελίδα, να φέρει αυτά και όχι τα κανονικά αυτά, δηλαδή έχουμε γράψει εμείς, αλλά αυτά που είναι σε αυτούς φακελούς. Έτσι λοιπόν μέσα βλέπουμε διάφορα αρχίες με περίεργα ονόματα, τα οποία και όλας κάθε φορά που κάνουμε clear-caching, καθαρίζουμε και ξαναφτιάχνουμε το cache σελίδες μας, ανανεώνονται, ξανανανεώνονται, και γιατί μπορεί κάτι να αλλάξουμε, σε ενδιάμεσο δεν μπορεί να βλέπουμε τα ίδια συνέχεια, και κάτω έχω ένα παράδειγμα με Node.js, Είναι το minification που μπορεί να κάνει κάποιος τοπικά στον υπολογιστή του. Γενικότερα, το minification του CSS είναι errorless γενικότερα, δεν έχει λάθη, δεν βγάζει πολλά λάθη, μόνο αυτό το πω με τα Google Fonts. Γενικότερα είναι πολύ safe επιλογή, και υπάρχουν και κάποια αργαλεία, τα οποία όχι μόνο κάνουν minify, αλλά αλλάζουν και τις μεγάλες μεταβλήτές, δηλαδή η μεγάλα σου είναι property names, για παράδειγμα τι ωραίο class που είναι αυτό, μπορεί να το μικρένει, του δει ένα άλλο class, γιατί όλα παίζουν ρόλο, ακόμα και αυτό κερδίζει, και μιλάμε για ταχύτητα πλέον. Δεν μιλάμε ούτε για να ανεβανάγνω στο κάτι, ούτε μας σε διαφέρει αυτό. Ah, εδώ πέρα το performance score είναι στην ουσία το ίδιο site με πριν, το οποίο, εφαρμόζοντας απλά το auto-optimize, έφτασε 92, αυτό γιατί το δείχνω, είναι στην πραγματικότητα πολύ, φαίνεται πολύ εύκολο, αλλά όπως είπα και το template, και φυσικά δεν μιλάω για custom theme, γιατί εκεί, αν πάω εγώ να φτιάξω ένα custom theme, θα φροντίσω να τα φορτώνει, να είναι με τέτοιο τροπογραμμένο, που να φορτώνει είναι πολύ γρήγορα. Όμως επειδή υπάρχει το θέμα με τα έτοιμα templates, πολλά δεν εξηπηρετούν σε αυτό το τομέα. Αυτό το συγκεκριμένο theme είναι πάρα πολύ καλό, και μόνο του έφτασε σε αυτή την ατότητα. Το 69 βλέπετε δίπλα, είναι άλλα πράγματα, έχει να κάνει με server, που δούμε μετά. Το δεύτερο κομμάτι σε όλα αυτή η διαδικασία είναι η διαδικασία της ένωσης, που λέμε combine, να συνδυάσω δηλαδή δύο αρχεία, και παραπάνω. Κάποια πολύ καλά, cashing plugins κάνουν το εξής, παίρνουν τα css, και μπορεί να είναι 10, 20 αρχεία, έχω δίκαιο 30 αρχεία css, και τα φτιάχνουν είτε σε ένα αρχείο, που βέβαια εκεί, υπάρχει ένα μικρό πρόβλημα. Αν είναι τεράστιο το αρχείο, διότι σκεφτείτε ένα αρχείο, το οποίο αποτελείται από 30 μικρά css, εκεί είναι πρόβλημα, και συνήθως θα πάει είτε ανα 2, είτε ανα 3. Δηλαδή παίρνει ανα 3 αρχεία, και τα φτιάχνει σε ένα, δηλαδή και σου δώσει 2, 30, έχουμε 10 ή και λιγότερα. Και συνεχεία αυτό μπορεί να γίνει, όπως είπα και με cashing plugins, το ότοπο τιμάει και το μόνο το κάνει, αυτή τη δουλειά είναι... Ναι, έγινε. Το ότοπο τιμάει, λοιπόν, το κάνει, χωρίς κανένα πρόβλημα, με τη χρήση note πάλι γίνεται, και μάλιστα εκεί μπορεί ο developer να βάλει χέρι, κυριολεκτικά και να ανταλάξει όλα, δηλαδή τι θέλει, τι δεν θέλει να γίνει μηνυφάη και όλα. Και το ένα catch που υπάρχει, είναι ότι αν τα αρχεία αυτά είναι πολύ μεγάλα, μου έχει τίχη για παράδειγμα ένα css, το οποίο ήταν 25.000 γραμμές, και όταν έγινε μηνυφάη, μαζί με άλλα 15 css που είχε το team, γιατί είχε ξεχωριστά, είχα πολύ μεγάλο impact στο performance. Ήταν πολύ αρνητικό το όλο, αυτό που έκανα το άφησα μόνο του αυτοταρχείο. Γιατί πραγματικά, ήταν είχε πρόβλημα, δεν μπορούσε να πάει καθόλου, ούτε να συνεχίσει ούτε και να τρέξει. Ας δούμε λίγο τώρα, κάποια compression errors, που μπορεί να συμβούν γενικότερα. Συνήθως, λοιπόν, εφανίζονται διάφορα προβλήματα για τα διαδικασία του combination. Κάποιες φορές, κάποια plug-ins, όπως ξέρετε, έχουν dependencies. Όταν καλούμε ένα style sheet ή ένα javascript δυτικά, συνήθως το κάνουμε dependency jQuery. Αλλά όχι μόνο. Υπάρχει λοιπόν το εξής θέμα. Κάποια custom themes, και κάποια themes, τα οποία είναι custom, είναι σύνσουια απλά εγωρασμένα, συμβαίνει το εξής με αυτά. Υπάρχει a combination, επειδή τα στέλουν συνήθως στο footer και κάποια άλλα κομμάτια εμφανίζονται πιο πάνω, σκάνε. Εκεί, λοιπόν, πρέπει να μπορέσουμε να αναγνωρίσουμε ποια είναι τα προβλήματα αυτά. Αυτή τη δυνατότητα μας δίνει συνήθως τη δυνατότητα αυτή και η κονσόλα, για παράδειγμα η κονσόλα του Google Chrome. Έχει μια πολύ καλά developer tools, μπορούμε να δούμε και συνήθως εκεί, δηλαδή, αν συμβεί ένα λάθος, ειδικά σε JavaScript, αρχίζουν τα λεγόμενα reference error με το κύλο πάρα πολλά. Και εκεί βέβαια είναι ένα θέμα, αλλά παράλληλα έχει πολύ καλή δυνατότητα και είναι αρκετά εύκληστη για να βρούμε ποιο είναι το λάθος και να μπορέσουμε το αρχείο το οποίο δημιουργεί το πρόβλημα να το κόψουμε απ' τη διαδικασία αυτή. Και πολύ γρήγορα για να διορθώσουμε ένα τέτοιο αρχείο, στην ουσία ανοίγουμε την κονσόλα, βλέπουμε το ποιό είναι το reference error, στη συνέχεια συνήθως αυτό λειτουργεί πάρα πολύ καλά, αν κάποιος χτυπήσει το URL χρησιμοποιώντας ένα ερωτηματικό νοκάψι, ένα ερωτηματικό αλφαριθμητικό τίποτε, σου σερβήρει μια σελίδα, η οποία δεν είναι κασαρισμένη. Οπότε εκεί, μπορούμε να δούμε πλέον το κόδικα, να δούμε καθαρά το κόδικα και να δούμε επίσης και τα αρχία μας που φορτώνονται. Ψάχνουμε λοιπόν από το browser ή από το network tab στα Chrome Tools που είναι αυτό το αρχείο που δημιουργεί το πρόβλημα που εμφανίζει αυτό το reference error και στη συνέχεια το κάνουμε exclude. Αυτό δεν μπορεί να σωθεί αλλιώς. Είναι αλήθιο ότι διστυχώς αυτό κομμάτι δεν μπορεί να σωθεί έτσι, γιατί είναι τη δειτουργία του theme. Υπάρχουν κάποιες τεχνικές, αλλά είναι αναλόγως το theme και δεν λειτουργούν συχνά. Τώρα για το λεγό μας different. JS parsing Τα JS αρχία, τα javascript αρχία θεωρούνται γενικότερα είναι αυτό που λέμε render blocking διότι όταν καλούμε μια ιστοσελίδα μέχρι να φορτώσει όλοι συνήθως επειδή πολίτι τοποθετούν τη javascript πάνω μέχρι να φορτώσει jQuery μέχρι να φορτώσουν τα άλλα assets αργεί. Έτσι λοιπόν, υπάρχει μια διαδικασία και μια δυνατότητα, το επίπεδο προσφέρουν και τα plugins, αλλά υπάρχει και η δικό κομμάτικο που θα μπορούσε να το κάνει για πιο advanced έτσι κατάσταση όπου αναγνωρίζουμε ποια scripts έχουμε, javascripts και τα φορτώνουμε στο footer όλα. Και μάλιστα, τα φορτώνουμε με το different tag όπως λέει, όπως αναφέρουμε και στην ουσία τα κατεβάζουμε στο footer και φορτώνουν ή έχει έρθει και έχει χτυπήσει το λεγόμενο unload event δηλαδή με το που έχει φορτώσει σε λίδα μας, αρχίζουν αυτά και φορτώνουν. Το μόνο πρόβλημα που υπάρχει εδώ και έχω παρατηρήσει πάρα πολύ είναι με την javascript με την jQuery μες χωρείτε γιατί συνειθίζεται να μπαίνει πάνω και υπάρχουν plugins διάφοροι sliders το κάνουν αυτό που πετάνε μέσα στον κόδικα σε κομμάτια κάτω από το head διάφορα κομμάτια javascript αυτά λοιπόν, συνήθως από κάποιο caching plugin ή το auto optimize τα βρίσκει, τα παίρνει και το τοποθετήσει σωστή θέση συνήθως λειτουργεί. Βέβαια, αν δεν λειτουργήσει ξαναλέω είναι ένα κομμάτι που δυστυχώς ό,τι και να λέω είναι ανάλογα το themepad. Δεν μπορεί κανείς να πει ότι πάντα θα έχω αποτελέσματα σωστά και υπάρχει φυσικά των εξωτερικών scripts, αυτό είναι ένα πολύ μεγάλο κεφάλαιο. Θα έχετε δει σε οι σωσελίδες και δικές σας και πελατών σας ότι έχω το google tag manager συνήθως, στο οποίο μου πετάει πάρα πολλά scripts, έχω το facebook έχω πράγματα τα οποία είναι εξωτερικά scriptάκια. Αυτά λοιπόν, δεν μπορώ να τα κασάρω by default. Γιατί μιλάνε με άλλους και όχι μόνο με άλλους servers είναι αλλού τελείως τα scripts αυτά. Τα αυτές εγώ προσωπικά φροντίζω να μην έχω τόσο πολλά προσπαθώ και υπάρχουν και υπάρχει μια τεχνική κατά την οποία βλέπουμε ποια scriptάκια να αυτά στο gtmetrics, θα δείχνει όλα τα αναλύπια αν τα external και υπάρχει μια τεχνική αρκετά χάκη είναι η αλήθεια, κατά την οποία παίρνουμε το scriptάκι, το βάζουμε στο url, αντιγράφουμε, το βάζουμε τοπικά και εν συνεχία κάνουμε exclude το handle του κανονικά από το javascript, από αυτό το κόδικα που έδειξα από το plugin και το φορτώνουμε σαν δικό μας. Το πρόβλημα εκεί είναι ότι αν αλλάξει κάτι στο facebook, συνεπόμενες 2-3-5 μέρες στον κόδικα, απλά δεν θα λάξει στο side μας και εκεί πέρα πρέπει να χρησιμοποιηθούν κάποιες τεχνικές που θα παίξουν τα λεγόμενα chron files, υπάρχουν κάποιες ζητήματα τέτοια που είναι αρκετά χάκη όλο αυτό. Εδώ πέρα κάτω υπάρχει το facebook, όπου μπορεί να χρησιμοποιήσετε κανονικά για να δείτε και πώς λειτουργεί ένα πολύ μικροκομματικό δικό το οποίο κάνει αυτή τη δουλειά φορτώνει ό,τι assets έχετε στο footer και τα φορτώνει και ασύγχρονο τελείως. Εδώ πέρα θα μιλήσω για το lazy loading των images. Σίγουρα το έχετε ακούσει αυτό. Το lazy loading είναι όταν φορτώνω τις εικόνες, όταν μπαίνει κάποιος μια ισοσελίδα και φορτώνω αυτές που είναι μέχρι το viewport του χρήστη. Όταν λοιπόν έχετε το viewport του χρήστη, πάτε πιο κάτω και αρχίζουν και φανίζονται. Αυτό φυσικά είναι μια τεχνική πάρα πολύ καλή. Βέβαια θέλει η προσοχή. Υπάρχουν κάποια plug-in σε javascript συνήθως, όπου μπορεί να δημιουργήσουν κάποια προβλήματα performance. Γιατί μπορεί να έχεις πάρα πολλές εικόνες, υπάρχουν κάποια τέτοια ζητήματα. Βέβαια, γενικότερα είναι μια τεχνική που λειτουργεί σε πάρα πολλά sites, που έχουν πολλές εικόνες. Για παράδειγμα, σίγουρα πολύ από σας κέρεται το Pexel στο SatreStock χρησιμοποιείται αυτή η τεχνική εκεί, διότι σκεφτείτε να ήταν σε μια σελίδα στους 50 εικόνες και τις φορτών ανόλες. Βέβαια, αυτή κάποιες τεχνικές, αλλά θα υπήρχε θέμα. Και είναι πραγματικά κάτι το οποίο έχει όντως impact. Δηλαδή φορτώνω μόνο αυτά που βλέπω. Τίποτα περισσότερο, τίποτα λιγότερο. Βλέπω και τα άλλα. Όπως βλέπουμε εδώ πέρα, υπάρχει μια διαδρομή. Ζητάω μια ιστοσελίδα. Και το λέζει loading στην ουσία, είναι ότι ο browser κασάρει στην πραγματικότητα την αληθινή εικόνα. Υπάρχει στη θέστηση ένα placeholder, το οποίο μπορεί να είναι κάτι το οποίο και ούτε να φαίνεται, να είναι κάτι το οποίο απλά να μη φαίνεται, να είμαστε ο οποίος δεν φαίνεται. Και στο fully loader, όταν έχει φορτώσει σελίδα μας πλέον, αρχίζουν και φανίζουν οι εικόνες. Και κατά το scroll, εμφανίζουν οι επόμενες. Αυτήν η τεχνική του lazy loading, υπάρχει δυνατότητα να γίνει και χωρίς script. Δηλαδή με ένα πολύ μικρό javascript, το οποίο υπάρχουν και σε κομμάτια κόδικα και στο pacelin μέσα αυτό που θα τα δείτε και γενικότερα, αλλά προσωπικά χρησιμοποιώ κάποια jQuery plugin, στα οποία κάνουν πάρα πολύ κάτι δουλειά τους. Εκεί βέβαια θέλει να είναι, όπως είπα το theme, να έχει optimized. Επίση να ξέρετο, υπάρχει διάφορα carousels, όπως το all carousel, όπως το slick, που σίγουρα χρησιμοποιούνται και σε elements, του visual composer, που σίγουρα το ξέρετε όλοι. Έχουν lazy loading, με αποτέλεσμα να βλέπουμε, για παράδειγμα, να φορτώνει την πρώτη εικόνα, άντε και τη δεύτερη ανάλογα, το τι carousel θα έχεις και από εκεί πέρα φαίνει και τις επόμενες. Λοιπόν, αυτό είναι ένα κομμάτι, που είναι όχι περίπλοκο, είναι πολύ... Πριν από ένα, δυο χρόνια, όταν κάποιος προσπαθούσε να μπει στο Google PagePid, παρατήρησε, ότι μιλούς, μιλάει, όταν σου δίνει το insight, σου δίνει τις συμβουλές του για το πώς θα κάνει σελίδα του γρήγορη, υπάρχει το λεγόμενο above the fold optimization. Αυτός την πραγματικότητα είναι, όταν φορτώνουμε μία σελίδα και έχουμε βρει και έχουμε κάνει το κάσηγμα στα πάντα και έχουμε κατεβάσει λοιπόν κάτω τα αρχία, υπάρχουν εφορές που βλέπουμε, ότι σκάει σελίδα μπροστά, τη βλέπουμε χωρίς στήλ και εξαφνικά εμφανίζονται τα στήλες. Το critical CSS λοιπόν, είναι ένα κομμάτι από τα CSS αρχία μας, ένα CSS κομμάτι, συνήθως δεν είναι πολύ μεγάλο, που μπορούμε με διάφορους τρόπους να το βρούμε, υπάρχουν ακόμα και κρόμάντων, που το βρίσκουν, όπου μπορούμε να το κάνουμε inline στο head του θή μας είτε με κάποιο πλαγίνι τ και μόνοι μας και στην ουσία φορτώνει μόνο το CSS που χρειάζεται με το που εμφανίζεται σελίδα και στην πριν μετά γίνονται όλα τα υπόλοιπα. Αυτό για να μην έχει ο χρήστης αυτό το λεγόμενο fook που είναι το flash of unstyled content, δηλαδή να μπει διαλυμένα όλα και στη συνέχεια ξαφνικά να δει την κανονική σελίδα. Το critical CSS υπάρχουν διάφορα πλαγίνι που το κάνουν βέβαια δεν το κάνουμε μεγάλη επιτυχία, είναι αλήθεια γιατί είναι όντως περίπλοκη κατάσκης συνήθως έλεει χέρι. Υπάρχει μια πολύ καλή πυρεσία critical.css.com η οποία πραγματικά δίνει ρέστα πάνω σε αυτό φτιάχνει το critical CSS και παίζει και σε mobile στις σκεδές και είναι κάτι το οποίο είναι πολύ χαρακτηριστικό και το ζητάνε πολύ στο pagepid διότι όταν έχεις κατεβάσει τα πάντα στο footer και τα φορτώνεις ασύγχρονα είναι βέβαια ότι θα έχεις τέτοιο θέμα ότι δηλαδή θα σκάσει σελίδα και με θα κάνει ένα δευτερό λπτο και ξαφνικά θα εμφανιστεί πάλι. Είναι αυτά που τα πριν. Τώρα όσο να φορά το prefetch όσο να φορά τώρα το prefetch λοιπόν όσο να φορά το dns prefetch και pre render είναι δυο πληροφορίες που πλέον παίζουν αυτομάτα και στους brosers το prefetch είναι μια τεχνική βελθυσοποίηση υπάρχει αυτομάτα στους διάφορους brosers είναι μέσω ενός μετατάξης σελίδα και το worldpress το κάνει από το 473 και μετά το κάνει και αυτό μπορεί να βάλεις δηλαδή διάφορα urls σου δίνει τη δυνατότητα να φορτώσεις να όχι να φορτώσεις ακριβώς να πας σε διάφορα urls και έτσι όταν τα καλέσεις την επόμενη φορά να πάρεις τα δεδομένα από αυτά τα urls για παράδειγμα τα google phones πολύ πιο γρήγορα και να τα δεις χρησιμοποιεί την τεχνική του dns που είναι στον υπολογιστή μας δηλαδή πάει και κάνει resolve το url και βλέπει ότι μέσα έχουμε αυτά τα dns prefetch tags και στη συνέχεια αφού το κάνει την επόμενη φορά ξέρει όχο ήδη κάνει prefetch θα μουθεί πιο γρήγορα τα google phones αυτό χρησιμοποιείται και πλέον είναι αυτόματο αλλά υποστηρίζεται και πάλι και από το worpress υποστηρίζεται από το wpresourcehint όπως λέμε filter το οποίο υπάρχει μια πρόστα τη σχετικά έκδοση και σου δίνει τη δυνατότητα να προσθέσεις γιατί οι brousers από μόνοι τους βάζουν το google analytics το google api αν το βρούνε σε σελίδα έτσι λοιπόν είναι όντως αυτό έχει ένα impact διότι βλέπεις ότι δεν δεν καθιστέρει να τραβήξει για παράδειγμα κάποια άσσες που είσαι ένα cdn το cdn λοιπόν είναι σωστό το τελευταίο κομμάτι είναι μία όχι παρεξηγημένη έννοια είναι μία έννοια η οποία πραγματικά χρησιμοποιείται επαγκοσμίως χρησιμοποιείται για να σερβύρει όλα αυτά που είπαμε απλά τα σερβύρια από άλλους server στην ουσία ζω cdn αν ανεβάζουμε τα διάφορα αρχία τα αντιγράφη και στη συνέχεια κάθε φορά που ένας χρήστα ζητάει τα κατεβάζουμε από διάφορα point of interest όπως λέμε και τα λαμβάνουμε προσέξτε το catch εδώ ποιο είναι το μεγάλο πρόβλημα με τα cdn το οποίο το παρατήρησα πολύ πρόστατα σε σελίδα είναι ότι αν έχει σε έναν άνθρωπο ποιος είναι ένα πελάτι ο οποίος είναι στην Ελλάδα και δεν χρησιμοποιείς οι cdn που είναι στην Ελλάδα όλα αυτά τα άσες είναι πολύ πολύ μακριά μου είχε impact στο page speed είχε πρόβλημα δηλαδή αυτό λοιπόν άρα το cdn δεν είναι πανάκια πολύ δηλαδή το ζητάνε αλλά στην πραγματικότητα δεν είναι κάτι το οποίο μπορείς να το χρησιμοποιήσεις πάντα αυτό που κάνει τα γράφω εδώ φυσικά τα caching plugin τα περισσότερα υποστηρίζουν full είναι υπάρχει κανένα πρόβλημα σε αυτό απλά το θέμα είναι ότι θέλει προσοχή στη χρήση του πάρα πολύ εδώ παίρναι μια εικόνα που δείχνει το χωρίς cdn ότι έχω τον origin server να βγάβει στην Ελλάδα και σερβήρω σε όλο τον κόσμο έχω σερβήρει στα διάφορα points of interest και σερβήρονται οι χρήστες της ανάλογα με την περιοχή από το συγκεκριμένο άρα τα παίρνουν πολύ πιο γρήγορα τα αρχία δηλαδή αν έχω πελάτε στην Αμερική ναι θα ήταν καλό να έχω ένα cd που είναι κοντά εκεί δηλαδή έχει να πω για να σερβήρει πολύ πιο γρήγορα και εννοείται ότι βελτιστοποι πάρα πολύ ταχύτα και αυτό και κάποια τελευταία πράγματα πρέπει να αληφθούν υπόψη λοιπόν το πρώτο έχει να κάνει είναι σερβερικό οι servers και από το gttp δίνουν δυνατότητα να μπορεί να σερβήρει κάποιος αρχείο το οποίον είναι zipped πολλά caching plugins κάνουν το εξής κοδικοποιούν την html σε αλίδα μας το οποίο πολύ mini fight και το κάνουν zipped και το στέλνουν ο server έχει την δυνατότητα και να το κάνει και να το σερβήρει και να μας το στείλει το ggb λοιπόν είναι πολύ σημαντικό και είναι το ggb enable στην ουσία σερβερ και είναι κάτι το οποίο πραγματικά χρησιμοποιείται και το ζητάει και το pagepid και το gt metrics και όλα το δεύτερο που γράφω χρησιμοποιείται το import rule γιατί μπορεί να υπάρξει με την καθηστέριση γιατί κανείς δεν ξέρει τι κάνει το import δηλαδή θα χρησιμοποιηθεί αλλά αν είναι περάστιο το css έρχομαι στα αρχικά θα υπάρξει θέμα καλό θένα μην υπάρχουν import γενικά ή το τελικό αρχείο να είναι καθαρό να μην έχει τίποτα θα σταχεί όλα μαζί σε τελική και έχει πολύ trial and error λοιπόν αυτό είναι κάτι το οποίο έχει να κάνει με το hth-axis όλα τα static assets πρέπει να τους δώσουμε μέσα από το hth-axis μία δυνατότητα να λίγουν το βλέπει ο browser αυτό μετά από πολύ καιρό γιατί όταν τα παίρνει και τα κασάρη ξέρει ότι πήρα τα css το αρχημίδι με κάποια λαγή ξαναγενάω το css του δίνω να εξπάρει χέντερ συνήθως τα πλαγήν στο αυτό το κάνω από μόνα τους και παίζω και άριστα το πρόβλημα υπάρχει με τα εξτερικά scripts αλλά εκεί δεν μπορούμε εύκολο να βάλουμε χέρι δηλαδή το facebook για παράδειγμα το εξπάρει χέντερ του είναι 15 λεπτά εκεί δεν μπορείς εύκολο να βάλεις χέρι όταν το πέταρτο είναι πολύ σημαντικό σε πολλά ετοίμα θύμης ακόμα και όταν το σπίνουμε με τον demo content του σκάνε διάφορα airos που εννοντφάουν, ψάχνει εικόνες ψάχνει διάφορα αυτά καθιστερούν πάρα πολύ τσιελίδα και ειδικά όταν έχει να κάνει με javascript errors δηλαδή εκεί είναι μεγάλο θέμα αυτό πρέπει στην console αλλά μας δεν ξαφανίσουμε όλα όσο αναφορά τα βέλτι στα image sizes έχει να κάνει με το γεγονός όπως ξέρουμε το worldpress αναλόγω μεταχύει κάποια δικά default image sizes και εμείς μόνο του φτιάξουμε και άλλα καλό θα είναι στο theme το οποίο έχουμε να δουλέψουμε να μη βάζουμε ότι να είναι image's δεν λέω να βάζουμε ακριβώς το μέγεθος γιατί έτσι και αλλιώς το image αυτό κόβεται δηλαδή μπορεί να κοπεί να φτιάχνεις οι πιο μικρές διαθάσεις ούτως ή άλλος το θέμα είναι να μπορέσουμε και να προσπαθήσουμε να δίνουμε μια διάσταση η οποία να είναι βέλτιστη και όμορφο να φαίνεται κάποια block πώς μπορεί η εικόνα είναι πιο μεγάλη σε κάποια το λέει να είναι διαφορετικό αλλά γενικά θέλει αρκετή δουλειά αυτό και έτσι θα γλειτώσουμε και πολύ μεγάλη καθιστέρηση και θα έχουμε και ωραίες εικόνες γιατί καταψήματα η εικόνα μετά είναι πάρα πολύ όσο να φορά τα υπερβολική χρήση worldpress plugins το γράφω γιατί έχω δίκαιες size με 50-60 plugins και το θέμα είναι ότι πολλά από αυτά πετάνε κόδικα κυρολεκτικά με αποτέλεσμα αν χρησιμοποιήσουμε κάποιο caching plugin ή μια προσπάθεια να κάνουμε δεν μπορούμε να παλέψουμε αυτό γιατί στην περαγματικότητα πετάει κόδικα και τα κόβει και κάποια δεν γίνεται να λερδιδουργήσουν χωρίς αυτό οπότε καλό θα είναι ότι plugin μπορούμε να κόψουμε να το κάνουμε όσο να φορά τα videos προφανώς είναι προφανές ότι καλό θα είναι να μην σερβίρουμε το δικό μας server τα videos είναι το youtube API ή από κάποιο cdn αλλά όχι από το δικό μας server και το λόγια γιατί πολύ χρησιμοποιούν βίντεος και είναι πολύ βασικό σφάλμα αυτό όχι από το δικό μας server δεν θα φορτώσει γρήγορα συνήθως και το τελευταίο έχει να κάνει πιο πολύ καλό θα είναι να αφαιρούνται τα query strings από τα resources όταν κάνουμε οι Q ή διάφορα σκριτάκια θα παρατηρήσετε ότι βλέποτας οι resources λίδας μας έχουν στο τέλος ένα ρωτηματικό και κάποιο version αυτό είναι καλό να φεύγει γιατί τα caching plugins βλέποντας αυτό δεν μπορούν αλλά και δεν μπορούν να τα κασάρουν στην πραγματικότητα είναι όπως το παράδειγμα στην αρχή με το no cache οπότε, εφαρμόζοντας την τεχνική αυτή υπάρχουν plugins που το κάνουν κόβουμε τελείως στην πραγματικότητα το version number και μπορούν πολύ εύκολο και το τελευταίο που θέλω να πω είναι ότι η βελτιστοποίηση γενικά μια σωσελίδα θέλει πάρα πολύ κόπο είναι αλήθεια ότι και προσωπικά αλλά και σαν ομάδα έχουμε φάει ημερό νύχτα στο να κάνουμε απ' τη migrations και να μην βγαίνουν τα αποτέλεσματα που θέλουμε αλλά σίγουρα όταν βγει το αποτέλεσμα που θέλουμε είναι πάρα πολύ ωραίο είναι πολύ καλό και σίγουρα μπορούμε να εφαρμώσουμε και πάντα, η πρόταση δική μου είναι όταν έχουμε να προτείνουμε κάποιο theme να φροντίζουμε να τα κοιτάμε λίγο πριν δηλαδή όχι μόνο τον demo να τα ψάχνουμε λίγο στον κόδικα αυτό που βλέπουμε να τα κάνουμε κάποια test γιατί μπορεί να μας έρθει boomerang ένα πολύ όμορφο theme μπορεί να έχει τόσα πολλά άχρηστα ή κακά στοιχεία είναι τόσο το κακογραμμένο μπορεί να το δει αλλά τόσο άχρηστα πράγματα που μπορεί πραγματικά να χαλάσουμε ένα πολύ διαδικασία Σας ευχαριστώ πάρα πολύ τελευταίο να με συγχωρέσετε λίγο που μου να λίγο έτσι αλλά είμαι με ταλανίζει μία ήωση πάρα πολύ δυνατά με συγχωρείτε, σας ευχαριστώ και πάλι