Ga naar inhoud

wp-config.php optimaliseren: complete gids

wp-config.php optimaliseren: complete gids

De wp-config.php is het belangrijkste configuratiebestand van je WordPress site. In dit bestand staan cruciale instellingen voor database, beveiliging en performance. Door deze file slim te optimaliseren maak je je site sneller en veiliger.

In deze gids leer je alles over wp-config.php optimalisatie. Van basis security tot geavanceerde performance tweaks.

Wat is wp-config.php?

Het wp-config.php bestand bevat de belangrijkste configuratie van WordPress. Je vindt het in de hoofdmap van je WordPress installatie. Dit bestand wordt bij elke pageload geladen.

De file bevat onder andere:

  • Database toegangsgegevens
  • Security keys en salts
  • Table prefix
  • Debug instellingen
  • Geheugen limieten

Door dit bestand goed in te richten krijg je meer controle over je site. Je kunt performance verbeteren en je site beter beveiligen.

Let op: maak altijd een backup voordat je wp-config.php aanpast. Een fout kan je hele site onbereikbaar maken.

Database instellingen optimaliseren

De database configuratie staat bovenaan je wp-config.php. Deze instellingen zijn essentieel voor de verbinding met je database.

Standaard instellingen:

define('DB_NAME', 'database_naam');
define('DB_USER', 'database_gebruiker');
define('DB_PASSWORD', 'wachtwoord');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');

DB_HOST optimaliseren: bij veel hosting providers kun je in plaats van 'localhost' een directe socket gebruiken. Dit scheelt DNS lookups en is sneller.

Voorbeeld voor TransIP:

define('DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock');

DB_CHARSET: gebruik altijd 'utf8mb4' voor volledige emoji ondersteuning. Oudere installaties hebben soms 'utf8' wat minder karakters ondersteunt.

Debug mode: wanneer aan en uit

WordPress heeft ingebouwde debug functionaliteit. Dit is handig tijdens ontwikkeling maar moet altijd uit op productie.

Standaard debug instelling:

define('WP_DEBUG', false);

Voor development: zet debug aan om errors te zien:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
define('SCRIPT_DEBUG', true);

Deze combinatie logt errors naar wp-content/debug.log zonder ze te tonen. SCRIPT_DEBUG laadt unminified JavaScript en CSS voor makkelijker debuggen.

Voor productie: zet debug altijd uit:

define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);

Debug mode op productie maakt je site trager. Ook kunnen bezoekers gevoelige informatie zien in error messages.

Geheugen limiet verhogen

WordPress heeft standaard een beperkte PHP memory limit. Voor grote sites of zware plugins is dit vaak te weinig.

Standaard memory limit verhogen:

define('WP_MEMORY_LIMIT', '256M');

Voor het admin dashboard kun je een hogere limiet instellen:

define('WP_MAX_MEMORY_LIMIT', '512M');

Let op: deze limiet mag niet hoger zijn dan de PHP memory_limit van je server. Check dit in je hosting control panel of vraag je provider.

Voor kleine sites is 128M vaak genoeg. Webshops en sites met page builders hebben vaak 256M of meer nodig.

Security keys en salts vervangen

Security keys en salts versleutelen cookies en sessies. WordPress genereert deze automatisch bij installatie.

Voorbeeld:

define('AUTH_KEY', 'unieke random string');
define('SECURE_AUTH_KEY', 'unieke random string');
define('LOGGED_IN_KEY', 'unieke random string');
define('NONCE_KEY', 'unieke random string');

Waarom vervangen? als deze keys gelekt zijn kunnen hackers sessies kapen. Vervang ze regelmatig voor betere beveiliging.

Genereer nieuwe keys op: https://api.wordpress.org/secret-key/1.1/salt/

Kopieer de output en plak deze in je wp-config.php. Let op: alle users worden uitgelogd na het vervangen.

Voor extra WordPress beveiliging kun je deze keys elke 3-6 maanden verversen.

SSL forceren voor admin en login

Als je een SSL certificaat hebt kun je HTTPS forceren voor admin en login pagina's. Dit voorkomt dat wachtwoorden onversleuteld verstuurd worden.

Force SSL voor admin:

define('FORCE_SSL_ADMIN', true);

Voor hele site HTTPS: gebruik een .htaccess redirect in plaats van wp-config. Dat is efficiënter voor frontend pages.

Combineer deze instelling met een SSL redirect in je webserver configuratie. Check ook of je hosting automatische SSL biedt.

Auto-updates configureren

WordPress kan zichzelf, plugins en thema's automatisch updaten. Je kunt dit precies instellen in wp-config.php.

Core updates: standaard installeert WordPress minor updates automatisch. Voor major updates:

define('WP_AUTO_UPDATE_CORE', true);

Of helemaal uitschakelen:

define('WP_AUTO_UPDATE_CORE', false);

Plugin en theme updates: vanaf WordPress 5.5 kun je dit per item instellen in admin. Voor alle plugins/themes auto-update:

[add_filter](/kennisbank/wordpress-hooks-uitleg)('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');

Let op: test updates altijd eerst op staging. Auto-updates kunnen je site breken als plugins incompatibel zijn.

Voor managed WordPress hosting providers regelen updates vaak voor je.

Performance tweaks en optimalisaties

Met een paar regels code in wp-config.php maak je je site sneller en efficiënter.

Post revisies beperken: WordPress slaat elke wijziging op als revisie. Dit vult je database snel:

define('WP_POST_REVISIONS', 5);

Of helemaal uitschakelen:

define('WP_POST_REVISIONS', false);

Autosave interval verhogen: Standaard slaat WordPress elke 60 seconden auto op. Verlaag dit voor minder database queries:

