Übersicht zur SEO-Konfiguration von Discourse (Sitemap / robots.txt)

Discourse verfügt über zahlreiche SEO-Funktionen, die sofort einsatzbereit sind. Dank unserer sinnvollen Standardeinstellungen können sich Community-Manager auf den Aufbau ihrer Community konzentrieren und müssen sich nicht durch die Optimierung für Suchmaschinen ablenken lassen. Dennoch gibt es einige Dinge, die Sie ändern können, einige Dinge, die Sie wissen sollten, und einige allgemeine Tipps und Tricks, die weiter unten aufgeführt sind.

Statische Ansicht für Suchmaschinen

Discourse bietet eine statische HTML-Ansicht ohne JavaScript, um Web-Crawlern zu helfen, Ihre Site schneller zu indexieren. Der Inhalt zwischen der dynamischen und der statischen Ansicht ist identisch, und beim Crawlen der Site durch Suchmaschinen wird nichts weggelassen oder entfernt.

Hier ist ein Vergleich dessen, was ein Benutzer sieht und was eine Suchmaschine sieht:

Themenliste:

Thema:

Vorschau der Crawler-Ansicht

Sie können prüfen, was Discourse an Crawler sendet, ohne JavaScript zu deaktivieren, auf zwei Arten:

  1. URL-Parameter ?print — Fügen Sie ?print an jede Discourse-URL an (z. B. https://yourforum.com/t/some-topic/123?print). Dies erzwingt das Crawler-Layout für jeden Browser, unabhängig vom User-Agent. Es ist der einfachste Weg, zu überprüfen, was Suchmaschinen sehen.

  2. Anfrage-Header Discourse-Render: crawler — Senden Sie diesen HTTP-Header mit jeder Anfrage, um das Crawler-Layout zu erzwingen. Nützlich für programmgesteuerte Audits oder Tests mit curl:

    curl -H "Discourse-Render: crawler" https://yourforum.com/t/some-topic/123
    

Meta-Tags

In Discourse werden die generischen Meta-Tags, die für SEO wesentlich sind, basierend auf dem auf der Seite vorhandenen Inhalt automatisch generiert. Der Title-Tag wird beispielsweise vom Site- oder Themennamen abgeleitet, und die Beschreibung wird aus dem Inhalt des ersten Beitrags generiert. Die Anpassung von Metadaten auf Seitenebene ist jedoch begrenzt. Um diese Werte zu ändern, müssen Sie die Einstellungen oder die Inhaltsfelder, aus denen sie generiert werden, anpassen.

  • Die Site-Einstellungen Titel, Beschreibung und Kurze Site-Beschreibung
  • Die Kategoriennamen
  • Die Titel und Inhalte der Beiträge
  • Und so weiter :technologist:

Meta-Tags für soziale Medien

Discourse generiert automatisch Open Graph- und Twitter (X) Card-Meta-Tags für umfangreiches Teilen in sozialen Medien:

Open Graph-Tags

  • og:site_name, og:type, og:url, og:title, og:description
  • og:image – Konfigurierbar über die Einstellung opengraph_image
  • og:article:section – Kategorie-Breadcrumbs
  • og:article:tag – Thema-Tags

X (ehemals Twitter) Card-Tags

  • twitter:card – “summary” oder “summary_large_image”
  • twitter:title, twitter:description, twitter:image
  • twitter:label1/data1 – Geschätzte Lesezeit
  • twitter:label2/data2 – Anzahl der Likes

Konfigurationseinstellungen

  • opengraph_image – Standard-OG-Bild für das Teilen in sozialen Medien
  • x_summary_large_image – X (ehemals Twitter) großes Card-Bild

URL-Struktur und -Codierung

Nicht-latinische Zeichen und URLs

Discourse entfernt standardmäßig nicht-latinische Zeichen aus Thema-URLs, wenn die Sprache auf EN eingestellt ist. Um dies zu vermeiden, können Sie die Sprache auf die primäre nicht-latinische Sprache ändern oder die Einstellung slug generation method von ASCII auf encoded ändern.

Internationales SEO und hreflang-Tags

Für mehrsprachige Communities unterstützt Discourse hreflang-Tags, die Suchmaschinen dabei helfen, die richtige Sprachversion an die Benutzer auszuliefern. Um dies zu aktivieren, müssen Sie diese drei Einstellungen konfigurieren (Admin → Einstellungen → Lokalisierung):

  1. content_localization_enabled: Aktiviert das System zur Inhaltslokalisierung.
  2. content_localization_supported_locales: Definiert unterstützte Sprachcodes (z. B. en|es|fr).
  3. content_localization_crawler_param: Erforderlich, um <link rel="alternate" hreflang="...">-Tags zu generieren und interne Links für Crawler mit dem tl-Sprachparameter zu ändern (z. B. /t/example-topic/123?tl=es).

Mit diesen aktivierten Einstellungen generiert Discourse alternative Links für jede unterstützte Sprache, was Google und anderen Suchmaschinen hilft, die richtige Sprachversion an die Benutzer auszuliefern.

Subfolder vs. Subdomain-Einrichtung

Discourse bevorzugt Subdomains gegenüber Subfolders aufgrund ihrer technischen Einfachheit. Google hat keine echte Präferenz zwischen den beiden[1], aber Discourse empfiehlt dringend, Subfolder-Einrichtungen zu vermeiden, es sei denn, Sie haben ein tiefes technisches Verständnis.

Wenn Sie Discourse in einem Subfolder ausführen (z. B. example.com/forum/), wird Ihre root-Level-robots.txt von Ihrem Haupt-Webserver verwaltet, nicht von Discourse. Um die korrekte Konfiguration zu erleichtern, stellt Discourse einen JSON-Endpunkt unter /robots-builder.json bereit, der die genauen Disallow-Regeln zurückgibt, die Discourse für Ihren Subfolder-Pfad generieren würde. Sie können dies als Eingabe für ein Skript verwenden, das Ihre serverseitige robots.txt schreibt.

Kanonizierung

Google ist bestrebt, kanonische Versionen von Seiten zu indexieren. In Discourse wird für ein Thema mit mehreren Antworten der kanonische Link (der erste Beitrag) an Google weitergegeben, der dann über die Indexierung entscheidet. Themen mit mehr als 20 Beiträgen werden paginiert, wobei jede Seite ein kanonischer Link ist, der bis zu 20 Beiträge enthält.

Zum Beispiel wäre das kanonische Tag für die letzte Antwort in diesem Thema https://meta.discourse.org/t/try-out-the-new-sidebar-and-notification-menus/238821?page=12.

Einstellung allow_indexing_non_canonical_urls

Die versteckte Site-Einstellung allow_indexing_non_canonical_urls (Standard: true) steuert, ob nicht-kanonische URL-Varianten einen X-Robots-Tag: noindex-Header erhalten. Wenn auf false gesetzt, wird jede Anfrage an eine URL, die sich von der kanonischen URL unterscheidet (z. B. ein direkter Beitragslink wie /t/slug/123/45, wenn die kanonische URL /t/slug/123?page=3 ist), mit einem noindex-Header ausgeliefert.

Eingebettete Themen

Wenn Themen auf externen Websites eingebettet werden, können Sie die Einstellung embed_set_canonical_url verwenden, um die kanonische URL auf den ursprünglichen Einbettungsort zu verweisen. Dies verhindert Probleme mit doppelten Inhalten, wenn dasselbe Thema sowohl auf Ihrem Forum als auch auf der einbettenden Website erscheint.

Schema-Markup

Discourse verwendet umfangreiches schema.org-Markup, um Suchmaschinen zu helfen, Ihren Inhalt zu verstehen. Jeder Inhaltstyp enthält umfangreiche strukturierte Daten, die in Suchergebnissen erscheinen und zur Auffindbarkeit beitragen.

Themen

Verwenden Sie das DiscussionForumPosting-Schema, um den Hauptdiskussionsfaden darzustellen, und schließen Sie Folgendes ein:

  • headline – Der Themennamen
  • datePublished – Wann das Thema erstellt wurde
  • articleSection – Der Kategoriename
  • keywords – Alle Thema-Tags
  • publisher – Informationen zu Ihrer Site/Ihrer Organisation
  • author – Informationen zum ursprünglichen Poster

Beiträge und Antworten

Einzelne Beiträge innerhalb von Themen verwenden das Comment-Schema, einschließlich:

  • author – Beitragsautor mit Name und Profil-Link
  • text – Der Beitragsinhalt
  • datePublished und dateModified – Erstellungs- und Bearbeitungszeitstempel
  • interactionStatistic – Like-Anzahl unter Verwendung von InteractionCounter mit LikeAction-Typ

Breadcrumbs

Die Kategoriennavigation verwendet das BreadcrumbList-Schema, das in Suchergebnissen erscheint und den Pfad der Kategoriehierarchie anzeigt. Jeder Breadcrumb enthält:

  • itemListElement – Einzelne Kategorie-Links
  • position – Reihenfolge in der Hierarchie
  • Kategorie-Farben zur visuellen Unterscheidung

Kategorien und Themenlisten

Kategorienseiten und Themenlistenansichten verwenden das ItemList-Schema:

  • Geordnet mit ItemListOrderDescending für chronologische Sortierung
  • Enthält Positions-Metadaten für jedes Element
  • Hilft Suchmaschinen, die Inhaltsstruktur und -hierarchie zu verstehen

Homepage

Die Site-Homepage enthält JSON-LD-strukturierte Daten für WebSite mit SearchAction, wodurch die Google-Suchbox direkt in den Suchergebnissen für Ihre Site angezeigt wird.

Über-Seite

Ihre Über-Seite verwendet das About-Seitenschema mit Organization-Informationen, was Suchmaschinen hilft, die Identität und den Zweck Ihrer Community zu verstehen.

Sitemap

Discourse integriert einen Sitemap-Index unter /sitemap.xml, der standardmäßig über die Einstellung enable sitemap aktiviert ist. Dies erleichtert die Indexierung durch Suchmaschinen. Es gibt auch andere Sitemaps:

  1. Aktuelle Sitemap (/sitemap_recent.xml) – Themen, die in den letzten 3 Tagen aktualisiert wurden (1 Stunde gecacht)
  2. News-Sitemap (/news.xml) – Themen, die in den letzten 72 Stunden im Google News-Format aktualisiert wurden (5 Minuten gecacht), nützlich für nachrichtenorientierte Communities
  3. Paginierte Sitemaps – Vollständiges Verzeichnis der Themen, auf Seiten aufgeteilt (24 Stunden gecacht)

Sitemaps werden stündlich von einem geplanten Job automatisch neu generiert und enthalten Zeitstempel der letzten Änderung. Sie können die Anzahl der Themen pro Sitemap-Seite über die Einstellung sitemap_page_size konfigurieren (Standard: 10.000).

Web-Crawler

Web-Crawler, auch bekannt als Robots oder Bots, sind für das Indexieren von Webseiten und die Auffindbarkeit Ihres Inhalts unerlässlich. Discourse verwendet ausgefeilte Crawler-Erkennung, um optimierte Inhalte bereitzustellen und den Bot-Verkehr effektiv zu verwalten.

Crawler-Erkennung

Discourse erkennt und verarbeitet automatisch verschiedene Arten von Crawlern, einschließlich:

  • Suchmaschinen: Googlebot, Bingbot, DuckDuckBot und andere
  • Soziale Medien: Facebookbot, Twitterbot, LinkedInBot, Discordbot
  • KI-Crawler: GPTBot, ClaudeBot, Anthropic-AI, BrightBot
  • Archivdienste: Wayback Machine, Archive.org
  • Überwachungsdienste: Lighthouse, Google Inspection Tool

Wenn ein Crawler erkannt wird, liefert Discourse optimierte Inhalte und fügt spezielle Antwort-Header hinzu:

  • X-Discourse-Crawler-View: true – Zeigt Crawler-optimierte Inhalte an
  • Last-Modified-Header – Ermöglicht effizientes erneutes Crawlen

Verwaltung des Crawler-Verkehrs

Einige Crawler können übermäßig enthusiastisch sein und Ihr Forum mit vielen Anfragen bombardieren. Discourse bietet mehrere Einstellungen zur Verwaltung des Crawler-Verhaltens:

  • blocked_crawler_user_agents – Blockieren Sie bestimmte Crawler vollständig (Standard-Blockliste enthält: mauibot, semrushbot, ahrefsbot, blexbot, seo spider)
  • slow_down_crawler_user_agents – Drosseln Sie Crawler, anstatt sie zu blockieren (Standard enthält KI-Crawler wie GPTBot, ClaudeBot)
  • allowed_crawler_user_agents:warning: Gefahr: Das Festlegen dieser Einstellung blockiert ALLE Crawler, die nicht explizit aufgelistet sind, einschließlich Googlebot. Verwenden Sie dies nur, wenn Sie das Crawlen auf eine bestimmte Gruppe von Bots beschränken möchten. Es hat Vorrang vor blocked_crawler_user_agents. Lassen Sie es leer, es sei denn, Sie haben einen bestimmten Grund, es zu verwenden.

Automatische noindex-Header

Zusätzlich zur globalen Einstellung allow_index_in_robots_txt fügt Discourse automatisch X-Robots-Tag: noindex-Antwort-Header zu mehreren Seitentypen hinzu:

  • Suchseiten – Immer noindexed (Suchergebnisse sind als indizierte Seiten nicht nützlich)
  • Badge-Seiten – Immer noindexed
  • Gruppenseiten – Immer noindexed
  • Benutzerprofilseiten – Immer noindexed
  • Tag-Filter-/Schnittmengen-Seiten – Noindexed (Tag-Index- und Anzeigeseiten sind ausgenommen)
  • RSS/Atom-Feeds – Immer noindexed

Diese werden auf Controller-Ebene angewendet und sind nicht konfigurierbar. Sie stellen sicher, dass flüchtige, wenig wertvolle oder doppelte Inhaltseiten die Indizes der Suchmaschinen nicht verschmutzen.

Crawler-Analytik

Administratoren können die Crawler-Aktivität unter Admin → Berichte → Web-Crawler überwachen, um zu sehen, welche Bots auf Ihre Site zugreifen und wie häufig.

Zusätzliche SEO-Funktionen

KI-Crawler-Leitfaden durch llms.txt

Discourse unterstützt die llms.txt-Konvention, die eine standardisierte Methode zur Steuerung von LLM-basierten Crawlern (wie denen, die von KI-Assistenten verwendet werden) bezüglich des Inhalts und der Struktur Ihrer Site bietet.

Um es zu aktivieren:

  1. Bereiten Sie eine .txt- oder .md-Datei (max. 512 KB) vor, die Ihre Site für LLM-Crawler beschreibt
  2. Laden Sie sie über die Site-Einstellung llms_txt hoch (Admin → Einstellungen → Sicherheit)
  3. Sie wird unter https://yourforum.com/llms.txt bereitgestellt

:information_source: Die llms.txt unterscheidet sich von robots.txt und ist speziell dafür entwickelt, LLM-basierte Crawler zu leiten. Anstatt Zugriffsregeln bereitzustellen, bietet sie semantischen Kontext…sie beschreibt, was Ihre Site ist, welchen Inhalt sie enthält und wie ein KI-Assistent sie verstehen und verwenden sollte. Denken Sie an robots.txt als etwas, das Bots sagt „wo sie hingehen können“, und an llms.txt als etwas, das KI sagt „was sie betrachtet und warum es wichtig ist“.

OpenSearch-Integration

Discourse bietet eine OpenSearch-Beschreibung unter /opensearch.xml, die die Browser-Suche-Integration ermöglicht. Benutzer können Ihr Forum direkt zur Liste der Suchmaschinen in ihrem Browser hinzufügen.

RSS-Feeds

Jedes Thema hat einen RSS-Feed unter /t/{slug}/{id}.rss verfügbar, der Folgendes enthält:

  • Themennamen und Beschreibung
  • Alle Beiträge/Antworten mit Autorinformationen
  • Veröffentlichungsdaten und letzte Aktualisierungszeiten
  • Kategorien und Tags

:warning: Hinweis: RSS-Feed-Pfade (/t/*/*.rss, /c/*.rss) sind in robots.txt für den allgemeinen *-Wildcard-Agent verboten, um die Indexierung doppelter Inhalte durch die meisten Crawler zu verhindern. Googlebot ist ausdrücklich von dieser Einschränkung ausgenommen und kann auf RSS-Feeds zugreifen.

Google-Site-Verifizierung

Verwenden Sie die Einstellung google_site_verification_token, um Google Search Console-Verifizierungs-Meta-Tags hinzuzufügen, ohne Themenvorlagen bearbeiten zu müssen.

Progressive Web App (PWA)

Discourse generiert ein Web-App-Manifest unter /manifest.json für die Entdeckung mobiler Apps und Installationsaufforderungen.

Migrationen und URL-Umleitungen

Die Permalink-Funktion wird verwendet, um alte URLs umzuleiten, mit dem Ziel, SEO zu erhalten, “Seite nicht gefunden”-Fehler zu verhindern und Suchmaschinen mit den richtigen Metadaten für eine einfachere Indexierung zu unterstützen.

Wenn Ihre Community-Site von unserem Team zu Discourse migriert wird, sind die URL-Umleitungen enthalten, es sei denn, es gibt gültige Gründe, dies nicht zu tun.

Wenn Sie eines der bestehenden Import-Skripts verwenden, sollten Sie sicherstellen, dass das Skript dies behandelt[2]. Sie können Permalinks manuell über Ihr Admin-Panel unter AnpassenPermalinks hinzufügen.

De-Indexierungsmethoden

Um Seiten aus Googles Index zu entfernen, können Sie entweder Inhalte entfernen oder den Zugriff auf eine Seite blockieren. Je nach Ihren Anforderungen können Sie Ihre gesamte Site privat machen[3]. Sie können Themen ausschließen, indem Sie sie löschen oder in eingeschränkten Kategorien platzieren. Versteckte Themen werden standardmäßig nicht indiziert, können aber indiziert werden, wenn es irgendwo einen öffentlichen Link gibt, der darauf verweist.

Für eine dauerhafte Entfernung ist die Verwendung des Removals-Tools in der Google Search Console der Schlüssel, um Seiten aus den Suchergebnissen fernzuhalten. Erfahren Sie mehr unter Remove information on your website from Google - Search Console Help


  1. ↩︎

  2. Die Suche nach der Permalink-String im Import-Skript sollte Ihnen diese Information geben. ↩︎

  3. Suchen Sie nach der Einstellung “Anmeldung erforderlich” ↩︎

21 „Gefällt mir“