Kurz erklärt
Ein Canonical Tag (<link rel="canonical">) ist ein HTML-Element, das Suchmaschinen die bevorzugte Version einer Seite mitteilt. Wenn mehrere URLs denselben oder sehr ähnlichen Inhalt zeigen – durch Parameter, Session-IDs, Paginierung oder Druckversionen – konsolidiert der Canonical Tag alle Ranking-Signale auf eine einzige URL.
Problem: Duplicate Content entsteht leicht
- E-Commerce:
/produkt?color=rot&size=m&sort=preis
- Session-IDs:
/seite?sessionid=abc123
- Paginierung:
/artikel vs. /artikel?page=2
- WWW vs. Non-WWW:
www.example.com vs. example.com
- HTTP vs. HTTPS:
http:// vs. https://
- Trailing Slash:
/seite vs. /seite/
- Druckversionen:
/artikel vs. /artikel/print
Ohne Canonical Tags: Google indexiert alle Varianten, verdünnt Ranking-Signale.
Mit Canonical Tags: Alle Signale fließen zur Original-Version.
Canonical Tag Syntax
HTML im <head>:
<link rel="canonical" href="https://www.example.com/produkt" />
HTTP-Header (für PDFs, etc.):
Link: <https://www.example.com/produkt>; rel="canonical"
Sitemap-Integration:
Nur Canonical-URLs in XML-Sitemap aufnehmen – verstärkt das Signal.
Self-Referencing Canonicals
Jede Seite sollte auf sich selbst zeigen:
<!-- Auf https://example.com/seite -->
<link rel="canonical" href="https://example.com/seite" />
Warum?
- Verhindert versehentliche Parameter-URLs
- Definiert explizit die bevorzugte URL-Form (www, HTTPS, Trailing Slash)
- Best Practice laut Google
Canonical vs. 301 Redirect
| Aspekt | Canonical Tag | 301 Redirect |
|---|
| Nutzer-Erfahrung | Sieht ursprüngliche URL | Wird zur Ziel-URL geleitet |
| Suchmaschinen | Sehen alle URLs, indexieren Canonical | Sehen nur Ziel-URL |
| Use Case | Absichtliche Duplikate (Filter, Druck) | Permanente URL-Änderung |
| PageRank-Transfer | 90-99% | 90-99% |
Faustregel:
- Canonical: Nutzer sollen verschiedene URLs sehen können (Filter, Sortierung)
- 301: URL ist falsch/veraltet, alle sollen neue URL verwenden
Häufige Canonical-Szenarien
1. E-Commerce-Filter & Sortierung
Problem: /schuhe?color=rot&size=42&sort=preis erzeugt hunderte URLs
Lösung: Alle auf Basis-Kategorie kanonisieren
<!-- Auf /schuhe?color=rot&size=42 -->
<link rel="canonical" href="https://example.com/schuhe" />
Alternative: Parameter in Google Search Console als “No Effect” markieren.
2. Paginierung
Alte Methode (veraltet): rel="prev" und rel="next"
Moderne Methode: Jede Seite kanonisiert auf sich selbst
<!-- Auf /blog?page=2 -->
<link rel="canonical" href="https://example.com/blog?page=2" />
Alternative “View All”: Alle Seiten auf /blog/all kanonisieren (nur wenn “All”-Seite existiert).
3. WWW vs. Non-WWW
Wähle eine Version, kanonisiere konsequent:
<!-- Auf http://example.com (ohne www) -->
<link rel="canonical" href="https://www.example.com/" />
Zusätzlich: 301-Redirect von http:// zu https://www einrichten.
4. Druckversionen
<!-- Auf /artikel/print -->
<link rel="canonical" href="https://example.com/artikel" />
5. AMP & Mobile
<!-- Auf AMP-Version -->
<link rel="canonical" href="https://example.com/artikel" />
<!-- Auf Desktop-Version -->
<link rel="amphtml" href="https://example.com/artikel/amp" />
Canonical Tag Best Practices
✓ Absolute URLs verwenden: https://example.com/seite statt /seite
✓ Lowercase URLs: example.com/Seite und example.com/seite sind verschieden
✓ Protokoll einheitlich: Immer HTTPS (wenn verfügbar)
✓ Trailing Slash konsistent: Entweder immer mit / oder immer ohne
✓ Self-referencing setzen: Jede Seite kanonisiert auf sich selbst
✓ Nur 1 Canonical pro Seite: Mehrere Canonicals verwirren Google
Häufige Fehler
❌ Canonical auf 404-Seite: Ziel-URL muss erreichbar sein (200 OK)
❌ Relative URLs: /seite statt https://example.com/seite
❌ Canonical-Ketten: A → B → C (Google folgt nur 1 Hop)
❌ Widersprüchliche Signale: Canonical sagt A, Sitemap enthält B
❌ JavaScript-Canonical nachträglich: Sollte im HTML-Source stehen
❌ Mehrere Canonicals: Nur ein <link rel="canonical"> pro Seite
Google’s Canonical-Behandlung
Canonical ist ein Hinweis, kein Befehl: Google kann ignorieren, wenn:
- Canonical auf andere Domain zeigt (Cross-Domain)
- Inhalte stark abweichen
- Canonical-Ketten zu komplex sind
Google wählt selbst Canonical: Wenn kein Tag gesetzt ist oder Signale widersprüchlich:
- HTTPS > HTTP
- WWW > Non-WWW (oder umgekehrt, je nach Historie)
- Kürzere URL bevorzugt
- URL mit mehr Backlinks
Search Console zeigt gewähltes Canonical: “URL Inspection” → “Google-selected Canonical”
Canonical Tag validieren
1. Im HTML-Source prüfen:
View Source → Suche nach rel="canonical"
2. Browser DevTools:
Elements-Tab → <head> → <link rel="canonical">
3. Google Search Console:
URL Inspection Tool → “Google-selected Canonical” vs. “User-declared Canonical”
4. Screaming Frog SEO Spider:
Crawl → “Canonicals”-Tab → “Canonical Tag vs. Canonical URL”
5. HTTP-Header prüfen:
curl -I https://example.com/seite | grep -i canonical
Canonical für JavaScript-Websites
Problem: Canonical wird nachträglich per JavaScript eingefügt
Lösung: Server-side Rendering oder Pre-rendering
Astro (optimal): Canonical im Template, wird im HTML-Source gerendert
---
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
---
<link rel="canonical" href={canonicalURL} />
Cross-Domain Canonicals
Syndizierter Content: Gastbeiträge, wiederveröffentlichte Artikel
Partner-Seite veröffentlicht Ihren Artikel:
<!-- Auf https://partner.com/artikel -->
<link rel="canonical" href="https://ihredomain.com/original-artikel" />
Wichtig: Nur bei echtem Duplicate Content – nicht für ähnliche Inhalte.
Nächste Schritte
- Self-referencing Canonicals auf allen Seiten setzen
- E-Commerce: Filter-URLs auf Basis-Kategorie kanonisieren
- WWW/Non-WWW und HTTP/HTTPS konsequent kanonisieren
- Search Console URL Inspection: “User-declared” vs. “Google-selected” vergleichen
- Screaming Frog Crawl: Canonical-Konsistenz prüfen