X-Robots-Tag

Was ist das X-Robots-Tag?

Das X-Robots-Tag ist ein HTTP-Header, der es Website-Betreibern ermöglicht, Suchmaschinen-Crawlern präzise Anweisungen zur Indexierung und zum Crawling von Webseiten zu geben. Im Gegensatz zu Meta-Robots-Tags, die im HTML-Head einer Seite stehen, wird das X-Robots-Tag auf Server-Ebene als HTTP-Response-Header übertragen.

Vorteile des X-Robots-Tags

Das X-Robots-Tag bietet mehrere entscheidende Vorteile gegenüber herkömmlichen Meta-Robots-Tags:

  • Server-Level-Kontrolle: Funktioniert auch bei nicht-HTML-Dateien (PDFs, Bilder, Videos)
  • Frühe Verarbeitung: Bot erhalten die Anweisungen bereits beim HTTP-Response
  • Flexibilität: Kann dynamisch basierend auf verschiedenen Bedingungen gesetzt werden
  • Zuverlässigkeit: Weniger anfällig für HTML-Parsing-Fehler

Syntax und Implementierung

Grundlegende Syntax

X-Robots-Tag: [directive1], [directive2], [directive3]

Häufige Direktiven

Direktive
Beschreibung
Anwendungsfall
noindex
Verhindert Indexierung der Seite
Testseiten, interne Bereiche
nofollow
Verhindert Link-Following
User-generated Content
noarchive
Verhindert Caching
Dynamische Inhalte
nosnippet
Verhindert Snippet-Anzeige
Vertrauliche Inhalte
noodp
Verhindert ODP-Beschreibungen
Kontrollierte Meta-Descriptions
notranslate
Verhindert Übersetzungen
Sprachspezifische Inhalte

Implementierungsbeispiele

Apache (.htaccess)

# Einzelne Seite
<Files "test.html">
    Header set X-Robots-Tag "noindex, nofollow"
</Files>

# Verzeichnis-weit
<Directory "/admin">
    Header set X-Robots-Tag "noindex, nofollow"
</Directory>

# Dateityp-spezifisch
<FilesMatch "\.(pdf|doc)$">
    Header set X-Robots-Tag "noindex"
</FilesMatch>

Nginx

# Einzelne Location
location /admin/ {
    add_header X-Robots-Tag "noindex, nofollow";
}

# Dateityp-spezifisch
location ~* \.(pdf|doc)$ {
    add_header X-Robots-Tag "noindex";
}

PHP (Dynamisch)

<?php
// Bedingte X-Robots-Tag Setzung
if ($user->isLoggedIn() && $user->isAdmin()) {
    header('X-Robots-Tag: noindex, nofollow');
}

// Für bestimmte Seiten
if (strpos($_SERVER['REQUEST_URI'], '/test/') !== false) {
    header('X-Robots-Tag: noindex');
}
?>

Kombinationen und Bewährte Praktiken

Häufige Kombinationen

Kombination
Zweck
Anwendungsbereich
noindex, nofollow
Vollständige Ausschluss
Admin-Bereiche, Testseiten
noindex, noarchive
Keine Indexierung, kein Cache
Dynamische, zeitkritische Inhalte
nofollow, noarchive
Links folgen, aber nicht cachen
Externe Verlinkungen
noindex, nosnippet
Keine Indexierung, keine Snippets
Vertrauliche Dokumente

Best Practices

  1. Konsistenz wahren: Verwende X-Robots-Tag und Meta-Robots-Tags nicht gleichzeitig für dieselben Direktiven
  2. Testen: Überprüfe die Implementierung mit Tools wie Google Search Console
  3. Dokumentation: Führe Buch über alle X-Robots-Tag Implementierungen
  4. Monitoring: Überwache die Auswirkungen auf das Crawling-Verhalten

Crawler-spezifische Direktiven

Google-spezifische Direktiven

X-Robots-Tag: googlebot: noindex, nofollow
X-Robots-Tag: googlebot-image: noindex

Bing-spezifische Direktiven

X-Robots-Tag: bingbot: noindex
X-Robots-Tag: msnbot: nofollow

Allgemeine Crawler-Direktiven

X-Robots-Tag: noindex, nofollow
X-Robots-Tag: googlebot: noindex, bingbot: nofollow

Häufige Fehler und Lösungen

Fehler 1: Doppelte Direktiven

Problem:

X-Robots-Tag: noindex, noindex, nofollow

Lösung:

X-Robots-Tag: noindex, nofollow

Fehler 2: Falsche Syntax

Problem:

X-Robots-Tag: "noindex, nofollow"

Lösung:

X-Robots-Tag: noindex, nofollow

Fehler 3: Leerzeichen in Direktiven

Problem:

X-Robots-Tag: no index, no follow

Lösung:

X-Robots-Tag: noindex, nofollow

Testing und Validierung

Tools zur Überprüfung

  1. Google Search Console: Indexierungsstatus überwachen
  2. HTTP-Header-Checker: Online-Tools zur Header-Überprüfung
  3. Browser-Entwicklertools: Network-Tab für Header-Inspektion
  4. cURL-Befehle: Kommandozeilen-Tests

cURL-Test-Beispiel

curl -I https://example.com/admin/
# Überprüfe X-Robots-Tag in der Response

Monitoring und Analytics

Wichtige Metriken

  • Crawl-Rate: Wie oft werden geschützte Bereiche gecrawlt?
  • Indexierungs-Status: Werden X-Robots-Tag Direktiven befolgt?
  • Fehler-Rate: Gibt es Parsing-Fehler bei den Headern?

Google Search Console Monitoring

  1. Coverage-Report: Überprüfe, ob geschützte Seiten nicht indexiert werden
  2. Crawl-Errors: Überwache Crawling-Probleme
  3. Sitemaps: Stelle sicher, dass geschützte URLs nicht in Sitemaps stehen

Erweiterte Anwendungsfälle

Dynamische X-Robots-Tags

<?php
// Basierend auf User-Agent
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent, 'Googlebot') !== false) {
    header('X-Robots-Tag: noindex');
}

// Basierend auf IP-Adresse
$clientIP = $_SERVER['REMOTE_ADDR'];
if (in_array($clientIP, $blockedIPs)) {
    header('X-Robots-Tag: noindex, nofollow');
}
?>

Content-Management-System Integration

WordPress:

// In functions.php
add_action('send_headers', function() {
    if (is_admin() || is_user_logged_in()) {
        header('X-Robots-Tag: noindex, nofollow');
    }
});

Drupal:

// In template.php
function theme_preprocess_html(&$variables) {
    if (arg(0) == 'admin') {
        drupal_add_http_header('X-Robots-Tag', 'noindex, nofollow');
    }
}

Checkliste für X-Robots-Tag Implementation

  • [ ] Ziel definiert: Welche Seiten sollen geschützt werden?
  • [ ] Direktiven gewählt: Welche X-Robots-Tag Direktiven sind nötig?
  • [ ] Server-Konfiguration: Apache/Nginx richtig konfiguriert?
  • [ ] Testing durchgeführt: Funktioniert die Implementation?
  • [ ] Monitoring eingerichtet: Google Search Console überwacht?
  • [ ] Dokumentation erstellt: Alle Implementierungen dokumentiert?
  • [ ] Team informiert: Alle Beteiligten wissen über die Änderungen Bescheid?

Verwandte Themen