Die Installation von WordPress wird dir bei vielen Anbietern inzwischen abgenommen und ist mit wenigen Klicks erledigt. Als Anwender siehst du oftmals nicht einmal eine Konfigurationsdatei und verpasst damit die Chancen, die sich bei der individuellen Konfiguration ergeben.

Wie ein guter Koch, der sich mit den Zutaten bestens auskennt, kannst du mit dem entsprechenden Wissen die Konfigurationsdatei von WordPress exakt auf deinen Geschmack abstimmen.

Im Folgenden zeige ich dir die Standardkonfiguration von WordPress, um darauf basierend einen Blick auf die weiteren Konfigurationsmöglichkeiten zu werfen. Wenn du dich also schon auskennst, kannst du mit Hilfe des Inhaltsverzeichnisses gleich zum entsprechenden Absatz springen.

WP-Config: Standardkonfiguration

Die Standardkonfiguration beinhaltet die Zugangsdaten für die (MySQL-)Datenbank, das gewünschte Präfix für die Datenbanktabellen, mehrere Sicherheitsschlüssel zur Authentifizierung, so wie den absoluten Pfad zum Verzeichnis, in dem sich WordPress befindet.

Screenshot der benötigen Daten bei der Installation von WordPress

Infoscreen bei der Installation von WordPress

Dies alles findest du standardmäßig in der Datei wp-config.php, die sich im obersten Verzeichnis von WordPress (oft das root-Verzeichnis genannt) befindet. Ist die Datei nicht vorhanden, kannst du die Datei wp-config-sample.php als Blaupause verwenden. Benenne die Datei um in wp-config.php und erstelle somit deine Konfigurationsdatei.

Datenbank-Zugangsdaten

Screenshot bei der Installation von WordPress

Konfiguration der Datenbank bei der Installation von WordPress

Benötigt werden die Zugangsdaten zur Datenbank, die du von deinem Hoster erhältst. Abgefragt wird neben Datenbankname, Benutzername und Passwort der Name des Hosts, welcher von einem einfachen localhost bis hin zu 127.0.0.1:/tmp/mysql5.sock variieren kann. Wenn du den Hostnamen nicht finden kannst, hilft oftmals ein Blick auf die Liste der gängigen Hostnamen.

define('DB_NAME',     'datenbankname');
define('DB_USER',     'benutzername');
define('DB_PASSWORD', 'passwort');
define('DB_HOST',     'localhost');

Unicode UTF-8 ist der de facto Standard, um die Zeichen aller Sprachen darzustellen und muss in der Regel nicht geändert werden. Sonderfälle mit unterschiedlichen Sprachen kannst du mit DB_COLLATE anpassen. Meistens kannst du den Wert aber leer lassen, sodass automatisch der Wert von DB_CHARSET herangezogen wird. Hier kann die Standardeinstellung also getrost beibehalten werden.

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

Datenbank-Tabellenpräfix

WordPress legt alle Tabellen in der Datenbank mit dem Präfix wp_ an. Dieses Präfix kannst du bei der Installation festlegen. Es dient in erster Linie zur Kennung, z.B. bei mehreren WordPress-Installationen innerhalb einer Datenbank. Bei der Wahl eines eigenen Präfixes musst du darauf achten, dass du nur Buchstaben, Zahlen und Unterstriche verwenden darfst.

$table_prefix = 'wp_';

Sicherheitsschlüssel zur Authentifizierung

Gleich mehrere Schlüssel (engl. keys) und Salze (engl. salts) stellen sicher, dass bei der Verschlüsselung von Informationen (z.B. Cookies) genügend Variationen erzeugt werden. Dies erschwert es Hackern, an vertrauliche Daten zu kommen und trägt somit maßgeblich zur Sicherheit deiner Website bei.

define('AUTH_KEY',         'dein einzigartiger Token');
define('SECURE_AUTH_KEY',  'dein einzigartiger Token');
define('LOGGED_IN_KEY',    'dein einzigartiger Token');
define('NONCE_KEY',        'dein einzigartiger Token');
define('AUTH_SALT',        'dein einzigartiger Token');
define('SECURE_AUTH_SALT', 'dein einzigartiger Token');
define('LOGGED_IN_SALT',   'dein einzigartiger Token');
define('NONCE_SALT',       'dein einzigartiger Token');

