Categorie
SEO Security Webmaster

Come Ottimizzare robots.txt e .htaccess per il SEO

Salve… quest’oggi vorrei parlarti di un argomento che, a volte, viene sottovalutato nella realizzazione dei siti: si tratta dei due file .htaccess e robots.txt.

Ritengo importante, prima di darti degli esempi, chiarirti a cosa servano questi due file.

Vanno messi entrambi nella root del tuo hosting e ti aiuteranno con il SEO on-site.

Il file robots.txt

Iniziamo con il robots.txt: è un file che elenca allo spider di turno cosa può o non può scansionare; è importante ricordare che il rispetto di questo file è su base volontaria da parte di ogni singolo crawler.

Ti mostro un esempio del file robots.txt del sito ingegnerealbano.com:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://www.ingegnerealbano.com/sitemap_index.xml

Va da se che è possibile “complicare” il file robots.txt… qui potete leggere la pagina Wikipedia al riguardo.

Un dettaglio importante è la direttiva Sitemap che permette a Google (ed altri come Bing) di conoscere l’URL della tua Sitemap (se non sai cos’è una Sitemap ti invito a leggerne qui su Wikipedia).

Vorrei ricordarti che il rispetto del file in oggetto è volontario da parte dello spider di turno: vuol dire che, indicando tutti i percorsi che non vuoi vengano indicizzati, potresti stare anche dando informazioni preziose ad un eventuale attaccante.

È importante, dopo avere posizionato il robots.txt, andarlo a testare con questo ottimo strumento, questo per accertarsi che non abbia errori che impediscano una corretta scansione.

Vorrei anche lasciarti con questa ottima risorsa di Google che spiega altri dettagli di questo importante (e spesso trascurato) file.

Il file .htaccess

Il file .htaccess contiene delle direttive necessarie ad Apache… è un file delicato ed una sua completa trattazione va oltre gli scopi di questo articolo.

Ti mostro un esempio del file .htaccess:

## Reindirizzamento forzato su www e https
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


## Abilita la compressione gzip
<IfModule mod_deflate.c>
  # Comprimi HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>


## Abilita il caching del browser
<IfModule mod_expires.c>
  ExpiresActive On

  # Immagini
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/gif "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType image/x-icon "access plus 1 year"

  # Video
  ExpiresByType video/mp4 "access plus 1 year"
  ExpiresByType video/mpeg "access plus 1 year"

  # CSS, JavaScript
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType text/javascript "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"

  # Varie
  ExpiresByType application/pdf "access plus 1 month"
  ExpiresByType application/x-shockwave-flash "access plus 1 month"
</IfModule>

Ed adesso andiamo a spiegarlo 😉

  • La prima direttiva forza la redirezione su www e forza il protocollo https (accertati di avere un certificato ssl installato sul tuo server)
  • La seconda direttiva attiva la compressione gzip delle risorse servite
  • La terza direttiva abilita il caching del browser

Con un file .htaccess di questo tipo velocizzerai il tuo sito (cosa che ai fini SEO è particolarmente importante).

Può essere che le tue necessità siano leggermente diverse dalle mie (ad esempio vuoi forzare la connessione senza il www iniziale o altro)… in questo caso vorrei lasciarti alcuni link di generatori di .htaccess che potrebbero aiutarti:

Questi sono alcuni ma si trovano altri generatori online.

I “Famosi” Redirect 301 (ma anche i 302)

È notorio che, nel caso si dovesse modificare permanentemente l’URL di una pagina, andrebbe fatto un Redirect 301 dalla vecchia pagina alla nuova pagina… ma in soldoni?

In pratica va creata una regola dentro .htaccess che forzi Apache a servire una data URL anche quando ne viene richiesta un’altra.

Aspettate… abbiamo detto spostata permamentemente… e se la dovessi spostare solo temporaneamente? In quel caso andrebbe impostato un redirect con un altro codice di stato HTTP (in particolare si utilizza un Redirect 302; qui il link alla pagina Wikipedia relativa).

Per generare la regola opportuna per il .htaccess puoi usare anche i generatori sopraindicati.

Vorrei anche aggiungere questa ottima risorsa di Google che tratta proprio di come modificare gli URL delle pagine con reindirizzamenti 301.

Conclusioni

Detto questo ti invito a modificare il tuo sito con queste istruzioni: sono semplici da seguire ed aumenteranno sia la velocità che la sicurezza del tuo sito (entrambi fattori da tenere in considerazione quando si parla di SEO).

Grazie per il tempo speso nella lettura 🙂

Di Flavio Albano

Da sempre appassionato di tecnologia non ho mai smesso di credere nell'open-source e nella condivisione della conoscenza. Laureato in ingegneria civile per un errore di gioventù ed utilizzatore di Linux dal 1998 (la prima distribuzione era una Slackware... e la prima non si scorda mai ;) )

8 risposte su “Come Ottimizzare robots.txt e .htaccess per il SEO”

Ciao… grazie per il complimento 🙂

Allora… io normalmente utilizzo Yoast Seo ma ti consiglio di usare un solo plugin per la generazione automatica della sitemap… probabilmente quello di all in one seo pack è la scelta migliore… mi raccomando: stai attento al corretto indirizzo della sitemap nel file robots.txt (mi accorgo che nell’articolo non è specificato che io utilizzo yoast… ne approfitto per puntualizzarlo qui) 🙂

Buongiorno Flavio e complimenti per l’articolo,
per migrare al protocollo https ho utilizzato il plugin Really Simple SSL, poi ho aggiornato Analytics e Search Console.

Per ciò che riguarda il robot.txt se apro la sezione relativa alla versione del sito in https nel robot relativo c’è sempre il rimando alla sitemap in http, per quanto riguarda l’indicizzazione però ho una quasi completa indicizzazione dei post, prima era sotto il 50%! , ma una scarsissima indicizzazione delle immagini, intorno al 5%.
Perdona se ho fatto un po’ di confusione.
Spero in un Tuo prezioso suggerimento.
Grazie
Aldo

Ciao Aldo e grazie per avere lasciato un commento! 🙂

Allora… dovresti aggiornare il robots.txt alla sitemap in https (non serve solamente a Google)… per quanto riguarda l’ottimizzazione delle immagini… non so se possa essere questo ma negli ultimi aggiornamenti di Yoast SEO (se usi questo plugin) c’è adesso la possibilità di includere i media nella sitemap… se carichi anche la sitemap in Google Search Console (cosa che non mi dici) l’indicizzazione delle immagini dovrebbe migliorare (con un po’ di tempo).

Tieni conto che le immagini, per essere indicizzate devono essere originali… se prendi immagini da altri siti Google lo capisce (ormai guarda “dentro” le immagini) e rischi anche una penalizzazione.

Spero di avere risposto alla tua domanda 🙂

P.S. piccola dritta: in search console mantieni registrate tutte le versioni del sito (con e senza https e con e senza www) 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.