WordPress E-Mail einrichten & Probleme lösen

Meist macht man sich wenig Gedanken über die E-Mail-Funktionen von WordPress, da in der Regel alles von Anfang an funktioniert. Erst wenn keine Nachrichten bei Dir ankommen, fällt auf, dass sich in WordPress auch keinerlei Einstellungsbereich für den E-Mail-Versand findet. Was nun?

Als erstes geht es darum das Problem einzugrenzen. Allerdings kannst Du auch gleich eine sicherere Alternative zum WordPress E-Mailversand einrichten.

Wie verschickt WordPress E-Mails?

WordPress besitzt einen eingebauten E-Mailversand, der in den meisten Fällen funktioniert. WordPress nutzt dazu die PHP-Funktion mail(). Das setzt allerdings zwei Punkte voraus:

  1. Die PHP-Funktion mail() ist aktiviert.
  2. Der Dienst "Sendmail" läuft fehlerfrei auf dem Server, denn die PHP-Funktion übergibt die E-Mails an den Sendmail Dienst.

Bevor du Dich an die Lösung des Problems machst, solltest Du folgenden kurzen Test durchführen.

WordPress E-Mailversand testen

Wenn das Problem bei Dir auftritt, lohnt es sich als erstes herauszufinden, ob es sich um ein grundsätzliches Problem mit dem Nachrichtenversand durch WordPress handelt oder nur ein spezielles Plugin Probleme bereitet.

E-Mail Schnelltest

Wenn es schnell gehen soll, kannst Du einfach so tun als würdest Du ein neues Passwort benötigen. Das sorgt dafür, dass WordPress Dir umgehend eine E-Mail mit einem Link zusendet.

Dafür loggst Du Dich aus WordPress aus (falls Du es nicht bereits bist) und im Anmeldedialog unter deinedomain.de/wp-login.php klickst Du unter dem Login auf "Passwort vergessen?" und trägst im folgenden Formular Deine E-Mailadresse ein.

Keine Sorge: wenn Du nicht auf den Link in der E-Mail klickst, musst Du Dein Passwort auch nicht ändern.

Normalerweise sollte die Benachrichtigungsemail relativ schnell in Deinem Postfach landen, aber warte ruhig ein paar Minuten ab. Falls nicht, schau sicherheitshalber noch einmal im Spamordner nach, ob sich die Nachricht dorthin verirrt hat.

Wenn nichts ankommt, dann gibt es ein generelles Problem mit dem E-Mailversand durch WordPress. Kommt die Nachricht hingegen an, deutet dies darauf hin, dass das E-Mail-Problem mit dem Plugin, das die Nachricht verschicken soll zu tun hat und Du wendest Dich am besten an den Pluginsupport.

E-Mail-Test mit Plugin

Wenn du genauer und vor allem häufiger Testen willst, kann es sich lohnen das Plugin Check Email zu installieren. Dies stellt im Administrationsbereich unter "Werkzeuge" > "Check Email" ein einfaches Formular zur Verfügung mit dem Du Testnachrichten über WordPress verschicken kannst.

Das kann dann sinnvoll sein, wenn Du einerseits ein Sicherheitsplugin wie z.B. Wordfence installiert hast, dass Dich bei zu häufiger Nutzung der "Passwort vergessen" Funktion aussperrt oder wenn du Testnachrichten an verschiedene E-Mailadressen versenden willst.

Außerdem werden einige Systeminformationen im Bezug zum E-Mailversand angezeigt und der Profi kann über "custom headers" entsprechende Anpassungen vornehmen.

Keine WordPress E-Mails? Dem Server auf der Spur

Wenn Du keinerlei Nachrichten von WordPress erhältst, hat das in der Regel mit den Servereinstellungen zu tun.

Wichtig: Der E-Mailversand über den Server birgt Nachteile, wird von manchen Hostern nicht unterstützt und in einigen Fällen hat man keinen Zugriff auf die relevanten Servereinstellungen. Deshalb verwenden wir mittlerweile für alle unsere WordPress Installationen einen externen Transactional E-Mail Service. Dazu weiter unten mehr.

Bevor Du also anfängst Dich mit dem Server zu beschäftigen, kannst Du überlegen, ob Du nicht gleich einen anderen Weg nutzen willst.

PHP-Funktion mail() und Sendmail aktiv?

Willst Du, dass die Nachrichten über den Server versendet werden, musst Du sicherstellen, dass die PHP-Funktion mail() und auch der Serverdienst Sendmail aktiv sind. Das klärst Du am besten über den Support Deines Webhosters oder Deinem Server Administrator, denn selbst wenn Du den Fehler findest, müssen in der Regel Einstellungen angepasst werden auf die Du keinen Zugriff hast. Wer selbst aktiv werden will, findet einige Informationen in dem Artikel "How To Test The Emails WordPress Sends" (engl.) von Josh Pollock.

Sicherer WordPress E-Mailversand auf anderen Wegen

Wenn Dein Hostinganbieter keinen E-Mailversand anbietet, Dir die nötigen Servereinstellungen nicht zugänglich sind oder falls Du die Wahrscheinlichkeit erhöhen willst, dass die System-E-Mails nicht verloren gehen oder im Spamordner landen, existieren zwei alternative Möglichkeiten:

  1. Der Versand über ein eigenes E-Mailkonto.
  2. Die Nutzung eines Transactional Mail Service (TMS).

Wir gehen mittlerweile bei allen unseren WordPress Installationen den 2. Weg, da zwar die Nutzung eines eigenen E-Mailkontos die Erhaltquote verbessert, aber Transactional Email Services sind noch besser auf den sicheren E-Mailversand ausgerichtet und die Anbindung über die jeweilige API ist in der Regel sehr viel einfacher eingerichtet. Dafür kosten diese Dienste in der Regel etwas. Es gibt zwar in kleinem Rahmen kostenfreie Einstiegsangebote, aber diese Dienste müssen und sollen ja auch wirtschaften. Wer seine Website beruflich nutzt wie z.B. mit einem Online Shop, tut gut daran einen TMS zu verwenden.

Wer sich dies nicht leisten kann oder will, sollte zumindest den Weg über den SMTP-Versand gehen. Aber achte auf die meist vorhandenen Limits bei kostenfreien E-Mailkonten. Ein kostenloses Gmail-Konto lässt beispielsweise bis zu 3.000 E-Mails pro Monat zu. Falls Du für die G Suite zahlst erhöhen sich die Limits.

1. WordPress Mails über eigenes E-Mailkonto

Mit Hilfe eines Plugins, kann WordPress zum Versand von Nachrichten ein "normales" E-Mailkonto verwenden. Der Vorteil liegt darin, dass sich der Nachrichtenversand sicherer (im Sinne die Nachrichten kommen mit hoher Wahrscheinlichkeit an) gestaltet und Du in dem E-Mailkonto unter den gesendeten Nachrichten nochmal nachsehen kannst was verschickt wurde. Außerdem kannst Du ein entsprechendes E-Mailkonto meist ohne Zusatzkosten bei Deinem Hoster oder einfach bei Gmail & Co. einrichten. Aber achte trotzdem auf die meist vorhandenen Limits bei der Anzahl der versendeten E-Mails.

Wenn du diesen Weg gehen willst, solltest Du unbedingt ein eigenes getrenntes E-Mailkonto für WordPress anlegen z.B. wordpress@deinedomain.de. Du musst die Zugangsdaten für dieses Konto in WordPress hinterlegen. Falls dann Deine Installation irgendwann mal gehacked wird, ergattert jemand ggf. diese Daten und kann sich so Zugang zu dem E-Mailkonto verschaffen. Handelt es sich um ein nur für WordPress verwendetes Extrakonto, sollte das relativ unproblematisch bleiben. Hast Du in WordPress Dein privates E-Mailkonto hinterlegt, steht meist einiges auf dem Spiel für Dich. Außerdem müllt Dir WordPress in einem Extrakonto nicht die Übersicht der versendeten E-Mails zu.

Alternativ kannst du auch ein E-Mailkonto, dass die Verifizierung über OAuth 2.0 oder eine API zulässt verwenden. Allerdings ist die Einrichtung dabei meist mühsamer. Dazu gleich mehr.

Anleitung: E-Mail über SMPT einrichten