Je länger, kryptischer und einzigartiger diese Werte sind, desto besser. WordPress stellt dafür einen Onlinegenerator zur Verfügung, bei dem du den ganzen Block nur noch kopieren und in deine Konfigurationsdatei einfügen musst.

Fehleranalyse & Debugging

Um bei der Entwicklung Fehler schneller zu finden, kannst du WordPress im Debugmodus betreiben. Dies ist ressourcenintensiv und nur zur Fehlersuche gedacht. Für eine laufende Seite solltest du WP_DEBUG mit dem Wert false deaktivieren.

define('WP_DEBUG', false);

Was Debugging ist, und wie du es zur Fehleranalyse nutzt, kannst du unter Fehler & Notfälle in der Wissensdatenbank nachlesen.

Absoluter Pfad zu WordPress

Am Ende der Datei befindet sich der absolute Pfad zum Verzeichnis von WordPress. Das Ändern des Wertes von ABSPATH ist nicht vorgesehen.

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

Abschließend wird noch die Datei wp-settings.php eingebunden, die weitere Dateien lädt und die Funktionen von WordPress initialisiert.

require_once(ABSPATH . 'wp-settings.php');

WP-Config: Erweiterte Anpassungen

Achtung!
Die im Weiteren vorgestellten Konfigurationsmöglichkeiten verändern die Funktionsweise von WordPress. Bitte nimm Änderungen an der Datei wp-config.php nur vor, wenn du dir sicher bist, und prüfe die Änderungen vor dem Speichern genauestens.
Vor allem Änderungen an der Verzeichnisstruktur empfehlen sich nur bei der (Erst-)Installation von WordPress, da ansonsten weitere Anpassungen, wie das Aktualisieren der Datenbank, notwendig sind.

Änderungen an der Konfigurationsdatei

Änderungen und Erweiterungen in der Datei wp-config.php dürfen nicht am Ende der Datei erfolgen, sondern müssen vor folgendem Kommentar eingefügt werden.

/* That's all, stop editing! Happy blogging. */

Hierarchie und Benennung

Du kannst die Namen und Struktur der Verzeichnisse nach Belieben anpassen. Dies ist vor allem für das Zusammenspiel mit anderen Frameworks wie z.B. Angular JS oder React relevant.

WordPress-URL

Mittels WP_SITEURL wird definiert, wo sich die Dateien von WordPress befinden, und zwar unabhängig davon, was in der zugehörigen Datenbankeinstellung hinterlegt ist.

define( 'WP_SITEURL', 'https://hootproof.de' );

Dies ist nicht nur hilfreich beim Umzug von WordPress, sondern spart auch Anfragen an die Datenbank. Wichtig ist, dass du die URL ohne Schrägstrich am Ende einträgst.

Website-URL

Die URL, die deine Besucher im Browser eingeben, wird über WP_HOME gesteuert und spart weitere Datenbankanfragen.

define( 'WP_HOME', 'https://hootproof.de' );

Befinden sich die Dateien von WordPress im obersten Verzeichnis ist der Wert identisch mit WP_SITEURL.

Contentverzeichnis & URL

Alle seitenspezifischen Dateien, die für deine Website relevant sind, befinden sich standardmäßig im Ordner wp-content (mehr zur WordPress-Verzeichnisstruktur). Dies umfasst u.a. Plugins und Uploads, aber auch das Caching. Um Link und Verzeichnis dieses Ordners zu ändern, musst du WP_CONTENT_URL und WP_CONTENT_DIR anpassen. WP_CONTENT_DIR ist dabei der vollständige Serverpfad zum Verzeichnis (ohne Schrägstrich am Ende) und WP_CONTENT_URL die öffentliche URL, über die die Dateien aufgerufen werden.
Um wp-content in website umzubenennen, sieht die Anpassung folgendermaßen aus:

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/website' );
define( 'WP_CONTENT_URL', 'https://hootproof.de/website' );

Pluginverzeichnis & URL

Auch den Namen für den Ordner der Plugins kannst du an die eigenen Wünsche anpassen.

define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/website/plugins' );
define( 'WP_PLUGIN_URL', 'https://hootproof.de/website/plugins' );

Uploads

