Diese Referenz erklärt, wie öffentliche Discourse-Seiten mit Suchmaschinen wie Google funktionieren und wie die Plattform sicherstellt, dass Inhalte ordnungsgemäß indiziert werden, selbst wenn es sich um eine JavaScript-Anwendung handelt.
Erforderliches Benutzerniveau: Alle Benutzer
Suchmaschinenindizierung von Discourse-Seiten
Discourse ist als JavaScript-Anwendung aufgebaut, wurde jedoch speziell entwickelt, um sicherzustellen, dass Suchmaschinen alle Inhalte auf öffentlichen Websites ordnungsgemäß crawlen und indizieren können.
Wie Discourse Suchmaschinen-Crawler unterstützt
Obwohl Discourse moderne JavaScript für seine interaktiven Funktionen verwendet, implementiert es mehrere Techniken, um sicherzustellen, dass Suchmaschinen alle Inhalte ordnungsgemäß indizieren können:
Dediziertes Crawler-Layout
Discourse erkennt Suchmaschinen-Bots automatisch anhand ihres User Agents mithilfe des Moduls CrawlerDetection. Wenn ein Crawler erkannt wird, liefert Discourse ein vollständig separates, servergerendertes HTML-Layout (`crawler.html.erb) anstelle der normalen JavaScript-Anwendung aus. Dieses Crawler-Layout enthält:
- Vollständig in HTML gerenderte Themeneinhalte und Themenlisten – kein JavaScript erforderlich
- Schema.org-strukturierte Daten-Markups (z. B.
DiscussionForumPosting,ItemList,BreadcrumbList), um Suchmaschinen beim Verständnis Ihrer Inhalte zu helfen - Korrekte Paginierung mit
rel="prev"- undrel="next"-Links für vollständiges Crawling Last-Modified-Header auf Themenseiten, um die Aktualität des Inhalts zu signalisieren
No-JavaScript-Fallback
Für reguläre Browser, bei denen JavaScript deaktiviert ist, enthält Discourse im Standardanwendungs-Layout auch ein \u003cnoscript\u003e-Tag. Dieses enthält gerenderte Themenlisten und Themeneinhalte und stellt sicher, dass die Website auch ohne JavaScript zugänglich bleibt.
Robots.txt und Indexierungssteuerungen
Discourse bietet verschiedene Einstellungen, um zu steuern, wie Suchmaschinen mit Ihrer Website interagieren:
allow_index_in_robots_txt
Diese Site-Einstellung (standardmäßig aktiviert) steuert, ob die robots.txt Ihrer Website das Crawling erlaubt. Wenn sie deaktiviert ist, verbietet die robots.txt allen Crawlern das Crawling und allen Antworten wird ein X-Robots-Tag: noindex-Header hinzugefügt.
Crawler-Allowlist und -Blocklist
Sie können steuern, welche Crawler auf Ihre Website zugreifen dürfen, indem Sie Folgendes verwenden:
allowed_crawler_user_agents– Wenn festgelegt, sind nur die aufgeführten Crawler zugelassen; alle anderen werden überrobots.txtblockiertblocked_crawler_user_agents– Wenn festgelegt, sind die aufgeführten Crawler blockiert, während alle anderen zugelassen sind
Benutzerdefinierte robots.txt
Administratoren können die Datei robots.txt unter /admin/customize/robots vollständig anpassen. Eine angepasste robots.txt überschreibt die standardmäßig generierte Datei vollständig.
Standardmäßig nicht zugelassene Pfade
Standardmäßig blockiert Discourse Crawler von Pfaden, die für die Indizierung nicht nützlich sind, wie z. B. /admin/, /auth/, /email/, /session, /search und andere. Googlebot erhält eine freizügigere Konfiguration, die nur die zentralen Admin-/Authentifizierungspfade blockiert.
Anzeigen der Crawler-Version
Sie können sehen, wie Suchmaschinen Ihre Discourse-Website betrachten, indem Sie:
- Ein Browser-Plugin zur Deaktivierung von JavaScript in Chrome oder Firefox installieren
- Chrome DevTools verwenden, um JavaScript zu deaktivieren (Anweisungen von Google)
- Die User-Agent-Zeichenfolge Ihres Browsers in einen bekannten Crawler (z. B.
Googlebot) ändern, um das dedizierte Crawler-Layout anzuzeigen