Eigentlich alle aktuellen E-Mailkonten nutzen SMPT als Methode zum E-Mailversand. Das kostenfreie Plugin Post SMTP Mailer/Email Log (früher Postman SMPT genannt) bietet die nötige Funktionalität. Darüber hinaus lassen sich auch Emailkonten wie z.B. Gmail, Hotmail and Yahoo mittels OAuth 2.0 anbinden. Dies hat den großen Vorteil, dass die SMPT-Zugangsdaten nicht in der WordPress Datenbank gespeichert werden müssen und damit selbst im Falle eines Hacks Deiner Seite in dieser Hinsicht kein zusätzliches Sicherheitsrisiko besteht. Allerdings ist die Einrichtung eines Zugangs über OAuth 2.0 in der Regel etwas aufwändiger, als die simple Anbindung eines TMS über eine API.

Außerdem sind mit dem Post SMTP Mailer Plugin auch API Anbindungen an die Transactional Email Services SendGrid, Mandrill, Mailgun und sogar auch Gmail möglich. Dies ist die von uns bevorzugte Variante (siehe weiter unten). Trotzdem zeigen wir Dir hier im Folgenden die Einrichtung des Post SMTP Mailer/Email Log Plugins am Beispiel der etwas aufwendigeren Anbindung eines Gmailkonto via OAuth 2.0.

Post SMTP Mailer installieren

Nach der Installation des Plugins Post SMTP Mailer/Email Log sind die Einstellungen leider nur in Englisch verfügbar. Dafür lässt sich über "Start the Wizard" (1) eine geführte Einrichtung des jeweiligen E-Maildienstes beginnen:

Grundeinstellungen

Die Einrichtung ist weitgehend selbsterklärend. Als erstes gibst Du die Absendeemailadresse und den Absendernamen für Deine E-Mails an. Denk dabei daran, dass viele E-Maildienste hier keine anderen Adressen als die des E-Mailkontos zulassen.

Als nächstes muss die Serveradresse für ausgehende E-Mails angegeben werden (Outgoing Mail Server Hostname). Das Plugin versucht hier anhand der vorher angegebenen E-Mailadresse die korrekte Serveradresse zu ermitteln, was zumindest bei Gmailadressen in der Regel gelingt. Anderenfalls musst Du in der Dokumentation Deines E-Mail-Service nachsehen.

Socket & Authentication wählen

Interessant wird erst der Punkt 4. "Connectivity Test" bei dem ausgewählt wird über welchen Weg bzw. Socket (1) die Anbindung erfolgen soll und welche Authentifikationsart (2) verwendet werden soll:

Falls Du SMPT mit der Authentifikation durch Username und Password wählst, brauchst Du im folgenden Schritt nur diese beiden Felder auszufüllen. Von diesem Weg wird allerdings abgeraten, da die Informationen in der WordPress Datenbank gespeichert werden und im Falle eines Hacks Deiner Seite, können die Angreifer auch Zugriff auf das E-Mailkonto erlangen.

OAuth 2.0 oder Google API verwenden

In unserem Beispiel verwenden wir ein Gmailkonto und können daher zwischen "Gmail API" oder auch SMPT wählen. Wobei hier stets die Authentifikation über OAuth 2.0 ratsam ist, um keine Passwörter in der WordPress Datenbank zu speichern.

Die Einrichtung des OAuth 2.0 Zugriffs ist allerdings deutlich mühsamer. Als erstes siehst Du im nächsten Schritt "5. Authentification" einerseits Informationen zu "Authorized JavaScript origins" (1) und "Authorized redirect URI" (2):

Diese Informationen benötigst Du, um die "Client ID" (3) und den Schlüssel für das "Client Secret" (4) zu erstellen, die Du dann hier einträgst.

Google API: Projekt einrichten

Um an eine "Client ID" und das "Client Secret" zu kommen, gehst Du zu console.developers.google.com und loggst Dich mit den Zugangsdaten zu dem gewünschten Gmail Konto ein. Anschließend erstellst Du dort ein neues Projekt:

Der Projektname ist eigentlich nicht wichtig, aber Du kannst gerne eine Bezeichnung verwenden über die Du nachvollziehen kannst, dass es um den E-Mailzugriff auf WordPress geht. Organisation und Speicherort lässt Du am besten so wie vorgegeben. Über "Erstellen" wird das Projekt angelegt.

Google API aktivieren

Anschließend musst Du die API für Dein neues Projekt aktivieren (1):

So gelangst Du in die Google API-Bibliothek. Dort suchst Du einfach nach der "Gmail API" und wählst diese aus.

Anschließend aktivierst Du die Gmail API (1):

Im nächsten Schritt muss der "Zustimmungsbildschirm konfiguriert werden:

Hier triffst Du unter "Anmeldedaten" (1) im Reiter "OAuth-Zustimmungsbildschirm" (2) unter "Anwendungstyp" möglichst die Auswahl "intern" (3). Dazu vergibst Du einen beliebigen Namen (4) für die Anwendung:

Anschließend scrollst Du weiter nach unten und trägst dort unter "Autorisierte Domains" (5) die Domain Deiner Website ein und bestätigst dies mit Enter, so dass anschließend die Domain oberhalb des Feldes angezeigt wird, wie in folgendem Screenshot mit "wpdemo.de" der Fall ist:

Dann trägst Du noch den Link zu Deiner Datenschutzerklärung ein (6) und bestätigst dies wieder mit Enter, da der Eintrag sonst nicht übernommen wird. Zum Schluss speicherst Du Deine Einstellungen (7).

Google OAuth 2.0 & API Anmeldedaten

Jetzt kannst Du endlich die Anmeldedaten erstellen (1). Dazu wählst Du die Variante "OAuth-Client-ID" (2):

Nun wirst Du nach dem Anwendungstyp gefragt und wählst "Webanwendung" (1) erstellen:

Google Client-ID & Clientschlüssel

Im folgenden Bildschirm findest Du nun endlich die benötigte "Client-ID" (1) und den "Clientschlüssel" (2):

Diese Werte überträgst Du am besten per Copy & Paste in WordPress in das Plugin Formular von vorhin und dort in die Felder "Client ID" (3) und "Client Secret" d.h. Clientschlüssel (4):

Im nächsten Schritt kannst Du noch bestimmen auf welchem Weg Du informiert werden willst, falls der Versand einer E-Mail scheitert. Hier stehen als Optionen E-Mail, Pushover oder Slack zur Verfügung. Wobei der Weg über die E-Mail bei generellen E-Mailproblemen ggf. nicht die sinnvollste Einstellung ist. Zusätzlich kann auch eine Benachrichtigung über eine Chrome Browser Extension erfolgen.

Das war's dann mit dem Setup Wizard und im nächsten Schritt kannst Du über "Finish" die Einrichtung beenden.

Wichtig: Falls Du OAuth 2.0 über Google eingerichtet hast, musst zunächst noch den Zugriff bewilligen, bevor die Einrichtung des Plugins wirklich vollendet ist.

Das ist auch gut in der Übersicht zu erkennen, dort siehst Du einerseits, dass das Plugin noch nicht bereit für die Versendung von E-Mails ist (2) und Du erst den Zugriff auf Gmail über den Klick auf den Link (1) erlauben musst:

Im nächsten Schritt meldest Du Dich mit dem gewünschten Gmail Konto an und erlaubst dann den Zugriff:

Falls es hier Schwierigkeiten gibt, liegt es in der Regel daran, dass die Google Client-ID und der Clientschlüssel aus den vorherigen Schritten nicht korrekt in das Formular des Plugins übertragen wurden.

Hat alles geklappt, siehst Du die Bestätigung der Autorisierung (1) und das Plugin zeigt unten ebenfalls an welcher Versandweg aktuell eingerichtet ist (2).

Dort findest Du auch den Zugang zu einem Log, in dem die Ergebnisse der letzten 250 E-Mail Sendeversuche zu finden sind (3). Unter "Troubleshooting" (4) stehen noch einige Test- und Diagnosemöglichkeiten bei Problemen bereit. Als erstes solltest Du allerdings gleich nach der Einrichtung über "Send a Test Email" (5) eine Testnachricht versenden:

Hier kannst Du eine E-Mailadresse Deiner Wahl angeben und erhältst auch weitere Informationen zum Versand der Mail.

Findest Du die Testmail in Deinem E-Mail-Konto (hoffentlich nicht im Spamordner) ist alles in Ordnung und Du brauchst Dir erstmal keine Sorgen mehr um den E-Mailversand aus WordPress machen.

