Wie Public Discourse-Seiten von Suchmaschinen wie Google indexiert werden

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

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

  1. Vollständig in HTML gerenderte Themeneinhalte und Themenlisten – kein JavaScript erforderlich
  2. Schema.org-strukturierte Daten-Markups (z. B. DiscussionForumPosting, ItemList, BreadcrumbList), um Suchmaschinen beim Verständnis Ihrer Inhalte zu helfen
  3. Korrekte Paginierung mit rel="prev"- und rel="next"-Links für vollständiges Crawling
  4. 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 über robots.txt blockiert
  • blocked_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
13 „Gefällt mir“