Met het WordPress .htaccess bestand kun je de toegang vanuit specifieke landen blokkeren, ook wel geo-blocking genoemd. Dit betekent dat het verkeer van bepaalde landen al op serverniveau wordt geweigerd. Hiervoor maak je meestal gebruik van .htaccess regels op Apache- of LiteSpeed-servers, GeoIP/MaxMind databases, IP-bloklijsten of CDN/WAF-diensten. Belangrijk om te weten is dat het .htaccess bestand op zichzelf niet kan bepalen uit welk land een bezoeker komt; voor landgebonden blokkades moet de server die landinformatie als variabele aanleveren of moeten de IP-adresblokken van de betreffende landen handmatig in de regels worden opgenomen.
In deze gids bespreken we hoe geo-blocking werkt met .htaccess in WordPress, wanneer het zinvol is, geven we voorbeeldregels, veilige implementatiestappen en de meest gemaakte fouten. Het doel is niet alleen een stukje code te delen, maar een bruikbaar proces te bieden waarmee je risico’s zoals 500-fouten, SEO-verlies, uitval van betaalmethoden of per ongeluk blokkeren van Googlebot minimaliseert. Host je je WordPress site bij Hostragons? Maak dan altijd eerst een back-up via je hostingpaneel en voer veranderingen stapsgewijs door WordPress hosting.
Wat is Geo-Blocking en waarom gebruik je het op WordPress sites?
Geo-blocking is het beperken van toegang op basis van de geografische locatie van bezoekers, meestal afgeleid uit hun IP-adres. Bijvoorbeeld: een webshop die alleen in Nederland levert kan besluiten om verkeer uit andere landen te blokkeren als die veel neprekeningen, spamreacties of brute-force aanvallen veroorzaken.
Op WordPress sites kan geo-blocking verschillende doelen dienen:
- Het terugdringen van kwaadwillende inlogpogingen op het beheerdersgedeelte.
- Het verminderen van spamreacties, bot-registraties en valse formulierinzendingen.
- Toegang beperken vanwege licentie-, distributie- of wettelijke eisen.
- Serverbronnen sparen door verkeer van niet-doelgroepen te beperken.
- Onnodige verzoeken voor betaling, verzending of service uit niet-ondersteunde gebieden verminderen.
Geo-blocking vervangt echter geen volledige firewall. IP-locaties kunnen onnauwkeurig zijn, en VPN’s of proxies kunnen blokkades omzeilen. Sommige legitieme gebruikers kunnen per ongeluk ook geblokkeerd worden. Daarom is geo-blocking het meest effectief als onderdeel van een bredere beveiligingsaanpak met sterke wachtwoorden, tweefactorauthenticatie, een up-to-date WordPress-installatie, veilige plugins, SSL-certificaten en regelmatige back-ups SSL certificaat.
Hoe gebruikt het .htaccess bestand landinformatie?
Het .htaccess bestand is een krachtig configuratiebestand voor Apache en LiteSpeed servers waarmee je op mappenniveau instellingen kunt aanpassen. Voor WordPress regelt het permalink-structuren, redirects, caching regels, bestandsrechten en bepaalde beveiligingsmaatregelen. Standaard kan .htaccess echter niet bepalen uit welk land een IP-adres komt.
Er zijn drie hoofdmethoden om landblokkades te realiseren:
- Regels schrijven op basis van een GeoIP- of MaxMind variabele die de server levert.
- IP-blokken van landen handmatig toevoegen in het .htaccess bestand.
- Landblokkades instellen via CDN/WAF of beveiligingsplugins, met .htaccess als aanvullende maatregel.
Vanaf 2026 is de meest robuuste en efficiënte aanpak meestal via CDN/WAF of een serveroplossing gebaseerd op MaxMind. IP-blokken veranderen regelmatig, en duizenden regels in .htaccess kunnen de prestaties schaden. Toch blijft .htaccess handig voor kleine, gerichte blokkades.
Belangrijke voorbereidingen vóór je begint
Een fout in het .htaccess bestand kan je site volledig ontoegankelijk maken. Veelvoorkomende problemen zijn 500 Internal Server Errors, redirect loops, problemen met wp-admin of onverwachte 403 Forbidden meldingen. Volg daarom deze checklist voordat je live gaat:
- Download een kopie van je huidige .htaccess bestand en maak een gedateerde back-up.
- Maak een volledige back-up van je WordPress bestanden en database website back-up.
- Controleer of je toegang hebt tot je hostingpaneel, bestandsbeheer of FTP.
- Test eerst met één regel; voeg niet meteen meerdere IP’s of landen toe.
- Zorg dat Googlebot, betalingsverwerkers, verzendintegraties, API services en CDN IP’s niet worden geblokkeerd.
- Test de toegang na wijziging vanaf verschillende netwerken, niet alleen vanaf je eigen browser.
Meestal ontstaan fouten doordat regels op de verkeerde plek staan. De WordPress rewrite regels staan meestal tussen BEGIN WordPress en END WordPress regels. Voeg je eigen beveiligingsregels boven deze blok toe; WordPress overschrijft namelijk soms de regels binnen die blok.
Methode 1: GeoIP of MaxMind variabele gebruiken voor landblokkade in .htaccess
Als je server landcodes als omgevingsvariabelen aanlevert, kun je in .htaccess regels schrijven die daarop filteren. Oudere installaties gebruiken mod_geoip, modernere setups MaxMind GeoLite2 met mod_maxminddb of vergelijkbare modules. De variabelenaam hangt af van de serverconfiguratie, voorbeelden zijn GEOIP_COUNTRY_CODE, MM_COUNTRY_CODE of GEOIP_COUNTRY_CODE_V6.
Voorbeeld logica
Hieronder een voorbeeld waarbij de server de variabele GEOIP_COUNTRY_CODE levert en daarmee landen worden geblokkeerd. Controleer eerst welke variabele jouw provider ondersteunt voordat je deze code gebruikt.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN|KP)$
RewriteRule ^ - [F,L]
</IfModule>
In dit voorbeeld krijgen verzoeken uit Rusland (RU), China (CN) en Noord-Korea (KP) een 403 Forbidden. Landcodes zijn volgens ISO 3166-1 alpha-2, bijvoorbeeld TR voor Nederland, DE voor Duitsland, US voor de VS. Meerdere landen scheid je met een verticale streep (|).
Alleen wp-login.php blokkeren per land
In plaats van de hele site te blokkeren kun je ook alleen het inlogscherm beperken. Zo blijft je site wereldwijd toegankelijk, maar is de toegang tot wp-login.php beperkt tot bepaalde landen.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-login\.php$ [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN)$
RewriteRule ^ - [F,L]
</IfModule>
Deze aanpak beschermt vooral tegen brute-force aanvallen die vaak gericht zijn op wp-login.php en xmlrpc.php. Het is een efficiënte manier om de beveiliging te versterken zonder de hele site te blokkeren.
Methode 2: Land IP-blokken handmatig toevoegen in .htaccess
Als GeoIP-variabelen niet beschikbaar zijn, kun je theoretisch IP-blokken van landen toevoegen in .htaccess. Dit is echter arbeidsintensief en onderhoudsgevoelig. Grote landen hebben duizenden CIDR-blokken, wat de prestaties negatief beïnvloedt. De lijst moet ook regelmatig worden geüpdatet vanwege veranderende IP-toewijzingen.
Vanaf Apache 2.4 kun je bijvoorbeeld de volgende syntax gebruiken:
<RequireAll>
Require all granted
Require not ip 203.0.113.0/24
Require not ip 198.51.100.0/24
</RequireAll>
De IP-blokken in dit voorbeeld zijn illustratief. Gebruik actuele en betrouwbare bronnen voor echte lijsten. Bij honderden tot duizenden regels is het beter om deze blokkades via een firewall, WAF of CDN te doen in plaats van .htaccess.
Methode 3: Geo-blocking via CDN of WAF, ondersteund met .htaccess
De meest schaalbare oplossing voor geo-blocking is het gebruik van een CDN of WAF, zoals Cloudflare, Sucuri, LiteSpeed Web ADC of Imunify360. Deze systemen filteren verkeer al voordat het de webserver bereikt, wat de belasting op CPU, RAM en PHP verlaagt.
.htaccess blijft wel nuttig voor aanvullende beperkingen, zoals het correct doorgeven van echte client IP’s achter CDN’s, het afschermen van gevoelige bestanden of het beperken van toegang tot specifieke WordPress URL’s. Maar het zware werk voor geo-blocking ligt bij de CDN/WAF.
Vergelijking van methoden
| Methode | Voordelen | Nadelen | Geschikt voor |
|---|---|---|---|
| GeoIP variabele in .htaccess | Snel op serverniveau, niet afhankelijk van plugin. | Server moet GeoIP/MaxMind ondersteunen, variabelenaam kan verschillen. | Technische sites met Apache/LiteSpeed en servercontrole. |
| IP-blokken in .htaccess | Geen extra modules nodig, praktisch voor kleine lijsten. | Performance en onderhoud bij grote lijsten problematisch. | Kleine IP-bloklijsten willen toepassen. |
| CDN/WAF geo-blocking | Filtert verkeer vooraf, makkelijk beheer, rapportage mogelijk. | Extra configuratie nodig, risico op onbedoeld blokkeren. | Sites met veel verkeer en hoge beveiligingseisen. |
| WordPress beveiligingsplugin | Beheer via dashboard, weinig technische kennis vereist. | Werkt na PHP-laadproces, minder vroeg in request. | Kleine tot middelgrote sites zonder codeerervaring. |
Stap-voor-stap: veilige geo-blocking met .htaccess voor WordPress