Du siehst die Einrichtung über OAuth 2.0 ist zwar empfehlenswert, aber leider relativ mühsam. Wenn Du nur ein oder zwei Seiten einrichten müsst, ist der Aufwand sicherlich noch vertretbar, aber die Integration eines Transactional Email Service ist in der Regel wesentlich schneller und einfacher möglich.

2. TMS: Transactional Mail Services

Es gibt Dienste, die sich auf den sicheren Versand von E-Mails spezialisiert haben. Diese werden "Transactional Mail Services" kurz TMS genannt. Mit transaktionsbasierten E-Mails sind eigentlich die vielen kleinen Systemnachrichten gemeint, die ständig verschickt werden wie Anmeldebestätigungen, Passwortänderungen, Bestell- und Versandbestätigungen, etc. Gerade bei professionellen Websites kann es schnell zu großen Problemen kommen, wenn der Versand solcher Nachrichten nicht oder nicht gut funktioniert. Deshalb entstanden Dienste, die sich auf nichts anderes als den möglichst sicheren Versand von E-Mails konzentrieren. Dazu gehören Anbieter wie SendGrid, SendinBlue, Mailgun und Amazon SES (Simple Email Service).

Vorteile eines TMS

Der Vorteil dieser Dienste liegt darin, dass die Gefahr, dass E-Mails verloren gehen wesentlich geringer ist. Für die Anbindung an WordPress muss auch kein SMTP-Zugang mühsam konfiguriert werden (ist allerdings auch möglich), sondern jeder dieser Dienste stellt eine API-Schnittstelle zur Verfügung, die sich wesentlich einfacher einrichten lässt.

Falls Du überlegst eine E-Mail-Liste für beispielsweise einen Newsletter aufzubauen, kann ein TMS ebenfalls nützlich sein. Willst Du es Dir einfach machen und die Verwaltung Deines Newsletters mit Hilfe eines Plugins wie z.B. Mailster komplett über WordPress laufen lassen, solltest Du in keinem Fall Deinen Newsletter über die WordPress Funktion versenden, sondern möglichst einen TMS nutzen.

Transactional Mail Service in WordPress integrieren

Für die meisten Anbieter existieren eigene WordPress Plugins, die dafür sorgen, dass die System-E-Mails über die API des jeweiligen Dienst verschickt werden. Das oben bereits erwähnte Plugin Post SMTP Mailer/Email Log kann z.B. auch für die Verwendung der APIs von SendGrid, Mailgun, Mandrill oder Amazon SES (Simple Email Service) konfiguriert werden.

Welchen TMS verwenden?

Es gibt zwar diverse TMS Anbieter, aber aus unserer Sicht sind gerade für Einsteiger im Grunde nur drei Dienste wirklich interessant.

SendGrid: Wir nutzen selbst in der Regel SendGrid. SendGrid ist einer der ersten TMS Anbieter gewesen und steht somit für viel Erfahrung in diesem Bereich. Preislich und von der Qualität liegt der Dienst im oberen Mittelfeld. SendGrid bietet einen Testmonat mit 40.000 kostenfreien E-Mailnachrichten. Nach Ablauf des Tests, stehen jedem Nutzer 100 E-Mails pro Tag kostenfrei zur Verfügung. Dies dürfte in vielen Fällen zumindest zu Beginn ausreichen. Der nächsthöhere Plan schlägt mit 14,95$ pro Monat für maximal 40.000 Nachrichten zu Buche.

SendinBlue: Wer lieber einen deutschsprachigen TMS mit deutschem Support nutzen will, sollte sich den französischen Anbieter SendinBlue ansehen. Der Firmensitz liegt in Europa, was in Bezug auf Datenschutz interessant sein kann. SendinBlue ist eigentlich ein Newsletter Dienst, der gleichzeitig als TMS genutzt werden kann. Bis zu 300 E-Mails pro Tag können kostenfrei versendet werden. Der nächsthöhere Lite Plan schlägt mit 19€ zzgl. MwSt. zu Buche und erhöht das Volumen auf 40.000 E-Mails pro Monat. Dabei steht einem nicht nur der TMS zur Verfügung, sondern SendinBlue ist ein vollumfänglich ausgestatteter Newsletterdienst, so dass Du dort auch gleich Deine E-Mail-Liste aufbauen kannst. Die Integration erfolgt einfach über das kostenfrei verfügbare SendinBlue Plugin für WordPress. SendinBlue ist nach Amazon SES einer der günstigsteren TMS Anbieter.

Amazon SES: In Bezug auf das Preis-Leistungsverhältnis ist zwar Amazon SES (Simple Email Service) so gut wie unschlagbar (1$ für 1.000 E-Mails), aber dafür ist die komplexe Konfiguration dieses Dienstes tendenziell eher etwas für fortgeschrittene Anwender. Wer es trotzdem versuchen will, sollte sich das kostenfreie Plugin WP Offload SES Lite von Delicous Brains ansehen, das auch einen Setup Wizard mitbringt.

Anleitung: Sendgrid als TMS nutzen

Als Beispiel zeigen wir im Folgenden die Integration von SendGrid in WordPress. Auch wenn das bereits für den SMTP-Versand vorgestellte Plugin Post SMTP Mailer ebenfalls eine Anbindung zu SendGrid ermöglicht, nutzen wir zur Integration stets das offizielle WordPress SendGrid Plugin, da dies übersichtlicher und einfacher zu konfigurieren ist.

Nach der Anmeldung bei SendGrid und der Installation des Plugins, gehst Du im SendGrid Account unter Settings auf API Keys und legst dort mittels "Create API Key" einen neuen Key an. Du kannst zwar alles auch nur über einen einzigen Key laufen lassen, aber wir legen für jede Website einen eigenen Key an. Als "API Key Name" vergeben wir stets den Domainnamen wie z.B. wphelp.de und als "API Key Permissions" wählst Du "Full Access":

Anschließend erhältst Du einen API Key, den Du in WordPress unter "Einstellungen" > "SendGrid" einträgst.

An dieser Stelle kannst du noch ein paar Kleinigkeiten konfigurieren wie z.B. den Absendernamen und die Absenderadresse.

Hast Du über "Update Settings" die Einstellungen gespeichert, scrollst Du ganz nach unten und findest dort ein einfaches Formular über das Du eine Testmail versenden kannst. Wenn das funktioniert, ist alles korrekt eingerichtet und Du brauchst Dir in der Regel nie wieder Sorgen um das Thema WordPress E-Mails machen.

Hilfreiches Plugin: WP Mail Logging

Wenn Du Probleme mit dem E-Mailversand aus WordPress hast und auf Nummer Sicher gehen willst, dass Du keine Nachricht z.B. von Deinem Kontaktformular verlierst, ist das Plugin WP Mail Logging eine große Hilfe. Das Plugin speichert alle Systememails in der WordPress Datenbank. Damit besitzt Du eine Sicherheitskopie der Nachrichten, falls E-Mails verloren gehen. Aber denk dabei an die DSGVO und dass Du diese Verarbeitung der Daten in Deiner Datenschutzerklärung ggf. mit angeben solltest.

Fazit WordPress E-Mails

Auch wenn WordPress von Haus aus und in der Regel ohne Dein Eingreifen E-Mails versenden kann, solltest du nicht erst aktiv werden, wenn Du ein Problem mit den Nachrichten bemerkst. Es lohnt sich bereits gleich nach der Installation entweder über ein Plugin ein E-Mailkonto einzubinden oder noch besser einen Transactional Email Services zu verwenden. Dann machst Du Dich unabhängig vom dem immer etwas unsicheren Versand der WordPress Nachrichten via PHP-Befehl und außerdem von den ggf. einschränkenden Einstellungen Deines Hosters.

WordPress Problem: weiße Seite sonst nichts

Der "White Screen of Death" (weißer Bildschirm des Todes) ist ein gelegentlich auftretender WordPress-Fehler. Weil er viele Ursachen haben kann, gibt es auch mehrere mögliche Lösungen. Einfacher wird es für Dich dadurch leider nicht. Trotzdem bist Du nicht aufgeschmissen, wenn statt Deiner WordPress-Installation auf einmal nur noch eine weiße Seite angezeigt wird.

Ursachen finden

Damit Du das Problem möglichst schnell beheben kannst, musst Du die Ursache bestimmen. Fast immer tritt der White Screen nach einer Änderung Deiner WordPress-Seite auf, etwa wenn Du ein neues Plugin oder Theme installiert hast. Um Dir eine lange Suche zu ersparen prüfe deshalb erst, welche Änderungen Du als letztes durchgeführt hast, und mache sie nach Möglichkeit rückgängig.

