Come i siti di Discourse pubblico vengono indicizzati dai motori di ricerca come Google

:bookmark: 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.

:person_raising_hand: 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:

  1. Contenuto dei topic e liste di topic completamente renderizzati in HTML — nessuna necessità di JavaScript
  2. Marcatori di dati strutturati Schema.org (ad esempio, DiscussionForumPosting, ItemList, BreadcrumbList) per aiutare i motori di ricerca a comprendere i tuoi contenuti
  3. Paginazione corretta con link rel="prev" e rel="next" per consentire una scansione completa
  4. Intestazioni Last-Modified sulle 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 tramite robots.txt
  • blocked_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
13 Mi Piace