PHP gezielt für SEO nutzen

Mit der Programmiersprache PHP lassen sich große und anspruchsvolle Online-Projekte umsetzen. Mindestens genauso so gut eignet sich die Sprache aber auch für kleine Projekte und die Entwicklung einfacher Skripte.
Oft ist PHP auch bei der Umsetzung von SEO-Maßnahmen eine große Hilfe. Denn mit PHP lassen sich unter anderem die URI der aufgerufenen Seite ermitteln (eine URI ist die URL ohne den vorangestellten Domainnamen) sowie der User-Agent vom Webbrowser des Nutzers abfragen.
Über den User-Agent lässt sich ermitteln, mit welchem Webbrowser und mit welchem Betriebssystem ein Nutzer unterwegs ist. Auch lassen sich zusätzliche Informationen auslesen, beispielsweise verwendet der Google-Bot den Zusatz “Googlebot”.
Daneben lässt sich die IP-Adresse des Besuchers herausfinden. Man kann sie beispielsweise verwenden, um unerwünschte Bots auszusperren, aber auch für Geoblocking.

PHP und Cloaking
Das in diesem Beitrag vermittelte Wissen lässt sich übrigens auch für Cloaking nutzen. Davon raten wir jedoch ausdrücklich ab. Wir haben oft erlebt, wie sich Leute mit Cloaking auf die Nase gelegt haben, denn irgendwann kommt es immer raus. Also lasst es einfach. 😉

Wer PHP für SEO einsetzt, kommt um eine bekannte Variable nicht herum: $_SERVER. Sie ist der Dreh- und Angelpunkt, wenn man die URI, den User-Agent, oder die IP-Adresse ermitteln möchte.
Damit PHP-Skripte ausgeführt werden können, muss auf dem Webserver PHP installiert sein. Das ist heute bei fast jedem Webserver der Fall, im Zweifel reicht eine kurze Mail an den Hosting-Provider, um mehr zu erfahren.
PHP-Code lässt sich oft bequem in bestehenden HTML-Quellcode einbinden, oder man lagert ihn in eine separate Datei aus.
Damit PHP-Code als solcher erkannt und interpretiert wird, muss der Code-Abschnitt mit einem <?php begonnen und mit ?> wieder geschlossen werden:
<?php // hier kommt PHP-Code hin ?>

Bei manchen Webservern spielt zusätzlich die Dateiendung noch eine Rolle. Wenn PHP-Code in einer Datei mit der Dateiendung .html nicht ausgeführt wird, solltet Ihr die Endung einfach mal in .php umbenennen und testen, ob es dann funktioniert.

Auf geht´s!

Kommen wir zu unserem ersten praktischen Beispiel. Stellt Euch vor, Ihr habt eine Unterseite namens “Produkte”. Sie liegt im Unterordner “/produkte/”. Eure Website ist dynamisch aufgebaut und auf allen Seiten wird derselbe Title und dieselbe Description ausgespielt, was SEO-technisch natürlich suboptimal ist. Der nachfolgende Codeschnipsel spielt für diese Unterseite individuelle Tags aus:

<?php if ($_SERVER["REQUEST_URI"]=="/produkte/") { ?>
<title>Unsere Produkte</title>
<meta name="description" content="Hier finden Sie eine Übersicht über unsere Produkte!">
<?php } ?>

Auch Canonical-Tags lassen sich mit PHP gut einspielen, wenn eine Seite unter mehreren URLs aufrufbar ist:

<?php if ($_SERVER["REQUEST_URI"]=="/produkte/schwingschleifer-modell-a.html" OR $_SERVER["REQUEST_URI"]=="/sonderangebote/schwingschleifer-mod-a.html") { ?>
<?php } ?>

REQUEST_URI-Abfragen kann man natürlich auch anders einsetzen, beispielsweise so:

<?php if ($_SERVER["REQUEST_URI"]=="/produkte/") { echo "Sie befinden sich auf der 'Produkte'-Seite"; } ?>

Der User-Agent und die IP-Adresse

Kommen wir zum User-Agent. Über ihn kann man, wie bereits erwähnt, Informationen zur technischen Ausstattung des Endgeräts des Nutzers auslesen, darunter Informationen zum Betriebssystem und zum Webbrowser. Nachfolgend die aktuellen User-Agent-Strings des Google- und Bing-Bots:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
Mit dem folgenden Skript lässt sich erkennen, ob gerade der BingBot die eigenen Seiten besucht:

<?php if (stripos($_SERVER["HTTP_USER_AGENT"], "bingbot")>0) {
echo "Ach, Sie sind also der BingBot!";
}
?>

Gegen seriöse Suchmaschinen haben wir natürlich nichts, aber es gibt auch eine andere Seite. Stellt Euch vor, dass übermäßig viel Traffic auf Euren Seiten von unbekannten und nicht erwünschten Bots herrührt. Stellen wir uns einen Bot vor, der den frei erfundenen Namen “DarkHackingBot” trägt und diesen auch noch in seinem User-Agent angibt. Mit dem folgenden PHP-Code könnt Ihr ihn von Euren Seiten aussperren:

<?php if (stripos($_SERVER["HTTP_USER_AGENT"], "darkhackingbot")>0) {
exit;
}
?>

Weil sich böse Bots aber gerne tarnen, muss man sie häufig über ihre IP-Adresse erkennen und blockieren. Die Blockierung von IP-Adressen sollte im Idealfall serverseitig eingerichtet werden, aber im Alltag funktioniert das nicht immer tadellos. Nehmen wir an, der “DarkHackingBot” ist unter der imaginären IP-Adresse 88.290.1.22 unterwegs (der Adressraum reicht in der Realität nur bis 255). Dann können wir ihn folgendermaßen “abfangen”:

<?php if ($_SERVER["REMOTE_ADDR"]=="88.290.1.22") { exit; } ?>

Dasselbe funktioniert auch für ganze Adressblöcke, so lässt sich zum Beispiel der gesamte Block 88.290.***.*** aussperren:

<?php if (substr($_SERVER["REMOTE_ADDR"], 0, 7)=="88.290.") { exit; } ?>

Ein weiteres Einsatzgebiet von PHP für SEO ist das Einrichten von Umleitungen. Es kann gute Gründe geben, dies über PHP zu lösen – beispielsweise auch hier, wenn es serverseitig nicht machbar ist.
Der folgende PHP-Code erzeugt eine suchmaschinenfreundliche 301-Weiterleitung:

<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: https://www.example.com/produkte/"); header("Connection: close"); ?>

Wir hoffen, dass Euch die genannten Beispiele Anregungen für Euren SEO-Alltag geben werden. Ganz wichtig ist, dass Ihr Euren PHP-Code ausgiebig testet. Insbesondere bei IF-Abfragen sollte man gut prüfen, ob der Code auch das macht, was er machen soll.
Viel Spaß!

3 KOMMENTARE

  1. Und was ist mit Node, geht das damit nicht? 😉
    Und mit JavaScript kann ich auch URL Teile auslesen.
    Und reicht nicht einfach ein simples “header(“Location:https://www.example.com/produkte/“, true, 301);” als weiterleitung?
    Oder warum nicht direkt eine Weiterleitung über .htaccess?

    • Hallo, in diesem Fall geht es konkret darum, wenn eine Weiterleitung auf andere Weise nicht machbar ist. Zitat: “Es kann gute Gründe geben, dies über PHP zu lösen – beispielsweise auch hier, wenn es serverseitig nicht machbar ist.”

Hinterlasse eine Antwort