Der Canonical-Link
Zum Öffnen mancher Internet-Adressen gibt es mehrere Wege. Die typischste Variante ist die freie Wahl zwischen
https://domain.tld
https://domain.tld/
https://domain.tld/index[ |.html|.php]
Die Brower regeln das von selbst, weshalb das unauffällig bleibt. Bei der Verknüpfung zu solchen Dateien kann es aus verschiedenen Gründen auf einer Webseite (oder von außen) verschiedene Varianten des Links für die gleiche Adresse geben.
Google findet das blöd.
Der Grund ist nachvollziehbar: Statt drei verschiedener Einträge in der Trefferliste, die letztendlich auf das gleiche Ergebnis zeigen, will Google einen Treffer anzeigen. Statt einfach selbst eine Entscheidung zu treffen (z.B. den kürzesten), soll die Seite erklären, welchen „Lieblingslink“ sie gerne hätte.
Das erfolgt mit einem HEADER-Eintrag:
<link rel="canonical" href="https://domain.tld/unterverzeichnis/" />
Welche der möglichen Varianten (s.o.) dort eingetragen wird, ist Google egal. Zweckmäßig ist natürlich der Pfad, der (bevorzugt) auf der Seite für eigene Verweise verwendet wird.
Für neue Projekte schlägt
<link rel="canonical" href="' . $base .'%%%canonical%%%" />
Für eine PHP getriebene Domain kann „$base“ vorab mit
$base = $_SERVER['REQUEST_SCHEME'] . '://'. $_SERVER['SERVER_NAME'];
erzeugt werden. Das gewährleistet einen korrekten Eintrag unabhängib davon, auf welcher Domain die Seite tatsächlich liegt.
Für statische Seiten muss das korrekte Protokoll und die domain.tld stattdessen eingetragen werden.
Bei Index-Dateien wird mit der Variable %%%filewithoutext%%%
ein vollständiger Pfad mit Dateiname eingetragen. Das kann optional mit %%%canonical%%%
überschrieben werden. In sehr speziellen Fällen kann es darüber hinaus zweckmäßig sein, den Standardeintrag mit einer völlig anderen Adresse zu synchronisieren, wenn beispielsweise eine alte Seite zwar noch erreichbar ist, Google jedoch eine neue/andere bevorzugen soll.