Plugins

Plugins sind die Hauptursache für den White Screen. Wenn Du kurz zuvor ein neues Plugin installiert oder aktualisiert hast, ist dies deshalb ein guter Ansatzpunkt für Deine Fehlersuche. Damit WordPress wieder läuft und der Withe Screen verschwindet, musst Du nur dieses Plugin deaktivieren. Wenn Du auf den Admin-Bereich zugreifen kannst, kannst Du das Plugin einfach im Backend auswählen und deaktivieren.

Falls Du statt des Admin-Bereichs nur eine weiße Seite siehst, musst Du die Deaktivierung per FTP durchführen. Verbinde Dich mit dem FTP-Server und suche in der WordPress-Installation den Plugin-Ordner: wp-content/plugins/. Um sämtliche Plugins zu deaktivieren benennst Du diesen Ordner um. Willst Du nur einzelne Plugins ausschalten, suche die entsprechenden Unterordner und ändere ihren Namen. Dadurch kann WordPress nicht mehr darauf zugreifen. Zu der detaillierteren Vorgehensweise und weiteren Möglichkeiten haben wir einen eigenen Artikel verfasst "Im Notfall: Alle Plugins deaktivieren".

Da Chaching-Plugins auch dann noch Probleme verursachen können, wenn sie bereits deaktiviert wurden, solltest Du den Cache manuell löschen. Lösche dafür mithilfe des FTP-Client den Ordner wp-content/cache/ oder suche nach weiteren Ordnern mit der Bezeichnung "Cache" im Namen.

War ein Plugin die Ursache, wird der White Screen nicht mehr erscheinen, nachdem Du es deaktiviert hast.

Themes

Anstelle eines Plugins kann auch ein Theme für den White Screen verantwortlich sein. Hast Du das verwendete Theme frisch installiert oder aktualisiert, hat es wahrscheinlich auch die weiße Seite verursacht. Wenn Du noch auf den Admin-Bereich zugreifen kannst, ändere einfach unter dem Punkt "Design" das verwendete Theme. Alternativ verbindest Du Dich mit Deinem FTP-Client und suchst den Ordner des Themes: wp-content/themes/mein-theme

Wie auch schon bei den Plugins benennst Du ihn um, damit WordPress ihn nicht mehr nutzen kann. Deine Seite wechselt so automatisch zum Standard-Theme.

Wird der White Screen so behoben, lag das Problem in Deinem Theme oder in einer Inkompatibilität mit einem Plugin.

wp-config.php

Fast alle Probleme mit dem White Screen werden von Fehler verursacht, die von Plugins oder Themes ausgelöst werden. Wenn Du diese beiden Ursachen ausschließen kannst, gilt der nächste Blick der wp-config.php.

Hast Du selbst eine Änderung daran vorgenommen, lade Deine vorher angefertigte Sicherheitskopie mit Deinem FTP-Client hoch. Beendet dies den White Screen nicht, kann der Fehler trotzdem von der wp-config.php stammen. Denn Du musst nicht zwingend selbst eine Änderung an der Datei vorgenommen haben; auch Plugins mit Zugriff darauf verursachen manchmal Probleme. Prüfe die Datei nun genau, schon ein falsches Leerzeichen kann der Grund für Deinen White Screen sein.

Wenn Du den Fehler nicht selbst findest, nutze das WordPress-Debug-System. Ändere dafür in der wp-config.php diese Zeile:

define('WP_DEBUG', false);

zu

define('WP_DEBUG', true);

Da dies dazu führt, dass neben Dir auch jedem Seitenbesucher beim Laden der Seite alle Fehler angezeigt werden, solltest Du dies zu einer Zeit durchführen, in der Du erfahrungsgemäß weniger Besucher auf der Seite hast. Denke daran, WP_DEBUG anschließend wieder zu deaktivieren!

Eine weitere mögliche Fehlerursache ist, das Du die wp-config.php, nachdem Du sie im Texteditor bearbeitet hast unbemerkt als UFT-8-codierte Datei gespeichert hast. Dadurch wird mitunter ein sogenannter Byte Order Mark (BOM) hinzugefügt. Um dies zu umgehen, speichere die Datei mit der ANSI-Codierung. Schau im Zweifelsfall in der Dokumentation Deines Editors nach.

WordPress zeigt nichts an: Problem gelöst?

In den meisten Fällen solltest Du über die genannten Schritte eine Lösung gefunden haben. Falls dies nicht der Fall sein sollte, such Dir (ggf. auch professionelle) Unterstützung z.B. im WordPress Forum oder einer WordPress Facebook Gruppe.

Beschreibe in solch einem Fall Dein Problem so präzise wie möglich und gib auch alle bisherigen erfolglosen Lösungsversuche mit an, dann müssen die freiwilligen Helfer nicht lange raten oder bereits abgearbeitete Schritte mit Dir durchgehen.

WordPress Wartungsmodus ein- und ausschalten

Aus Sicherheitsgründen sollten Deine WordPress-Installation und Deine Plugins immer auf dem neuesten Stand sein. Wenn Du ein Update durchführst, wird Deine Website automatisch kurzzeitig in den Wartungsmodus versetzt. Wenn alles gut läuft, wird dieser anschließend ebenso automatisch wieder deaktiviert.

Manchmal kommt es allerdings zu Schwierigkeiten und der Wartungsmodus bleibt aktiv. Das bedeutet nicht nur Deine Besucher, sondern auch Du selbst sehen bei dem Zugriff auf die Seite stets nur folgenden Text:

"Wegen Wartungsarbeiten ist diese Website kurzzeitig nicht verfügbar. Schau in einer Minute nochmal vorbei."

Oder, falls Deine Spracheinstellungen auf Englisch stehen, den folgenden Text:

"Briefly unavailable for scheduled maintenance. Check back in a minute."

Das ist nicht nur störend für Deine Seiten-Besucher, sondern auch für Dich: Du kannst Dich nicht mehr im Administrationsbereich einloggen und das Problem damit auch nicht beheben.

Fehlerursachen

Es gibt verschiedene mögliche Gründe, weshalb ein Update nicht korrekt beendet wird und Deine Seite im Wartungsmodus bleibt.

Manchmal geschieht dies, wenn Du die Seite während des Updates schließt. Aber auch, wenn der Ladevorgang ungewöhnlich lange dauert, kann es zu Problemen kommen, wenn Du die Aktualisierung deshalb abbrichst. Fehlerhafte Dateien können ebenfalls Schwierigkeiten verursachen, sollten bei offiziellen Themes und Plugins aber eine absolute Ausnahme sein.

In all diesen Fällen kann das Problem entstehen, dass auch Du selbst dauerhaft nur den Wartungshinweis zu sehen bekommst und damit von Deiner eigenen Seite ausgesperrt bist.

Den Wartungsmodus manuell beenden

In diesem Fall kommst Du nur weiter, wenn Du den Wartungsmodus manuell beendest. Dies funktioniert ganz unkompliziert und Du benötigst lediglich den FTP-Zugriff für die Website. Wenn Du nicht weißt was FTP ist, dann lies einfach unseren Artikel "Alles Wichtige zu FTP und SFTP".

Verbinde Dich zuerst mithilfe eines FTP-Programms wie FileZilla mit dem Webserver. Wechsle dort in das Hauptverzeichnis Deiner WordPress-Installation. Dort findest Du die Datei .maintenance, die Du löschst. Sie wird bei einem Update automatisch angelegt und anschließend wieder gelöscht, bleibt aber bestehen, wenn es während der Aktualisierung zu Problemen kommt.

Nach dem Löschen ist Deine Seite wieder normal erreichbar. Logge Dich wie gewohnt ein und führe das Update wie geplant durch.

Wartungsmodus selbst einschalten

Wenn du selbst einen Wartungsmodus aktivieren möchtest, z.B. weil Du noch an der Website arbeitest, solltest Du lieber ein sogenanntes Maintenance Plugin installieren wie z.B. WP Maintenance Mode. Mit Hilfe des Plugins lässt sich die Anzeige besser steuern und außerdem sperrt Dich das Plugin als Administrator nicht selbst von Deiner Seite aus.

Falls Du, aus welchen Gründen auch immer, selbst den WordPress-eigenen Wartungsmodus einschalten willst, kannst Du einfach eine Textdatei im WordPress Hauptverzeichnis mit der Bezeichnung .maintenance (der Punkt zu Beginn des Dateinamens ist wichtig!) erstellen.

