mmmh......

8 Settembre 2021

Migliorare punteggio Page Speed tramite .htaccess

Scrivo questa guida a fine 2021 per fare un punto su tutto quello che ho capito e imparato in questo anno, per ottimizzare un sito web e renderlo piacevolmente veloce agli occhi di Google PageSpeed Insights.

Di cosa stiamo parlando?

Google PageSpeed Insights è un tool che Google a messo a disposizione ai sviluppatori per verificare che le prestazioni e la velocità di un determinato sito siano buone e in linea con i standard attuali. Mi spiego meglio:

Creo un sito, carico i miei contenuti, disegno la mia interfaccia, lo rendo bello e piacevole. Fin qui è tutto rose e fiori. Poi mi rendo conto che ho sempre navigato sotto rete Fibra e con un MacBook Pro nuovo nuovo. Perciò mi sorge il dubbio, ma a velocità come stiamo messi? Per questo motivo, mi sposto un attimo sul mio iPhone connesso in 4G segnale però non al top, raggiungo il mio sito e…

Loading GIFs - Get the best GIF on GIPHY

Male. Male. Male.

Quindi?

Google PageSpeed Insights è qui per aiutarci e deprimerci allo stesso momento. Si perchè se da una parte ci confermerà che il nostro sito è lento come una lumaca e inizierà a consigliarci una serie di aggiustamenti da fare, dall’altra ci farà capire quanto siamo poco competenti a sviluppare soluzioni leggere e visivamente interessanti allo stesso tempo. Grazie, ti odio.

Basta seguire i consigli allora!

Ni, quello che ho imparato è che non sempre i consigli che vengono dati possono fare al caso nostro (credo in generale anche nella vita). Quindi una cosa che ho incominciato a fare è creare una sorta di procedura base per ottimizzare ogni tipo di sito web, e poi in base alle esigenze andare ad aggiustare il tiro, un pò seguendo Google, un pò seguendo il buon senso.

.htaccess: "è il mio momento?"

Si! Prego sali sul palco e parliamo di te. No, non mi metto a spiegare cos’è, cosa fa, da dove viene e perchè ci è così utile. Per istruzione seria c’è Google, qui parlo solo di esperienze e trick interessanti e talvolta difficili da (ri)trovare.

Diciamo che l’esperienza, fino a questo momento, mi ha portato a sostituire il file .htaccess standard di ogni sito con questo qui sotto che ho scritto personalmente attingendo a più di 1000 guide e video online.

No, non è definitivo.  Si, lo aggiornerò con il passare del tempo e delle esperienze.

				
					# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# TN START GZIP COMPRESSION
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
# TN END GZIP COMPRESSION

# TN START DEFLATE COMPRESSION
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \
"application/json" \
"application/ld+json" \
"application/manifest+json" \
"application/rdf+xml" \
"application/rss+xml" \
"application/schema+json" \
"application/vnd.geo+json" \
"application/vnd.ms-fontobject" \
"application/x-font" \
"application/x-font-opentype" \
"application/x-font-otf" \
"application/x-font-truetype" \
"application/x-font-ttf" \
"application/x-javascript" \
"application/x-web-app-manifest+json" \
"application/xhtml+xml" \
"application/xml" \
"font/eot" \
"font/otf" \
"font/ttf" \
"font/opentype" \
"image/bmp" \
"image/svg+xml" \
"image/vnd.microsoft.icon" \
"image/x-icon" \
"text/cache-manifest" \
"text/css" \
"text/html" \
"text/javascript" \
"text/plain" \
"text/vcard" \
"text/vnd.rim.location.xloc" \
"text/vtt" \
"text/x-component" \
"text/x-cross-domain-policy" \
"text/xml"
</IfModule>
# END DEFLATE COMPRESSION

# TN START ENABLE KEEP ALIVE
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
# TN END ENABLE KEEP ALIVE

# PREVENT INJECTION
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
# END INJECTION

				
			
Posted in TrickTaggs:
Write a comment