Wordpress Performance Wordpress SEO Wordpress Security Wordpress Themes Wordpress Hosting Mein Setup Das Buch

Bei 404-Fehlern via Mail benachrichtigen

Bei 404-Fehlern via Mail benachrichtigen

Benachrichtigung via Mail bei 404-Fehlern

WordPress macht es Nutzern sehr einfach ihre Themes und Seiten anzupassen, doch hin und wieder ist dann trotzdem der Wurm drin. Dann spinnen bestimmte Bereiche einer Website und Nutzer bekommen die bekannten 404-Fehler präsentiert. Eigentlich nicht weiter schlimm, doch wenn ihr nicht gerade ständig eure Log-Dateien durchlest, fallen euch die Fehler wohl kaum auf. Auch die Anzeige in den Google Webmaster Tools ist verzögert, direkt reagieren könnt ihr in solchen Fällen also meistens nicht. Ein Snippet hilft nun dabei, denn das sorgt dafür, dass bei 404-Fehlern eine Mail an den Admin gesendet wird. So wisst ihr sofort, ob ein schwerwiegender Fehler vorliegt, oder ob sich selbiger demnächst von alleine erledigt. Vor allem bekommt ihr es aber mit, wenn ein Nutzer plötzlich nicht mehr weiter kommt.Nützlich ist das für all diejenigen, die gerne die Kontrolle behalten und auch unterwegs über Probleme auf der eigenen Website benachrichtigt werden wollen.

Folgendes in die 404.php Datei eures Themes kopieren:

<?php

header("HTTP/1.1 404 Not Found");
header("Status: 404 Not Found");

$blog  = get_bloginfo('name');
$site  = get_bloginfo('url') . '/';
$email = get_bloginfo('admin_email');

if (!empty($_COOKIE["nkthemeswitch" . COOKIEHASH])) {
	$theme = clean($_COOKIE["nkthemeswitch" . COOKIEHASH]);
} else {
	$theme_data = wp_get_theme();
	$theme = clean($theme_data->Name);
}

if (isset($_SERVER['HTTP_REFERER'])) {
	$referer = clean($_SERVER['HTTP_REFERER']);
} else {
	$referer = "undefined";
}

if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER["HTTP_HOST"])) {
	$request = clean('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
} else {
	$request = "undefined";
}

if (isset($_SERVER['QUERY_STRING'])) {
	$string = clean($_SERVER['QUERY_STRING']);
} else {
	$string = "undefined";
}

if (isset($_SERVER['REMOTE_ADDR'])) {
	$address = clean($_SERVER['REMOTE_ADDR']);
} else {
	$address = "undefined";
}

if (isset($_SERVER['HTTP_USER_AGENT'])) {
	$agent = clean($_SERVER['HTTP_USER_AGENT']);
} else {
	$agent = "undefined";
}

if (isset($_SERVER['REMOTE_IDENT'])) {
	$remote = clean($_SERVER['REMOTE_IDENT']);
} else {
	$remote = "undefined";
}

$time = clean(date("F jS Y, h:ia", time()));


function clean($string) {
	$string = rtrim($string); 
	$string = ltrim($string); 
	$string = htmlentities($string, ENT_QUOTES); 
	$string = str_replace("\n", "<br>", $string);

	if (get_magic_quotes_gpc()) {
		$string = stripslashes($string);
	} 
	return $string;
}

$message = 
	"TIME: "            . $time    . "\n" . 
	"*404: "            . $request . "\n" . 
	"SITE: "            . $site    . "\n" . 
	"THEME: "           . $theme   . "\n" . 
	"REFERRER: "        . $referer . "\n" . 
	"QUERY STRING: "    . $string  . "\n" . 
	"REMOTE ADDRESS: "  . $address . "\n" . 
	"REMOTE IDENTITY: " . $remote  . "\n" . 
	"USER AGENT: "      . $agent   . "\n\n\n";

mail($email, "404 Alert: " . $blog . " [" . $theme . "]", $message, "From: $email"); 

?>

Schnelles handeln dank Hinweis via Mail

Sinn macht das Snippet vor allem für Kontrollfreaks wie mich, die ihre Website 24 Stunden im Blick behalten möchten. Ob das für euer Privatleben nun gut ist, wage ich zu bezweifeln, doch wenn die Website nicht erreichbar ist, oder Nutzer ständig Fehler präsentiert kriegen, verliert ihr vermutlich auch schnell Kunden/Einnahmen. Um solchen Dingen also bereits vorab entgegenzuwirken, eignet sich die Benachrichtigung per E-Mail ganz sicher. Sollte es dann irgendwelche schwerwiegenden Fehler geben, werdet ihr sofort benachrichtigt und könnt handeln. Auf der anderen Seite gibt es dafür auch andere Methoden, zum Beispiel die Weiterleitung von 404-Fehlern auf die Startseite. Welche Möglichkeit ihr am Ende wählt, bleibt wie euch überlassen.



Wordpress Performance eBook