In diese Datei kommt folgender Code

<?php $upgrading = time(); ?>

Damit bleibt WordPress so lange im Wartungsmodus bis Du diese Datei wieder löscht. Allerdings wird so lange auch der übliche Text mit dem Hinweis "Schau in einer Minute nochmal vorbei." ausgegeben. Gerade für längere Arbeiten am System ist das nicht ideal und ein Maintenance Plugin wäre die bessere Lösung.

Fehler beim Aufbau einer Datenbankverbindung beheben

Ob während der Installation oder später im laufenden Betrieb: die Fehlermeldung "Fehler beim Aufbau einer Datenbankverbindung" ist nicht unüblich. Dies heißt aber keinesfalls, dass Du Deinen Blog neu aufsetzen musst. Hier zeigen wir Dir, wie Du dieses Problem beheben kannst.

Mögliche Ursachen des Fehlers

Damit Dein WordPress Blog problemlos läuft benötigt er eine Datenbank. Wenn die Verbindung zu dieser Datenbank nicht hergestellt werden kann, wird anstelle Deines Blogs der oben genannte Fehler im Browser angezeigt. Da es verschiedene Ursachen für dieses Problem geben kann, musst Du erst die Gründe dafür eingrenzen.

Teste zuerst, ob der Fehler beim Aufbau der Datenbankverbindung sowohl auf der Startseite als auch im Adminbereich angegeben wird. Wenn Du im WP-Admin eine andere Fehlermeldung siehst, ist Deine Datenbank beschädigt. Dies kann z.B. passieren, wenn gerade ein Datenbankeintrag geschrieben wird, während die Verbindung zu einem Besucher abbricht.

Beschädigte Datenbank reparieren

Ist Deine Datenbank beschädigt, hast Du zwei Möglichkeiten sie zu reparieren:

In dem von Deinem Webhoster zur Verfügung gestellten Datenbanktool (meist phpMyAdmin) wählst Du dafür die Tabellen der Datenbank aus und klickst anschließend auf "Repariere Tabelle".

Alternativ fügst Du diese Zeile in die wp-config.php ein (siehe unsere Artikel zu dem Bearbeiten von Dateien und zur wp-config.php):

define('WP\_ALLOW\_REPAIR', true);

Dadurch repariert WordPress die Tabellen der Datenbank für Dich. Unter

http://deinedomain.de/wp-admin/maint/repair.php

kannst Du die Einstellungen dafür aufrufen.

Achtung: So lange der Eintrag in der wp-config.php steht, kann jeder Nutzer auch ohne angemeldet zu sein auf diese Seite gelangen! Denke unbedingt daran, die Zeile wieder aus der Datei zu löschen, wenn die Datenbank repariert ist.

Falsche Angaben in der wp-config.php

Der Fehler beim Aufbau der Datenbankverbindung kann auch auftreten, wenn in der wp-config.php die falschen Zugangsdaten gespeichert sind. Dies geschieht z.B., wenn Du das Passwort für Deine Datenbank änderst und keine Anpassung in der wp-config.php Datei vornimmst. Oder Du Deinen Webhostinganbieter gewechselt hast und vergisst die neuen Daten einzutragen. In diesem Fall ist der Fehler sehr einfach zu beheben. Überprüfe dafür diese Einträge in Deiner wp-config.php und korrigiere sie wenn nötig:

define('DB_NAME', 'Der Name Deiner Datenbank');
define('DB_USER', 'Dein Datenbank-Benutzername');
define('DB_PASSWORD', 'Dein Datenbank-Passwort');
define('DB_HOST', 'Die von Deinem Provider zugewiesene Serveradresse');

Der Wert für DB_HOST lautet meistens localhost.

Wichtig: Prüfe genau die Schreibweise. Es können leicht Zeichen wie z.B. Null und der Buchstabe O oder ein kleines L mit der 1 oder dem großen i verwechselt werden. Es kann sich auch ein Leerzeichen beim Einfügen des Passwortes eingeschlichen haben. Außerdem müssen die Hochkomma-Zeichen ' vor und nach den Variablen und Werten stehen und dürfen keinesfalls mit dem Gravis ` oder Akzent-Zeichen ´ vertauscht werden.

Datenbank existiert nicht

Ein Fehler beim Aufbau der Datenbankverbindung kann auch entstehen, wenn die Datenbank nicht existiert oder nicht alle nötigen Tabellen enthält. Dazu kann es z.B. kommen, wenn Du Deinen Blog zu einem anderen Webhostinganbieter umziehst und die alte Datenbank nicht korrekt importiert wurde. Auch hier hilft Dir das Datenbanktool Deines Anbieters. Prüfe damit, ob die Datenbank existiert und den richtigen Inhalt hat. Liegt hier die Ursache für die Fehlermeldung, importiere die Datenbank erneut.

Datenbankserver ist nicht erreichbar

Wenn die oben aufgeführten möglichen Ursachen nicht auf Dich zutreffen kann es sein, dass Dein Datenbankserver nicht erreichbar ist. Um dies zu überprüfen, stehen Dir verschiedene Optionen offen. Die einfachste ist, andere Seiten auf demselben Server aufzurufen. Wird auch hier die Fehlermeldung angezeigt, ist der MySQL-Server das Problem.

Wenn Du keine anderen Seiten auf dem Server hast, verbinde Dich über phpMyAdmin mit der Datenbank. Falls die Verbindung gelingt, ist der nächste Schritt zu überprüfen, ob Dein Datenbankbenutzer die korrekten Rechte für den Zugriff auf die Datenbank hat.

Hierfür erstellst Du mit Hilfe eines Texteditors eine neue Datei verbindungstest.php und setze den folgenden Code ein, wobei Du Datenbanknutzername und Datanbankpasswort durch Deine passenden Werte ersetzt:

Die neue Datei lädst Du per FTP hoch und rufst diese über den Browser auf:

http://deinedomain.de/verbindungstest.php

Wenn die Verbindung glückt bedeutet dies, dass der Fehler nicht in der Datenbank liegt. Überprüfe erneut die wp-config.php, z.B. auf Schreibfehler. Kannst Du keine Verbindung herstellen, ist der Server die Ursache der Fehlermeldung. Kontaktiere in diesem Fall Deinen Webhostinganbieter, damit dieser die Ursache beseitigen kann.

Denk daran die Datei verbindungstest.php anschließend wieder zu löschen.

Admin-Passwort ändern auch ohne Zugang

Viele WordPress Nutzer kennen das Problem: ein neues Passwort soll gesetzt werden, jedoch ist kein Adminzugang mehr möglich. Dies ist beispielsweise dann der Fall, wenn Du aus Versehen mehrere Male das falsche Passwort eingegeben hast. Irgendwann – je nach individueller Einstellung – sperrt das System den Zugang.

Um hier möglichst schnell wieder auf Deiner Seite arbeiten zu können, können drei Wege genutzt werden.

1. Möglichkeit: Nutze die "Passwort vergessen"-Funktion!

Hierbei handelt es sich wohl um die Variante, die vor allem von WordPress-Anfängern bevorzugt wird. Bitte beachte jedoch, dass Du diese Möglichkeit nur dann nutzen kannst, wenn Du noch Zugriff auf die E-Mailadresse hast, mit der Du Dich auch bei WordPress angemeldet hast!

Besuche nun einfach nur die Login Seite Deines WordPress und klicke unten auf den Button "Passwort vergessen?". Die nächsten Schritte sind selbsterklärend. Gib Deinen Usernamen oder die mit WordPress verbundene E-Mailadresse ein und fordere dann Dein neues Passwort an. Wenige Sekunden später erhältst Du eine Nachricht, in der Du die Anforderung des neuen Passworts bestätigen sollst, um dann im nächsten Schritt selbiges neu einzugeben.

Praktischerweise zeigt Dir WordPress parallel zur Eingabe auch an, wie sicher Deine neu gewählte Zahlen- und Buchstabenkombination ist. Nach der finalen Bestätigung kannst Du dann Dein neues Passwort wie gewohnt nutzen. Und wichtig: Denk daran Dir das neue Passwort zu merken.

2. Möglichkeit: der Weg über die Benutzereinstellungen im Adminbereich