define('AUTOSAVE_INTERVAL', 300);

Trash auto-delete: Standaard blijft verwijderde content 30 dagen in trash. Verlaag dit:

define('EMPTY_TRASH_DAYS', 7);

Cron optimaliseren: WordPress gebruikt wp-cron voor scheduled tasks. Dit draait bij elke pageload. Voor drukke sites is een echte cronjob beter:

define('DISABLE_WP_CRON', true);

Stel dan een server cronjob in die wp-cron.php elke 15 minuten aanroept.

Database reparatie: Voor database onderhoud kun je repair mode activeren:

define('WP_ALLOW_REPAIR', true);

Bezoek dan /wp-admin/maint/repair.php. Zet dit uit na gebruik want het is publiek toegankelijk.

File editor uitschakelen

WordPress heeft een ingebouwde file editor voor themes en plugins. Dit is een security risk want hackers kunnen hier code injecteren.

Schakel de editor uit:

define('DISALLOW_FILE_EDIT', true);

Nu kunnen admins geen theme/plugin bestanden meer aanpassen via dashboard. Gebruik FTP of SSH voor code wijzigingen.

Voor nog betere beveiliging kun je ook file uploads blokkeren:

define('DISALLOW_FILE_MODS', true);

Dit blokkeert ook plugin/theme installaties. Handig voor productie sites die niet meer veranderen.

Custom content directory

Standaard staat content in wp-content. Je kunt dit verplaatsen voor betere organisatie of beveiliging.

Custom content directory:

define('WP_CONTENT_DIR', '/pad/naar/custom-content');
define('WP_CONTENT_URL', 'https://example.com/custom-content');

Let op: verplaats de content map fysiek en update deze paths. Plugins kunnen breken als paths niet kloppen.

Dit is vooral handig voor multisite installaties of als je WordPress in een subdirectory draait.

Database table prefix wijzigen

WordPress gebruikt standaard 'wp_' als table prefix. Veel hackers targeten dit. Een custom prefix maakt SQL injection moeilijker.

Let op: wijzig dit alleen bij nieuwe installaties. Voor bestaande sites is dit complex en risicovol.

Bij installatie:

$table_prefix = 'xyz_';

Gebruik een random prefix met letters en underscore. Geen cijfers aan het begin.

Voor bestaande sites kun je plugins gebruiken maar maak eerst een volledige backup. Database problemen kunnen je hele site breken.

Multisite configuratie

Voor WordPress Multisite heb je extra configuratie nodig in wp-config.php.

Multisite activeren:

define('WP_ALLOW_MULTISITE', true);

Na network setup via admin voeg je dit toe:

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

SUBDOMAIN_INSTALL is true voor subdomain netwerk, false voor subdirectory.

Meer over multisite in onze multisite installatie handleiding.

Veelgemaakte fouten voorkomen

Syntax errors: één verkeerd karakter breekt je hele site. Check altijd syntax met een validator voor je upload.

Memory limit te hoog: als je meer instelt dan server toestaat krijg je een white screen. Ken je server limieten.

Debug op productie: dit toont gevoelige data aan bezoekers. Zet debug altijd uit op live sites.

Verkeerde file permissies: wp-config.php mag nooit 777 zijn. Gebruik 600 of 640 voor betere beveiliging.

Geen backup: maak altijd een backup voor je wp-config.php aanpast. Eén fout kan je site ontoegankelijk maken.

Extra tips voor gevorderden

WordPress address vs site address:

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

Handig als je WordPress in een subdirectory hebt maar op root wilt tonen.

Cookie domain voor multisite:

define('COOKIE_DOMAIN', '.example.com');

Hiermee werken cookies op alle subdomains.

FTP credentials: Bij sommige hosts vraagt WordPress om FTP gegevens voor updates. Definieer ze direct:

define('FS_METHOD', 'direct');

Of gebruik echte FTP credentials als je host dit vereist.

Concatenate scripts:

define('CONCATENATE_SCRIPTS', false);

Zet dit uit als je problemen hebt met JavaScript in admin.

Praktische configuratie voorbeelden

Voor kleine blog:

define('WP_MEMORY_LIMIT', '128M');
define('WP_POST_REVISIONS', 3);
define('AUTOSAVE_INTERVAL', 300);
define('EMPTY_TRASH_DAYS', 7);
define('DISALLOW_FILE_EDIT', true);

Voor grote webshop:

define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '768M');
define('WP_POST_REVISIONS', 5);
define('DISABLE_WP_CRON', true);
define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', true);

Voor development:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
define('SCRIPT_DEBUG', true);
define('SAVEQUERIES', true);

Door wp-config.php goed te configureren haal je meer uit je WordPress site. Je maakt het sneller, veiliger en stabieler. Kies de instellingen die passen bij jouw situatie en test altijd eerst op een staging omgeving.

Meer informatie: WordPress.org documentatie

Veelgestelde vragen

Is WordPress gratis?

WordPress zelf is gratis open-source software. Je betaalt alleen voor hosting, een domeinnaam, en eventuele premium themes of plugins die je wilt gebruiken.

Hoe moeilijk is WordPress om te leren?

WordPress is relatief eenvoudig te leren. De basisfuncties kun je binnen een paar uur onder de knie krijgen. Voor geavanceerde aanpassingen is meer tijd nodig.

Kan ik WordPress later verhuizen naar een andere host?

Ja, WordPress websites kunnen worden verhuisd naar een andere hosting provider. De meeste providers bieden hiervoor gratis hulp aan.

Was dit artikel nuttig?

Vergelijk direct hosting pakketten om de beste keuze voor jouw situatie te maken.

Klaar om te kiezen?

Vergelijk hosting pakketten