Die Uploads befinden sich im Verzeichnis wp-content/uploads. Diesen Wert musst du im Gegensatz zu den anderen als relativen Pfad angeben, ansonsten kannst du den Wert aber frei definieren.

define( 'UPLOADS', '/website/media' );

Hinweis: Relative Pfade mit einem Schrägstrich zu Beginn verweisen auf das oberste Verzeichnis der Website!

FTP- & SSH-Zugangsdaten

Je nach Konfiguration des Servers müssen die Zugangsdaten hinterlegt werden, um Updates bequem durchführen zu können. Alle Infos dazu findest du im Artikel FTP-Zugangsdaten in WordPress speichern in der Wissensdatenbank.

Automatische Updates

Die automatischen Updates von WordPress kannst du im Detail konfigurieren oder wahlweise komplett deaktivieren. AUTOMATIC_UPDATER_DISABLED deaktiviert alle automatischen Updates.

define( 'AUTOMATIC_UPDATER_DISABLED', true );

WP_AUTO_UPDATE_CORE beeinflusst nur die Updates für WordPress und kann die Werte false, true oder 'minor' annehmen.

define( 'WP_AUTO_UPDATE_CORE', false );

Wenn du alle Updates (auch Plugins) selbst steuern möchtest, empfehle ich dir das Plugin Vevida Optimizer.

Automatisches Speichern & Revisionen

Beim Arbeiten in WordPress werden die Änderungen automatisch alle 60 Sekunden in einer neuen Revision gespeichert. Dieses Intervall steuerst du über AUTOSAVE_INTERVAL.

define( 'AUTOSAVE_INTERVAL', 120 ); // 120 Sekunden

Dabei entstehen schnell viele Datensätze, die oftmals nicht gebraucht werden. Ein Limit für die max. Anzahl an Revisionen kannst du mittels WP_POST_REVISIONS festlegen.

define( 'WP_POST_REVISIONS', 25 );

Alternativ kannst du die Revisionen mit dem Wert false auch komplett deaktivieren.

Papierkorb

Auch im Papierkorb sammelt sich schnell viel Datenmüll an, der 30 Tage lang wertvollen Speicherplatz belegt. Das automatische Leeren des Papierkorbs kann mittels EMPTY_TRASH_DAYS in Tagen festgelegt werden.

define( 'EMPTY_TRASH_DAYS', 30 ); // 30 Tage

Mit dem Wert 0 deaktivierst du die Funktion des Papierkorbs vollständig. Aber Achtung, die Daten werden dann sofort und unwiderruflich gelöscht.

Cache

Das WordPress-Caching aktivierst du über WP_CACHE.

define( 'WP_CACHE', true );

Caching-Plugins erweitern die Funktionalität des Cachings um weitere Funktionen. Viele der gängigen Caching-Plugins benötigen deswegen noch zusätzliche Einstellungen in der wp-config.php, aber auch in anderen Dateien wie z.B. der Datei .htaccess.

W3 Total Cache

Das Plugin W3 Total Cache benötigt zusätzlich zum aktivierten WP_CACHE eine eigene Einstellung.

define('W3TC_EDGE_MODE', true);

WP Super Cache

WP Super Cache von Automattic erwartet den Serverpfad zum Verzeichnis, in dem sich das Plugin befindet.

define( 'WPCACHEHOME', '/var/www/website/plugins/wp-super-cache/' );

Cookies

Wenn du im Zusammenhang mit dem Caching eine Subdomain für statische Inhalte nutzt, kannst du die Cookies beschränken. Cookies werden dann nur noch für die Domain gesetzt, die du als COOKIE_DOMAIN definiert hast.

define( 'COOKIE_DOMAIN', 'hootproof.de' );

Darüber hinaus gibt es für Cookies noch tiefergreifende Einstellungen zu COOKIEPATH, SITECOOKIEPATH, ADMIN_COOKIE_PATH und PLUGINS_COOKIE_PATH.

WordPress Multisite

In einer Multisite werden mehrere Instanzen von WordPress über eine Installation verwaltet. Diesen Ansatz kannst du in der wp-config.php aktivieren, jedoch sind dafür noch weitere Schritte zur Konfiguration des Netzwerks erforderlich.

define( 'WP_ALLOW_MULTISITE', true );