1. Bepaal je blokkadegebied
Wil je de hele site blokkeren, alleen wp-login.php, of specifieke eindpunten zoals xmlrpc.php? Een volledige blokkade kan SEO en gebruikerservaring schaden. Beperk je liever tot beheerdersgedeelten of kwetsbare punten.
2. Analyseer je verkeer
Bekijk minimaal 7-14 dagen aan logs, beveiligingsplugin data en Google Analytics. Als een land slechts 3% van je bezoekers levert maar 60% van de aanvallen, is blokkeren logisch. Maar als het land ook 12% van je omzet levert, weeg dan goed af.
3. Controleer serverondersteuning
Gebruik je Apache, LiteSpeed of Nginx? .htaccess werkt alleen met Apache en LiteSpeed. Bij Nginx moet je serverregels schrijven. Hostragons biedt geschikte pakketten met WordPress-compatibiliteit, back-ups, SSL en beveiliging Webhosting.
4. Voeg een testregel toe
Begin met één land of IP-blok. Voeg de regel boven de WordPress rewrite-blok toe in .htaccess. Test homepage, wp-admin, productpagina’s, formulieren en betaalproces.
5. Monitor logs
Houd het aantal 403-berichten en hun bronnen in de gaten. Te veel 403 kan duiden op te brede regels. Achter een CDN zie je soms de CDN-IP in logs, wat geo-detectie kan verstoren.
6. Documenteer je regels
Voeg commentaar toe in .htaccess met datum, reden en goedkeuring. Bijvoorbeeld: # 2026-02-15: blokkade RU & CN vanwege brute-force aanvallen.
SEO aandachtspunten
Geo-blocking kan SEO beïnvloeden. Googlebot crawlt vaak vanaf Amerikaanse IP’s. Blokkeer je landen zoals US, dan kan Google je pagina’s niet goed indexeren, wat tot dalende rankings en crawl errors leidt.
Let op het volgende:
- Blokkeer Googlebot, Bingbot en andere zoekmachinebots nooit per ongeluk.
- Test hreflang, canonical URL’s en redirects bij internationale targeting.
- Zorg dat 403 pagina’s duidelijke uitleg geven, geen lege foutmeldingen.
- Volg Search Console rapporten over bereikbaarheid en crawlstatistieken.
- Gebruik geo-blocking niet om content te verbergen of anders aan te bieden (cloaking).
Voor internationale blogs, SaaS, toerismebedrijven en exporteurs is volledige landblokkade een serieuze beslissing. Voor het verminderen van spam zijn vaak reCAPTCHA, rate limiting, beveiligingsplugins of WAF-regels minder risicovol.
Is geo-blocking alleen voldoende voor beveiliging?
Nee. Geo-blocking vermindert het aanvalsoppervlak, maar stopt niet alle aanvallen. VPN’s, proxies, botnets en cloudservers kunnen beperkingen omzeilen. Combineer daarom altijd met:
- Regelmatige updates van WordPress core, thema’s en plugins.
- Unieke beheerdersgebruikersnamen en sterke wachtwoorden.
- Tweefactorauthenticatie.
- Rate limiting op wp-login.php en xmlrpc.php.
- Verwijder ongebruikte plugins en gebruik alleen betrouwbare thema’s.
- SSL-certificaat voor HTTPS SSL certificaat.
- Regelmatige back-ups en een herstelplan.
Een goed geconfigureerde hostingomgeving met resource-isolatie, actuele PHP-versie, malware-scans, automatische back-ups en snelle support is de basis Veilige WordPress hosting.
Veelgemaakte fouten en oplossingen
Fout 1: Te grote IP-lijsten in .htaccess
Duizenden regels vertragen elke aanvraag. Gebruik liever CDN/WAF of firewall op serverniveau voor grote lijsten.
Fout 2: Googlebot en integraties blokkeren
Betaalproviders, e-maildiensten, verzend-API’s en zoekmachines kunnen uit diverse landen komen. Controleer logs na wijziging en whitelist kritieke IP’s.
Fout 3: .htaccess verwachten op Nginx
Nginx ondersteunt geen .htaccess. Gebruik Nginx configuratie, WAF, CDN of beveiligingsplugins.
Fout 4: Live bewerken zonder back-up
Zelfs een kleine typefout kan site offline halen. Maak altijd backups en bewaar originele content voordat je opslaat.
Fout 5: Blokkades zonder data onderbouwing
Blokkeren op aannames kan klanten kosten. Analyseer logs, beveiligingsdata en omzetcijfers. Beperk blokkades waar mogelijk tot kwetsbare onderdelen.
Alternatieven: Plugins, firewalls en serveroplossingen
Wil je niet zelf coderen? WordPress beveiligingsplugins bieden vaak landblokkades aan via een gebruiksvriendelijk dashboard. Ze activeren meestal na PHP-laadproces, dus serverbronnen worden minder vroeg beschermd dan met .htaccess of WAF. Voor kleine sites is dit vaak voldoende.
Op serverniveau kun je via CSF, firewalld, iptables of hostingpaneel IP/CIDR blokkades instellen. Dit werkt eerder in het verzoekproces, maar is voor shared hosting meestal niet beschikbaar. Overleg met Hostragons support voor passende beveiligingsoplossingen of bekijk onze beheerde hostingpakketten Hostingpakketten.
Checklist na implementatie
Nadat je geo-blocking hebt ingesteld, rond je het proces af met deze controles:
- Test homepage, categorieën, berichten, product- en winkelmandpagina’s.
- Controleer wp-admin en wp-login.php toegang via toegestane landen.
- Probeer contactformulieren, registratieformulieren en betaalprocessen.
- Gebruik Search Console live URL test.
- Bekijk serverlogs op 500 fouten en onverwachte stijgingen in 403 meldingen.
- Is er een CDN? Maak de cache leeg en controleer dat echte IP’s correct worden doorgegeven.
- Documenteer het doel en de datum van je regels in het teamdossier.
Deze stappen zijn cruciaal voor WordPress sites die omzet genereren. Een simpele landblokkade kan immers invloed hebben op betalingstransacties, advertentiekwaliteit, e-mailvalidatie of API-integraties API en Integraties.
Veelgestelde vragen
Is het mogelijk om met .htaccess toegang uit bepaalde landen te blokkeren in WordPress?
Ja, mits de server GeoIP/MaxMind variabelen levert of je IP-blokken handmatig toevoegt. Het .htaccess bestand zelf herkent het land van een IP niet automatisch.
Schade ik mijn SEO met landblokkades via .htaccess?
Dat kan als het verkeerd wordt ingesteld. Blokkeer nooit per ongeluk Googlebot of CDN IP’s. Beperk indien mogelijk alleen wp-login.php of andere gevoelige pagina’s.
Welke landcodes gebruik ik?
Gebruik ISO 3166-1 alpha-2 codes, zoals NL voor Nederland, DE voor Duitsland, US voor de Verenigde Staten, FR voor Frankrijk. Controleer welke variabele je server gebruikt voor de juiste codeformaten.
Werkt geo-blocking via .htaccess op Nginx?
Nee, Nginx verwerkt geen .htaccess bestanden. Gebruik Nginx configuraties, WAF, CDN of beveiligingsplugins voor geo-blocking.
Stop ik met geo-blocking VPN-gebruikers?
Nee, geo-blocking vermindert aanvallen, maar VPN’s, proxies en botnets kunnen beperkingen omzeilen. Gebruik altijd meerdere beveiligingslagen.
Korte samenvatting en volgende stappen
Met het WordPress .htaccess bestand kun je toegang uit bepaalde landen blokkeren om spam, brute-force aanvallen en onnodig verkeer te verminderen. De veiligste aanpak is eerst je data analyseren, alleen noodzakelijke delen blokkeren, back-ups maken, testen en logs monitoren. Voor grote landblokkades zijn CDN/WAF of serveroplossingen vaak sneller en stabieler. Zoek je een veilige, snelle en duurzame hosting voor je WordPress site? Bekijk dan de hosting-, domein- en SSL oplossingen van Hostragons en implementeer je configuratie rustig en doordacht Domeinsopzoeking WordPress hosting.