Gitea: Suchmaschinenindexierung stoppen

2 Minuten Lesezeit

Nach ewigen Zeiten habe ich nur zum Spaß mal wieder einen Ausflug auf die Google Search Console gemacht. Normalerweise interessiert die mich überhaupt nicht, weil ich selbst Google gar nicht nutze und davon ausging, dass die Suchmaschinen ihre Arbeit aus Eigeninteresse schon gut machen würden.

Ich war etwas irritiert, als ich feststellte, dass es das Gros meiner Seiten nicht mal durch den Indexer geschafft hat.

Das Problem

Wie sollen denn Leute meine Webpräsenz finden? Selbst wenn sie die korrekten Suchbegriffe wüssten, würden sie über Google kaum etwas angezeigt bekommen. Immerhin stand klar drin, dass keiner meiner Blogartikel im Indexer vorkam. Auf meiner Gitea-Instanz hingegen waren mehrere Tausend Seiten dem Indexer bekannt. Ein klares Missverhältnis. Wieso überhaupt erzeugt Gitea ein so hohes Dateiaufkommen?

Image: Google Search console view for git.schallbert.de. Thousands of pages are crawled that a real user will never be interested in.

Googles crawler (ein Programm, welches das Netz nach Inhalten durchsucht und für die Suche indexierbar macht) findet anscheinend jeden noch so kleinen Commit in öffentlichen Repositories sowie die dahinter liegenden Dateien. Auch Automationsläufe und andere Metadaten werden indexiert.

Das ist natürlich vollkommen unnötig und verbraucht mir an einer Stelle Energie, die ich viel lieber in der Präsentation meines Blogs hätte. Also muss eine Lösung her.

Lösungsansätze

Mir fielen direkt ein paar Möglichkeiten ein:

  • Den Crawler für jedes Repository so konfigurieren, dass nur die oberste Ordnerebene durchsucht wird.
  • Suchindexierung für git.schallbert.de komplett abschalten.
  • Per Search Console so lange Korrekturen fahren, bis der Indexer auf meinen Blogbeiträgen korrekte Zuordnungen anzeigt.

Die naheliegendste Lösung für mich war, den Indexer für meine Gitea-Instanz komplett abzuschalten. Korrekturschleifen greifen bei Googles Crawler erst Tage oder Wochen später und waren mir zu langwierig. Eine eigene robots.txt für jedes Repository hielt ich für zu aufwändig.

Meine Umsetzung

Hierfür nahm ich die Gitea-Dokumentation zur Hand. Der Vorschlag mit einer robots.txt leuchtete mir sofort ein, ebenso ihr Inhalt:

User-agent: *
Disallow: /

Hiermit wird Crawlern von jedem Anbieter * gesagt, dass ab dem Stammverzeichnis / überhaupt nicht indexiert werden soll.

Leider nur war mir überhaupt nicht klar, wie Gitea diese Datei in seiner Instanz bereitstellt:

To make Gitea serve a custom robots.txt (default: empty 404) for top level installations, create a file with path public/robots.txt in the custom folder or CustomPath.

Giteas Konfigurationsverzeichnis

Also probierte ich ein Wenig herum. Erstellte mal einen public-Ordner mit entsprechender Datei, dann einen custom-Ordner auf verschiedenen Ebenen innerhalb der Gitea-Ordnerstruktur. Jedes mal startete ich den Container neu und schaute nach, ob die robots-Datei auch auf dem Server erschien.

Image: Where I put robots.txt in Gitea's folder tree Nichts.

Doch dann löste ich mich von den Ordnernamen und packte die Datei schlicht in das Konfigurationsverzeichnis von Gitea - die niedrigste Ebene, auf der gitea als Ordnername schon gar nicht mehr vorkommt. Und dies war die Lösung.

Test

Nach Neustart konnte ich die Datei im Browser erfolgreich anzeigen.

Image: Browser successfully loaded my robots.txt for the Gitea instance Inzwischen beginnt auch Google, die unerwünschten Seiten aus dem Indexer zu entfernen. Meine Blogartikel werden über die nächsten Wochen hoffentlich auch in der Google-Suche verfügbar.