WP-Config: Sicherheitseinstellungen

wp-config.php absichern

Die Konfigurationsdatei wp-config.php ist die wichtigste Datei in WordPress. Hier befinden sich sensible (Zugangs-)Daten, die unter keinen Umständen und zu keiner Zeit öffentlich einsehbar sein dürfen.

Dateiberechtigungen

Bei einer laufenden Website gibt es selten einen guten Grund, um Änderungen an der Konfigurationsdatei vorzunehmen. Nach der Konfiguration kannst du die Dateiberechtigungen so minimal wie möglich ansetzen.

Berechtigungen der Datei wp-config.php

Berechtigungen der Datei wp-config.php

Zugang zur Datei

Die Datei wp-config.php wird im Browser nur als eine weiße Seite dargestellt. Wenn du auf Nummer sicher gehen willst, kannst du den Zugang zur Datei über die .htaccess aktiv unterbinden.

<files wp-config.php>
  order allow,deny
  deny from all
</files>

Noch besser ist es, die Datei an einem Ort abzulegen, der gar nicht erst über den Browser aufgerufen werden kann. Dafür entfernst du alle sensiblen Daten aus der Datei wp-config.php und lädst diese aus einem nicht öffentlichen Verzeichnis. Dieser Schritt ist zugegebenermaßen nichts für Anfänger ohne PHP-Kenntnisse!

require_once(ABSPATH . '../config/wp-config.php');

WordPress absichern

SSL aktivieren

Ein SSL-Zertifikat sorgt für mehr Sicherheit beim Übertragen sensibler Daten. Du solltest dies auf jeden Fall für den Login und den Adminbereich aktivieren, damit weder Passwörter noch Cookies im Klartext übertragen werden.

define( 'FORCE_SSL_ADMIN', true );

Voraussetzung für eine verschlüsselte Übertragung ist ein valides SSL-Zertifikat, das du z.B. von Let’s Encrypt erhältst.

Theme- & Plugin-Editor deaktivieren

Um Änderungen an Dateien in Themes und Plugins aus dem Adminbereich zu unterbinden, kannst du den Code-Editor unter Design » Editor deaktivieren.

define( 'DISALLOW_FILE_EDIT', true );

Wenn du noch einen Schritt weiter gehen willst, hast du zudem die Möglichkeit, auch das Installieren und Aktualisieren von Plugins und Themes zu unterbinden. Der Code-Editor wird in diesem Fall ebenfalls deaktiviert.

define( 'DISALLOW_FILE_MODS', true );

Zusammenfassung

WordPress lässt sich extrem vielfältig konfigurieren und kann zwischen vielen unterschiedlichen Szenarien und Anwendungsbereichen unterscheiden. In diesem Beitrag hast du die wichtigsten Konfigurationsmöglichkeiten kennengelernt. Wie du gesehen hast, kannst du mit verhältnismäßig wenig Aufwand und ohne zusätzliche Plugins noch einiges an Individualität, Performance und Sicherheit herausholen. Weitere Informationen findest du im WordPress Codex.

Was ist dir bei der Konfiguration von WordPress am wichtigsten und welche Tricks nutzt du am häufigsten? Teile deine Erfahrungen gerne in den Kommentaren unter diesem Beitrag.

Quelle Titelbild: Death To Stock

WordPress Hilfe ab 149€

Gleich geschafft...
Bitte bestätige deine Anmeldung mit dem Link in der E-Mail, die wir die gerade geschickt haben.
So löst du 5 typische WordPress Probleme
Der Frühjahrsputz für deine Website
Kostenloses PDF: Schaff Platz für Neues, mehr Sicherheit und Page Speed.
WordPress Support ab 99€/h
Noch ein Schritt zum Download...
Just one more step...
Almost there...
Please confirm your email address by clicking the link in the email we just sent you.
Die Checkliste zum Abhaken für deine Performance-Optimierung
Kostenloses E-Book & noch mehr Ressourcen
Noch ein Schritt zum Download...
Noch ein Schritt zum Download...
Fast geschafft...
Kostenlose Anmeldung zur Challenge und zum Newsletter von HootProof,de und BlogYourThing.com. Du kannst dich jederzeit wieder abmelden. Datenschutz von HootProof & Datenschutz von BlogYourThing