Questo riferimento spiega come funzionano i siti pubblici di Discourse con i motori di ricerca come Google e come la piattaforma garantisce che i contenuti venggano indicizzati correttamente anche trattandosi di unâapplicazione JavaScript.
Livello utente richiesto: Tutti gli utenti
Indicizzazione dei siti Discourse da parte dei motori di ricerca
Discourse è costruito come unâapplicazione JavaScript, ma è specificamente progettato per garantire che i motori di ricerca possano eseguire correttamente la scansione e indicizzare tutti i contenuti sui siti pubblici.
Come Discourse supporta i crawler dei motori di ricerca
Sebbene Discourse utilizzi JavaScript moderno per le sue funzionalitĂ interattive, implementa diverse tecniche per garantire che i motori di ricerca possano indicizzare correttamente tutti i contenuti:
Layout crawler dedicato
Discourse rileva automaticamente i bot dei motori di ricerca tramite il loro user agent utilizzando il modulo CrawlerDetection. Quando viene rilevato un crawler, Discourse serve un layout HTML di rendering lato server completamente separato (crawler.html.erb) invece della normale applicazione JavaScript. Questo layout crawler include:
- Contenuto dei topic e liste di topic completamente renderizzati in HTML â nessuna necessitĂ di JavaScript
- Marcatori di dati strutturati Schema.org (ad esempio,
DiscussionForumPosting,ItemList,BreadcrumbList) per aiutare i motori di ricerca a comprendere i tuoi contenuti - Paginazione corretta con link
rel="prev"erel="next"per consentire una scansione completa - Intestazioni
Last-Modifiedsulle pagine dei topic per segnalare la freschezza dei contenuti
Fallback senza JavaScript
Per i browser normali con JavaScript disabilitato, Discourse include anche un tag <noscript> nel layout standard dellâapplicazione. Questo contiene liste di topic e contenuti dei topic renderizzati, garantendo che il sito rimanga accessibile anche senza JavaScript.
Robots.txt e controlli di indicizzazione
Discourse fornisce diverse impostazioni per controllare come i motori di ricerca interagiscono con il tuo sito:
allow_index_in_robots_txt
Questa impostazione del sito (abilitata per impostazione predefinita) controlla se il robots.txt del tuo sito consente la scansione. Quando è disabilitata, il robots.txt negherĂ lâaccesso a tutti i crawler e verrĂ aggiunta unâintestazione X-Robots-Tag: noindex a tutte le risposte.
Lista bianca e lista nera dei crawler
Ă possibile controllare quali crawler sono autorizzati ad accedere al sito utilizzando:
allowed_crawler_user_agentsâ quando impostato, sono consentiti solo i crawler elencati; tutti gli altri vengono bloccati tramiterobots.txtblocked_crawler_user_agentsâ quando impostato, i crawler elencati vengono bloccati mentre tutti gli altri sono consentiti
Robots.txt personalizzato
Gli amministratori possono personalizzare completamente il file robots.txt in /admin/customize/robots. Un robots.txt personalizzato sostituisce interamente quello generato di default.
Percorsi con esclusione predefinita
Per impostazione predefinita, Discourse blocca i crawler dai percorsi non utili per lâindicizzazione, come /admin/, /auth/, /email/, /session, /search e altri. Googlebot ottiene una configurazione piĂš permissiva, bloccando solo i percorsi amministrativi/di autenticazione principali.
Visualizzazione della versione crawler
Ă possibile visualizzare come i motori di ricerca vedono il tuo sito Discourse:
- Installando un plugin del browser che disabilita JavaScript in Chrome o Firefox
- Utilizzando Chrome DevTools per disabilitare JavaScript (istruzioni di Google)
- Modificando la stringa user agent del tuo browser in un crawler noto (ad esempio,
Googlebot) per vedere il layout crawler dedicato