Falls Du keinen Zugriff auf die hinterlegte E-Mailadresse hast, Dich weder an die passende E-Mailadresse oder den Benutzernamen erinnern kannst oder der E-Mailversand aus WordPress nicht funktioniert, kann diese Vorgehensweise helfen. Allerdings dafür, dass diese Option für Dich in Frage kommt, musst Du oder jemand anderer noch Zugriff auf den Administrationsbereich haben. Vielleicht bist Du noch in einem anderen Browser in WordPress eingeloggt oder auf einem anderen Rechner bzw. Tablet oder in der WordPress App. Ggf. gibt es einen auch andere Benutzer, die ebenfalls Administrationsrechte besitzen. Es lohnt sich darüber nachzudenken, denn diese Lösung ist deutlich leichter zu beschreiten, als Variante 3.

Falls Du oder jemand anderes es noch schaffen, auf den Adminbereich zuzugreifen, kannst Du das Passwort von hier aus ändern und Deinen Account damit wieder freischalten. Klicke hierzu einfach auf den Bereich "Benutzer" und "Dein Profil" in der linken Leiste. Im Bereich der Kontoverwaltung kannst Du Dir dann ein neues Passwort generieren bzw. das von WordPress vorgeschlagene übernehmen. Bestätigen, fertig!

3. Möglichkeit: Nutze Deinen Datenbankzugang

Sollte keine der beiden Möglichkeiten funktioniert haben, klappt Weg Nr. 3 auf jeden Fall! Dennoch handelt es sich hierbei auch zugegebenermaßen um die komplizierteste der drei Methoden. Dafür ist diese Lösung auch ohne Adminzugang möglich!

Im ersten Schritt ist es unerlässlich, dass Du möglichst alle Informationen Deiner Seite speicherst. Sicher ist sicher!

Nun kann es auch schon losgehen. Viele Einstellungen sind in der WordPress Datenbank hinterlegt, inklusive dem Benutzerprofil und dem dazugehörigen Passwort. Hast Du Zugang zu dieser Datenbank, kannst Du die entsprechenden Details auch ändern und neu speichern. Zugang zur Datenbank erhältst Du in der Regel über ein Tool, das Dir Dein Webhostinganbieter zur Verfügung stellt (meist phpMyAdmin). Dieses Tool zeigt Dir alle vorhandenen Datenbanken an, die sich auf Deinem Server befinden.

Das bedeutet auch, dass es ein wenig schwieriger sein kann, die richtige Datenbank zu finden, wenn Du mehrere WordPress Installationen gleichzeitig verwendest. Falls Du unsicher bist, welches die richtige Datenbank ist, schaust Du einfach in der WordPress Konfigurationsdatei wp-config.php nach. Dort wird der genutzte Datenbankname der Variable DB_NAME zugewiesen.

In der jeweiligen Datenbank angekommen, begibst Du Dich in die Tabelle mit den WordPress Benutzern: wp_users . Finde nun den Tabelleneintrag, der in der Spalte user_login den Benutzernamen enthält, dessen Passwort Du ändern möchtest. Diesen Tabelleneintrag bearbeitest Du. Das Passwort wird im Feld user_pass gespeichert.

Achtung: Die Zeichenfolge, die in diesem Feld steht ist nicht das aktuelle Passwort! Aus Sicherheitsgründen speichert WordPress das Passwort nicht im Klartext, sondern nutzt zur Maskierung eine Hashfunktion! Damit selbst wenn jemand die Datenbank über ein Sicherheitsleck auslesen kann, das Passwort trotzdem geschützt ist.

Du musst ein neues Passwort vergeben und dafür sorgen, dass dies ebenfalls über eine Hashfunktion maskiert wird. Sicherheitshalber solltest Du die vorhandene Zeichenfolge irgendwo speichern oder notieren. Dann löschst Du die Zeichen in dem Feld user_pass und tippst Dein gewünschtes Passwort ein. Wähle vor dem Speichern die Hashfunktion "MD5" aus und bestätige Deine Eingaben. Fertig!

Jetzt solltest Du Dich wieder in WordPress einloggen können.

Robots.txt – wofür ist sie da und was sollte rein?

Früher oder später wird man als Betreiber einer Website mit der Datei robots.txt konfrontiert. An dieser Stelle soll kurz erklärt werden wofür sie da ist, was sie kann und vor allem was sie nicht kann. Außerdem geben wir einige Tipps für die Verwendung mit WordPress.

Was die robots.txt kann und was sie nicht kann

Die robots.txt ist eine Datei, die dafür gedacht ist automatische Crawler (z.B. Suchmaschinenbots) anzuleiten was sie auf der jeweiligen Website zu tun und zu lassen haben. Das klingt jetzt strenger als es ist, denn tatsächlich bietet die robots.txt keinerlei technische Beschränkungen. Sie gibt sozusagen nur freundliche Hinweise. Es liegt an den Crawlern, ob sie diese beachten oder nicht. Ein Zugriffsschutz oder ähnliches ist also mit Hilfe dieser Datei nicht möglich!

So sieht die robots.txt aus

Nachdem nun klar ist, dass es sich bei den Inhalten dieser Datei nur um Hinweise bzw. eine Bitte an die Crawler handelt, sehen wir uns mal an wie so etwas aussieht.

User-agent: \*
Disallow: /wp-admin/
Disallow: /wp-includes/

Hier werden alle Crawler (daher der * als Platzhalter bei User-agent) gebeten die Verzeichnisse wp-admin und wp-includes nicht zu crawlen. So sieht eine extrem einfache robots.txt für WordPress aus.

Etwas komplexer wird es, wenn man mehr ins Detail geht

User-agent: \*
Disallow: /wp-admin/
Disallow: /trackback/
Disallow: /feed/
Disallow: /comments/
Disallow: \*/trackback/
Disallow: \*/feed/
Disallow: \*/comments/
Allow: /wp-admin/admin-ajax.php

Sitemap: http://beispielblogdomain.xx/sitemap.xml

Hier fallen vor allem einige Verbote für trackback, feed und comments auf. Diese verhindern bei wichtigen Suchmaschinen (diese halten sich in der Regel an diese Anweisungen) das Aufnehmen von URLs, die gegebenenfalls den gleichen Inhalt zeigen wie Beitragsseiten. Das schränkt das Problem mit doppelten Inhalten (Duplicate Content, ein im Bereich SEO bekanntes Problem) ein.

Weiterhin wird hier auf die Sitemap verlinkt, die durch ein Sitemap-Plugin erstellt wurde. Dieser Verweis ist hier gut aufgehoben, sollte allerdings immer in Kombination mit der Anmeldung der Website und der Sitemap bei den Google Webmaster Tools erfolgen.

Eine vollständige Referenz würde hier den Rahmen sprengen. Sie ist zusammen mit einer Menge Erklärungen z.B. bei SelfHTML zu finden.

WordPress robots.txt selbst schreiben oder Plugins verwenden?

Im Grunde ist die robots.txt recht einfach strukturiert und die genaue Funktionsweise und Syntax lässt sich schnell erlernen. Damit könnte man einfach die Textdatei selbst schreiben und auf den Server laden. Die Datei muss dabei immer in der obersten Dateiebene gespeichert werden, so dass diese über die URL 'deinedomain.de/robots.txt' abrufbar ist. Es gibt allerdings wie so oft bei WordPress auch hier Unterstützung von Plugins. Das bekannte WordPress SEO by Yoast bringt zum Beispiel einen Editor mit, der das Hoch- und Herunterladen der Datei bei kleinen Änderungen erspart.

Robots.txt wichtig oder nicht?

Nun scheiden sich die Geister wie wichtig das Vorhandensein der robots.txt wirklich ist. Man könnte wohl sagen, dass es ohne sie geht, sie aber durchaus als Teil einer soliden Basis für eine Website gesehen werden kann. Wer gerne mit geringstmöglichem Aufwand Inhalte veröffentlich will, kann gut auf sie verzichten. Wer hingegen Wert darauf legt die größtmögliche Kontrolle darüber zu haben wie Suchmaschinen und andere Spider seine Seite lesen und welche Inhalte in Suchmaschinen erscheinen, für den gehört eine robots.txt dazu.

Interne Pingbacks abschalten

Die in WordPress integrierte Pingback Funktionalität wirkt auch innerhalb der eigenen Seite. So werden intern verlinkte Beiträge stets "angepingt" und im Kommentarbereich ein Hinweistext mit Link auf den verlinkenden Beitrag erstellt. Das ist in vielen Fällen nicht erwünscht und niemand möchte alle erstellten Pingbackhinweise jedes Mal mühselig manuell löschen. Was tun?

