Il file robots.txt è un file di testo semplice posto nella directory principale del tuo sito web (https://example.com/robots.txt) e dice ai crawler dei motori di ricerca quali pagine o sezioni del tuo sito possono o non possono visitare. Esiste dal 1994 ed è uno degli standard più antichi sul web. Ogni motore di ricerca serio lo rispetta, anche se è importante capire cosa può e non può fare.
Come funziona la sintassi robots.txt
Il file usa una sintassi semplice basata su regole. Ogni blocco inizia con una riga User-agent che indica a quale crawler si applicano le regole, seguita da una o più direttive Disallow o Allow. Ecco una panoramica completa di tutte le direttive supportate:
User-agent: identifica il crawler. Usa*per tutti i crawler, o specifica un bot particolare comeGooglebot,BingbotoGPTBot.Disallow: dice al crawler di non visitare il percorso specificato.Disallow: /private/blocca tutto sotto la cartella /private/. UnDisallow:vuoto significa che nulla è bloccato.Allow: annulla una regola Disallow per un percorso specifico. Utile quando vuoi bloccare una cartella ma consentire l'accesso a determinati file al suo interno.Sitemap: indica l'URL della tua sitemap XML. Tecnicamente non fa parte dello standard robots.txt originale, ma tutti i principali motori di ricerca lo supportano.Crawl-delay: dice al crawler di attendere un numero specificato di secondi tra le richieste. Google ignora questa direttiva (puoi invece impostare la frequenza di scansione in Search Console), ma Bing e alcuni altri crawler la rispettano.
Un tipico esempio robots.txt WordPress
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-includes/
Disallow: /readme.html
Disallow: /xmlrpc.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xmlEsaminiamo cosa fa ogni riga:
Disallow: /wp-admin/: impedisce ai crawler di visitare l'area di amministrazione WordPress. Non c'è motivo per cui i motori di ricerca scansionino il tuo dashboard.Allow: /wp-admin/admin-ajax.php: questa eccezione è importante perché molti temi e plugin usano admin-ajax.php per la funzionalità front-end. Bloccarlo può rompere funzionalità sulle tue pagine pubbliche.Disallow: /wp-includes/: blocca la cartella core includes di WordPress, che contiene file di sistema non destinati all'indicizzazione.Disallow: /readme.html: nasconde il file readme di WordPress che rivela la tua versione WordPress.Disallow: /xmlrpc.php: blocca l'accesso all'endpoint XML-RPC, regolarmente bersaglio di attacchi di brute force.Disallow: /?s=eDisallow: /search/: previene l'indicizzazione delle pagine di risultati di ricerca interna, che hanno poco valore e possono creare contenuti duplicati.
robots.txt versus il meta tag noindex
Questa è una delle distinzioni più fraintese in SEO. Molti proprietari di siti pensano che bloccare una pagina in robots.txt impedisca che appaia nei risultati di ricerca. Non è così.
robots.txt controlla la scansione: dice ai motori di ricerca di non visitare un URL specifico. Ma se altri siti web linkano a quell'URL, Google può comunque indicizzarlo e mostrare l'URL nei risultati di ricerca con una nota come "Nessuna informazione è disponibile per questa pagina".
Il meta tag noindex controlla l'indicizzazione: dice ai motori di ricerca "puoi scansionare questa pagina, ma non includerla nei tuoi risultati di ricerca". Il punto cruciale è che Google deve effettivamente poter scansionare la pagina per vedere la direttiva noindex. Se blocchi una pagina in robots.txt E aggiungi un tag noindex, Google non può scansionare la pagina per scoprire il tag noindex, quindi l'URL può comunque essere indicizzato in base a segnali esterni.
La regola pratica: usa robots.txt per gestire il budget di scansione e tenere i crawler fuori dalle aree lato server. Usa noindex quando vuoi rimuovere completamente una pagina dai risultati di ricerca.
Come Googlebot gestisce robots.txt
Google controlla regolarmente il tuo file robots.txt e tipicamente lo memorizza nella cache fino a 24 ore. Se Google non può recuperare il file (ad esempio perché il tuo server restituisce un errore 500), Google smette temporaneamente di scansionare il tuo sito, per sicurezza. Una risposta 404, invece, viene interpretata come "nessuna restrizione", il che significa che Google scansionerà tutto.
Google supporta anche il pattern matching nei percorsi robots.txt. Puoi usare * come wildcard e $ per indicare la fine di un URL:
Disallow: /*.pdf$
Disallow: /category/*/page/La prima regola blocca tutti i file PDF sull'intero sito. La seconda blocca le pagine di paginazione all'interno degli archivi di categoria.
Testare il tuo robots.txt con Google Search Console
Google Search Console include un tester robots.txt con cui puoi controllare se un URL specifico è bloccato. Questo è prezioso dopo modifiche al tuo robots.txt, dato che un piccolo errore di battitura può accidentalmente bloccare pagine importanti. Inserisci l'URL che vuoi testare, e lo strumento ti dirà se è consentito o bloccato, e quale regola ne è responsabile.
Dovresti testare il tuo robots.txt dopo ogni modifica, specialmente dopo grandi aggiornamenti del sito, cambi di tema o migrazioni. Richiede solo pochi secondi e può evitare di rimuovere accidentalmente parti del tuo sito dall'indice.
Errori comuni di robots.txt sui siti WordPress
Alcuni errori si verificano ripetutamente sui siti WordPress:
- Bloccare file CSS e JavaScript: alcuni vecchi template robots.txt bloccano
/wp-content/o/wp-includes/in modo ampio. Questo impedisce a Google di raggiungere i file CSS e JS di cui ha bisogno per renderizzare le tue pagine. Se Googlebot non può renderizzare correttamente la tua pagina, non può valutarla correttamente per il ranking. Consenti sempre l'accesso ai file CSS e JavaScript. - Bloccare l'intero sito durante lo sviluppo: gli sviluppatori spesso aggiungono
Disallow: /durante lo staging e si dimenticano di rimuoverlo prima del lancio. WordPress ha un'impostazione "Scoraggia i motori di ricerca" che fa qualcosa di simile, e rimane attiva più spesso di quanto ci si aspetterebbe. - Usare robots.txt come misura di sicurezza: il file è pubblicamente accessibile. Chiunque può leggere il tuo robots.txt e vedere esattamente quali percorsi stai cercando di nascondere. Se hai contenuti sensibili, usa invece l'autenticazione corretta o controlli di accesso lato server.
- Regole in conflitto: se hai più blocchi User-agent con regole sovrapposte, il comportamento può essere imprevedibile. Google usa la regola più specifica corrispondente, ma altri crawler possono gestire i conflitti in modo diverso. Mantieni semplice il tuo robots.txt ed evita blocchi superflui.
robots.txt WordPress generato automaticamente e come personalizzarlo
Se non c'è un file robots.txt fisico nella directory principale di WordPress, WordPress genera automaticamente un file virtuale. Questo file predefinito è minimo e tipicamente contiene solo la regola disallow /wp-admin/ con l'eccezione admin-ajax.php.
Hai tre opzioni per personalizzarlo:
- Creare un file fisico: carica un file
robots.txtnella directory principale di WordPress tramite FTP o il file manager del tuo host. Questo sovrascrive completamente la versione virtuale. - Usare un plugin SEO: sia Yoast SEO che Rank Math offrono un editor robots.txt nel pannello di amministrazione WordPress, in modo che tu possa apportare modifiche senza accesso FTP.
- Usare un filter hook: gli sviluppatori possono personalizzare l'output robots.txt virtuale tramite il filtro
robots_txtin WordPress. Questo approccio mantiene la personalizzazione nel codice, il che rende più facile tracciarla tramite il controllo di versione.
Cosa controlla InspectWP
InspectWP verifica se il tuo sito WordPress ha un file robots.txt, analizza le regole che contiene e verifica se è inclusa una referenza sitemap. Segnala problemi comuni come direttive sitemap mancanti, regole disallow troppo ampie che possono bloccare contenuti importanti e regole che possono impedire a Google di renderizzare correttamente le tue pagine.