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
- Konsistenz wahren: Verwende X-Robots-Tag und Meta-Robots-Tags nicht gleichzeitig für dieselben Direktiven
- Testen: Überprüfe die Implementierung mit Tools wie Google Search Console
- Dokumentation: Führe Buch über alle X-Robots-Tag Implementierungen
- 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
- Google Search Console: Indexierungsstatus überwachen
- HTTP-Header-Checker: Online-Tools zur Header-Überprüfung
- Browser-Entwicklertools: Network-Tab für Header-Inspektion
- 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
- Coverage-Report: Überprüfe, ob geschützte Seiten nicht indexiert werden
- Crawl-Errors: Überwache Crawling-Probleme
- 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?