Pingbacks generell abschalten

Wer die Funktionen generell ausschalten will, kann diese einfach im Administrationsbereich erreichen. Unter Einstellungen" > "Diskussion" unter dem Punkt "Standardeinstellungen für Beiträge" einfach diese beiden Optionen deaktivieren:

Das bedeutet dann allerdings auch, dass keine Track- bzw. Pingbacks von externen Seiten mehr angenommen oder an externe Seiten versandt werden!

Nur interne Pingbacks verhindern

Wer Ping- und Trackbacks externer Seite weiterhin annehmen will, aber die internen Pingbacks blockieren möchte, hat zwei Optionen. Einmal die Verwendung eines Plugins. Dieser Weg ist aus unserer Sicht weniger empfehlenswert, da die beiden passenden Angebote (Disabler, No Self Pings) schon längere Zeit nicht mehr aktualisiert wurden.

Die empfehlenswertere Option ist ein ergänzender Eintrag in die functions.php (weitere Informationen zum Vorgehen findest du in unseren Artikeln zum Child Theme erstellen und dem Bearbeiten von Dateien):

function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}

add_action( 'pre_ping', 'no_self_ping' );

So werden weiterhin Ping- und Trackbacks von externen Seiten angenommen, aber keine internen Pingbacks erstellt.

Lösungen für WordPress Cron Probleme (WP-Cron)

Wie auch andere, vergleichbare Softwareprodukte bringt WordPress sein eigenes Cron-System mit. Dieses sorgt dafür, dass Aufgaben regelmäßig oder zu bestimmten Zeitpunkten ausgeführt werden — zumindest wenn alles gut geht. Und genau das ist das Problem.

Es gibt zwei wichtige Gründe warum geplante Beiträge oder andere Aufgaben in WordPress nicht zu dem Zeitpunkt ausgeführt werden, für den sie geplant waren. Um das zu erklären sollten wir kurz ausführen wie das WP-interne Cron-System funktioniert.

So funktioniert die eingebaute Cron-Funktion von WordPress

WordPress selbst pflegt in seiner Datenbank eine Liste an Aufgaben (Tasks), die regelmäßig oder zu einem bestimmten Zeitpunkt ausgeführt werden sollen. Dazu gehört z.B. das geplante Veröffentlichen eines Beitrags, aber auch weniger sichtbare Tätigkeiten wie bestimmte Wartungsaufgaben im Hintergrund. Diese Liste prüft WordPress immer wenn eine Seite aufgerufen wird auf Aufgaben die jetzt zu erledigen sind, in dem es die Systemzeit mit der für die Aufgabe hinterlegten Zeit überprüft. Ist eine oder mehrere Aufgaben fällig, werden diese alle während des Aufrufens dieser einen Seite ausgeführt. Dieser eingebaute Cron nennt sich WP-Cron.

Problemsituationen mit WP-Cron

Nun wird relativ einfach klar, dass die Ausführung dieser Tasks vom Aufrufen einer Seite abhängt. Wenn also bei einem wenig frequentierten Blog eine Aufgabe für Nachts um 2 Uhr geplant ist, kann es schon mal passieren, dass bis morgens um 7 niemand vorbei kommt und eine Seite abruft. Damit wird auch die Aufgabe nicht ausgeführt.

Ähnliche Probleme können beim Einsatz von Caching-Plugins auftreten, da diese die Ausgabe der Seite zur Beschleunigung derselben in fertiger Form ablegen und nicht bei jedem Aufruf alle WordPress-Funktionen ausführen. Das ist ganz normal und ist ein Grund warum sich die Seite damit schneller abrufen lässt. Für den WP-Cron ist das natürlich von Nachteil.

Lösungen für Probleme mit WP-Cron

Die einzige wirklich sinnvolle Möglichkeit bei solchen Problemen zu einer zuverlässigen Ausführung der Aufgaben zu gelangen ist die eingebauten Aufrufe zu deaktivieren und die Ausführung zeitgesteuert von außen auszulösen. Dieses externe Auslösen kann dann je nach Situation über die Cron-Funktion des eigenen Webhosters oder über einen Cron-Service geschehen. Beispiele für Anbieter von solchen Diensten finden sich am Ende des Artikels.

Was ist also zu tun? Zuerst muss die eingebaute Funktion deaktiviert werden. Das geht über folgenden Eintrag in der wp-config.php (siehe unsere Artikel zum Bearbeiten von WordPress Dateien und über die wp-config.php):

define('DISABLE_WP_CRON', true);

Um weitere Probleme zu vermeiden sollte der Eintrag direkt unter dieser Zeile erfolgen:

define('DB_COLLATE','');

Im Anschluss muss dann der externe Aufruf eingerichtet werden. Dieser sollte dafür sorgen, dass die Datei wp-cron.php im Stammverzeichnis des Blogs aufgerufen wird. Die gesamte URL sieht dann ungefähr so aus:

https://deineblogdomain.xx/wp-cron.php

oder auch

https://deineblogdomain.xx/blog/wp-cron.php

wenn das Blog sich in einem Unterverzeichnis befindet.

Die Häufigkeit des Aufrufs ist im Grunde nicht so wichtig. Wichtig zu wissen ist aber, dass Aufgaben dann immer nur zum Zeitpunkt des Aufrufs erfolgen können. Erfolgt der Aufruf also zum Beispiel alle 30 Minuten, immer zur vollen und zur halben Stunde, dann können Beiträge die für 20:15 Uhr geplant sind immer erst um 20:30 Uhr veröffentlicht werden. Ein Aufruf einmal pro Minuten ist natürlich möglich, belastet der Server aber evtl. mehr als gewollt. Irgend etwas zwischen 5 und 30 Minuten wäre wohl empfehlenswert, je nach eigenem Geschmack und etwaigem Tarif eines kostenpflichtigen Cron-Service.

Cron Plugins helfen den Überblick zu behalten

Nachdem das eigentliche Problem behoben ist, gilt es noch zu erwähnen, dass es eine Handvoll Plugins gibt, die dabei helfen, einen Überblick über die Liste der geplanten Aufgaben zu erhalten. Manche erlauben auch das hinzufügen eigener Tasks oder das Löschen bereits vorhandener. Diese sind in der Regel eher für fortgeschrittene Benutzer empfehlenswert.

Ein gutes Plugin, das wir selbst von Zeit zu Zeit einsetzen ist WP-Crontrol.

WordPress Cron Plugin

Es erlaubt das Löschen, Bearbeiten und sofortiger Ausführen geplanter Aufgaben und das Hinzufügen neuer.

Fazit

Durch das Deaktivieren der internen WP-Cron-Funktion und der externen, manuellen Steuerung der Aufrufe wird die Zuverlässigkeit geplanter Funktionen (z.B. geplante Veröffentlichung von Beiträgen) erhöht. Zudem ist die Performance des Blogs besser unter Kontrolle weil nicht mehr einzelne Seitenaufrufe durch eventuell gerade anstehende Aufgaben blockiert werden.

Links

wp-config.php – so funktioniert die wichtigste WordPress-Datei

WordPress speichert alle Texte und den überwiegenden Teil der Einstellungen in einer Datenbank. Davon ausgenommen sind einige wenige grundlegende Vorgaben, wie z.B. die Zugangsdaten der Datenbank. Diese sind in einer Datei namens wp-config.php hinterlegt, die damit zu einem zentralen Element einer jeden WordPress-Installation wird. Was es über diese Datei zu wissen gibt und worauf bei Änderungen zu achten ist, wollen wir im Folgenden kurz erklären.

wp-config.php editieren

Der Zugriff auf die Datei ist nur per FTP möglich. Beim Editieren der Datei ist stets sehr achtsam vorzugehen, da auch nur kleine Fehler dazu führen können, dass WordPress nicht mehr funktioniert. Es ist daher ratsam vor Änderungen stets eine Sicherheitskopie anzulegen (siehe unser Artikel: WordPress Dateien bearbeiten).

Wo findest Du die wp-config-php?

Normalerweise wird die wp-config.php bei der Installation von WordPress automatisch erstellt und in das Hauptverzeichnis der WordPress Installation geschrieben.

Wichtig zu wissen: Die Datei wp-config.php kann aus Sicherheitsgründen auch in einen Ordner oberhalb des Installationsverzeichnis verschoben werden!

WordPress Grundeinstellungen in der wp-config.php

