{"id":323835,"date":"2026-06-11T09:00:17","date_gmt":"2026-06-11T09:00:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/geo-control-website-protection-and-redirect\/"},"modified":"2026-06-11T08:59:55","modified_gmt":"2026-06-11T08:59:55","slug":"cordonai-geo-access-and-redirect","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cordonai-geo-access-and-redirect\/","author":23513485,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0","requires":"5.3","requires_php":"7.4","requires_plugins":null,"header_name":"CordonAI Geo Access and Redirect","header_author":"CordonAI","header_description":"Block or allow visitors by country and IP on the front-end and the WordPress login\/admin area. Country-based redirects, language-prefix rewriting, detailed logs and statistics \u2014 powered by a bundled offline GeoIP database with optional MaxMind updates. No external calls during lookups.","assets_banners_color":"173967","last_updated":"2026-06-11 08:59:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"cordonai","date":"2026-06-11 08:59:55"}},"upgrade_notice":{"1.1.0":"<p>Plugin renamed and updated for WordPress.org review compliance.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3568520,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3568520,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3568536,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Front-end protection with country selector and quick-select buttons.","2":"Logs and blocked-activity charts.","3":"Block page customisation with live preview."}},"plugin_section":[],"plugin_tags":[88702,32023,2493,1945,600],"plugin_category":[54],"plugin_contributors":[266636],"plugin_business_model":[],"class_list":["post-323835","plugin","type-plugin","status-publish","hentry","plugin_tags-country-block","plugin_tags-geo-redirect","plugin_tags-geoip","plugin_tags-ip-block","plugin_tags-security","plugin_category-security-and-spam-protection","plugin_contributors-cordonai","plugin_committers-cordonai"],"banners":{"banner":"https:\/\/ps.w.org\/cordonai-geo-access-and-redirect\/assets\/banner-772x250.png?rev=3568536","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cordonai-geo-access-and-redirect\/assets\/icon-128x128.png?rev=3568520","icon_2x":"https:\/\/ps.w.org\/cordonai-geo-access-and-redirect\/assets\/icon-256x256.png?rev=3568520","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>CordonAI Geo Access and Redirect lets you decide who can reach your WordPress\nsite based on the visitor's country and IP address. Everything runs through\nstandard WordPress hooks \u2014 the plugin never modifies <code>wp-config.php<\/code>,\n    .htaccess, or any core file.<\/p>\n\n<p>Country lookups use a bundled MaxMind GeoLite2 database that ships with the\nplugin, so <strong>no external request is made when a visitor is checked<\/strong>. If you\nwant fresher data you can add a free MaxMind license key and update the\ndatabase on demand or weekly.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Block (or allow) front-end visitors by country and by IP address.<\/li>\n<li>Protect the login page and admin area by country\/IP, with brute-force-friendly\ndefaults \u2014 established administrators are never locked out of the dashboard.<\/li>\n<li>IP rules support exact addresses, wildcards (<code>203.0.113.*<\/code>) and CIDR ranges\n(<code>203.0.113.0\/24<\/code>), for both IPv4 and IPv6.<\/li>\n<li>Allow-list that always wins over any block rule.<\/li>\n<li>Crawler allow-list (Google, Bing, Yandex, and more) so blocking a country\nnever hurts your search visibility.<\/li>\n<li>Country redirects, including \"keep the current path\" (<code>%PATH%<\/code>) redirects.<\/li>\n<li>Language-prefix URL rewriting for multilingual sites (e.g. <code>\/en\/<\/code> \u2192 <code>\/it\/<\/code>).<\/li>\n<li>Logs and at-a-glance charts of blocked activity (24 hours \/ 7 days \/ 30 days).<\/li>\n<li>Fully customisable block screen with a live preview.<\/li>\n<li>Offline by design \u2014 privacy friendly, no tracking, no ads, no upsells.<\/li>\n<li>Optional MaxMind GeoLite2 auto-update with your own license key.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can optionally connect to one external service, MaxMind, to update\nits bundled GeoIP database. It is used only for downloading database updates and\nis never contacted during normal visitor lookups.<\/p>\n\n<ul>\n<li>What it is and what it is used for: MaxMind GeoLite2 provides the\nIP-to-country database the plugin uses to detect a visitor's country. The\nbundled copy works fully offline; this service is only used to download a newer\ncopy of that database when you choose to.<\/li>\n<li>What data is sent and when: a request is sent to\nhttps:\/\/download.maxmind.com\/app\/geoip_download only when a site administrator\nhas entered a MaxMind license key and then either clicks \"Update database now\"\non the Settings tab or has enabled the weekly automatic update. The request\nincludes your MaxMind license key (so MaxMind can authorise the download) and,\nas with any HTTP request, your server's IP address. No visitor data and no site\ncontent are ever sent. If you do not enter a license key, the plugin makes no\nexternal requests at all.<\/li>\n<li>Service provider: MaxMind, Inc.\nGeoLite2 End User License Agreement: https:\/\/www.maxmind.com\/en\/geolite2\/eula\nPrivacy Policy: https:\/\/www.maxmind.com\/en\/privacy-policy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP from\nthe Plugins screen.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Open <strong>CordonAI Geo<\/strong> in the admin menu and configure the Front-end, Login \/\nAdmin, Redirects and Settings tabs.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20call%20an%20external%20service%20to%20look%20up%20countries%3F\"><h3>Does it call an external service to look up countries?<\/h3><\/dt>\n<dd><p>No. Lookups use the bundled offline database. The only optional network use is\ndownloading database updates from MaxMind when you provide a license key (see\nthe \"External services\" section above).<\/p><\/dd>\n<dt id=\"will%20blocking%20a%20country%20hurt%20my%20seo%3F\"><h3>Will blocking a country hurt my SEO?<\/h3><\/dt>\n<dd><p>Add the relevant crawlers on the Crawlers tab; they are always allowed through,\nregardless of country.<\/p><\/dd>\n<dt id=\"can%20i%20lock%20myself%20out%3F\"><h3>Can I lock myself out?<\/h3><\/dt>\n<dd><p>Login\/Admin country rules could block your own access, so add your IP to the\nallow list first. As an extra safeguard, logged-in administrators are never\nblocked inside the dashboard.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20a%20maxmind%20license%20key%3F\"><h3>Where can I get a MaxMind license key?<\/h3><\/dt>\n<dd><p>Sign up for a free GeoLite2 account at maxmind.com and create a license key,\nthen paste it on the Settings tab.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed the plugin and improved WordPress.org compliance: the block page is\nstyled with inline attributes instead of a style tag, region data is passed via\nwp_localize_script, the optional MaxMind external service is documented in this\nreadme, and database updates are written only inside the uploads directory.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial build: country and IP filtering for front-end and login\/admin,\nallow-lists, crawler allow-list, country redirects, language-prefix rewriting,\nlogs and statistics, customisable block page, offline GeoIP with optional\nMaxMind updates.<\/li>\n<\/ul>","raw_excerpt":"Block or allow WordPress visitors by country and IP, redirect by location, and log activity using an offline GeoIP database.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323835"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cordonai"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323835"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323835"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323835"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323835"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323835"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}