Es existieren einige Informationen, die in jeder wp-config.php vorhanden sein müssen, ansonsten ist WordPress nicht funktionsfähig. Diese werden bereits während der Installation abgefragt und in die Konfigurationsdatei geschrieben.

Die wichtigsten Informationen sind im ersten Teil der Datei hinterlegt:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */
define( 'DB_USER', 'username_here' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

Dabei entspricht:

Bei einem Umzug der Website müssen hier unbedingt die veränderten Zugangsdaten eingetragen werden, sonst erhält WordPress keinen Zugang zur Datenbank.

Wichtig zu wissen: Die jeweiligen Werte müssen stets zwischen zwei Apostrophe 'Wert' stehen. Es dürfen keine Backticks sein ´Wert´.

Die zwei folgenden Einstellungen werden automatisch gesetzt und sollten in der Regel nicht geändert werden:

Authentifizierungsschlüssel und Salts

WordPress verschlüsselt sicherheitsrelevanten Daten z.B. für Login, Cookies etc. mit Hilfe von Authentifizierungsschlüssel und Salts. Dabei handelt es sich um bei der Installation erstellte zufällige Zeichenketten. Diese Funktion ist allerdings erst seit WordPress Version 2.6 enthalten und kann bei einer älteren WordPress Website fehlen. Dann sollten die Schlüssel in der wp-config.php nachgetragen werden. Bitte keinesfalls das folgende Beispiel verwenden, sondern bei Bedarf mit Hilfe des Online Salt-Key Generator eine eigene Zeichenkombinationen erstellen lassen.

/**#@+
* Authentication Unique Keys and Salts.
*
* @since 2.6.0
*/
define('AUTH_KEY',         'z/[,f+CV:fFnVxZ$cOa o{5U-E,_4n8P`ty}au(Su,7{*E!^v2GR?J&b2fVT|[=o');
define('SECURE_AUTH_KEY',  'sh(NE4Ben9tHNwyg!j+9tM92(rtC^-|g :o>PQ4SYia*J8M?CzpK*Tcn.>Z^`)');
define('LOGGED_IN_KEY',    'm^Vi|{uUb(%4?a/8X g6}ow.JzA?.9G7?aa*  ^ywjN)t+mgO)Tf.u)p?Z]o6~x@');
define('NONCE_KEY',        ')eGVYVk#Aa~Qk,d8 61JCF<EgA],;*llphR#KZ9kDV9oA:AJa(or%v529 s&6C?b');
define('AUTH_SALT',        'vm53HfTze~o{71(PQWQYG?I>Hv/c`u[ Y*kAdTnef=YhQ NPwu-@YireaE2YE~');
define('SECURE_AUTH_SALT', 'f#o:nCA^~s>^hCkE*8:WSs:R{%8t[Fa$V}dK*rQb#DQ..bk$)NPE!fl::IJGl2Y&');
define('LOGGED_IN_SALT',   '$2@;Gk,Q*udgV_U$W^-`lcdZ&c+f;65_xqhf0bG>}LfW{|_kn@#4#1..K=VK-Q,');
define('NONCE_SALT',       'z}iNW<Qig?Dfc^hS5=@rEh>pdbAl;?<&AT6Xn;1D>|{L&]qy8pj@G*{dkKxP5F7Q');

/**#@-*/

Datenbankpräfix

Die gleiche Datenbank kann von mehreren WordPress Installationen genutzt werden. Dann müssen allerdings die Tabellen in der Datenbank unterschiedliche Namen haben. Dafür gibt es ein sogenanntes Tabellenpräfix dessen Standard wp_ lautet und während der Installation verändert werden kann.

$table_prefix = 'wp_';
Achtung: Für eine späteren Wechsel des Präfixes reicht es NICHT aus diesen in der wp-config.phpanzupassen, sondern es müssen auch die Tabellennamen in der Datenbank geändert werden, sowie sämtliche Verweise innerhalb der Datenbank.

Debug Mode

Im folgenden Code lässt sich WordPress mittels define('WP_DEBUG', true); in den Debug Mode schalten. Diese Funktion ist in der Regel eher für Entwickler interessant. Alle anderen sollten es an dieser Stelle bei define('WP_DEBUG', false); belassen.

define('WP_DEBUG', false);

Ende der Bearbeitung

Es folgt eine Passage, die deutlich macht, dass unterhalb dieser Stelle nichts mehr editiert werden soll:

\* Das war’s, Schluss mit dem Bearbeiten! Viel Spaß beim Bloggen. \*
\* That's all, stop editing! Happy blogging. \*

Oberhalb dieser Stelle lassen sich weitere Einstellungen setzen, die wir gleich erläutern.

Nicht anfassen: Pfad zu WordPress und weitere Einstellungen

Der folgende Code sollte nie verändert werden. Dort ist der Pfad zur WordPress Installation hinterlegt (ABSPATH ) und es wird die wp-settings.php eingebunden.

Zusätzliche Einträge in wp-config.php

Wie bereits erwähnt lassen sich einige weitere wichtige Einstellungen in der wp-config.php vornehmen. Diese müssen stets oberhalb der "Schluss mit dem Bearbeiten" bzw. "stop editing" Zeile eingefügt werden.

Seitenadressen

Im WordPress Administrationsbereich unter "Einstellungen" > "Allgemein" wird eigentlich die "WordPress-Adresse (URL)" und die "Website-Adresse (URL)" konfiguriert. Diese beiden Werte lassen sich auch in die wp-config.php eintragen und überschreiben dann die Einstellungen im Administrationsbereich. Dort erscheinen die Werte dann ausgegraut und lassen sich nicht mehr bearbeiten.

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

Diese Möglichkeit sollte nur in Notfällen genutzt werden. Z.B. bei einem Website Umzug, bei dem bis zur Veränderung der Seitenadressen kein Zugang zum Administrationsbereich möglich ist.

Upload Verzeichnis verändern

Das Verzeichnis in das WordPress Bilder und Dateien hochlädt liegt normalerweise in wp-content/media . Mit folgendem Eintrag lässt sich ein anderer Ordner für die Uploads definieren:

define( 'UPLOADS', 'wp-content/anderer-media-ordner' );

Keine Automatischen Updates

Diese Einstellung ist normalerweise nicht zu empfehlen, da eine möglichst aktuelle WordPress Installation für mehr Sicherheit sorgt. Falls automatische Updates Probleme verursachen könnten, kann die Funktion mit folgender Einstellung abgeschaltet werden:

define( 'WP_AUTO_UPDATE_CORE', false );

Limit für Post Revisions

WordPress sichert regelmäßig die Inhalte von Beiträgen und Seiten zwischen, damit sich auch ein älterer Artikelstand wieder herstellen lässt. Falls die Anzahl der gespeicherten Zwischenstände (Revisionen) z.B. auf 3 begrenzt werden soll, ist dies mit folgendem Code möglich:

define( 'WP_POST_REVISIONS', 3 );

Die Speicherung der Zwischenstände lässt sich auch ganz ausschalten:

define( 'WP_POST_REVISIONS', false );

WP internen Cron deaktivieren

WordPress nutzt ein internes Cron-System für regelmäßige Wartungsaufgaben und die zeitgesteuerte Veröffentlichung von Artikel. Genauere Informationen finden sich in unserem WP-Cron Artikel. Soll auf einen externen Cronaufruf umgestellt werden, wird das interne System folgendermaßen ausgestellt:

define('DISABLE_WP_CRON', true);

Dies ist einer der wenigen Fälle bei denen die genaue Position innerhalb der wp-config.php wichtig ist. Um Probleme zu vermeiden, sollte der Eintrag direkt unter der folgenden Zeile erfolgen:

define('DB_COLLATE','');

Multisite einschalten

WordPress lässt sich als Multisitesystem betreiben. Dazu ist folgender Code notwendig:

define( 'WP_ALLOW_MULTISITE', true );

Editieren von Dateien im Administrationsbereich verhindern

Normalerweise bietet WordPress im Administrationsbereich die Möglichkeit Systemdateien zu editieren. Zur Erhöhung der Sicherheit lässt sich diese Funktion abschalten:

define('DISALLOW_FILE_EDIT', true);

Fazit wp-config.php

Die wp-config.php stellt ein zentrales Element in jeder WordPress Installation dar und einige wichtige Einstellungen lassen sich nur innerhalb dieser Datei vornehmen. Aber Vorsicht: Nie Änderungen ohne Sicherheitskopie vornehmen, denn Fehler in dieser Datei haben meist fatale Auswirkungen.