{"id":271336,"date":"2026-01-05T19:32:49","date_gmt":"2026-01-05T19:32:49","guid":{"rendered":"https:\/\/ru.wordpress.org\/plugins\/sf-geoguard\/"},"modified":"2026-01-05T19:32:56","modified_gmt":"2026-01-05T19:32:56","slug":"sf-geoguard","status":"publish","type":"plugin","link":"https:\/\/ve.wordpress.org\/plugins\/sf-geoguard\/","author":23424787,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"SF GeoGuard","header_author":"Oleh Semeniuk","header_description":"Country-based access control for WordPress.","assets_banners_color":"090302","last_updated":"2026-01-05 19:32:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/olehsf\/","rating":5,"author_block_rating":0,"active_installs":50,"downloads":219,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"olehsf","date":"2026-01-05 19:32:56"}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3433622,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3433622,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Main settings: enable protection, allowed countries and IP whitelist.","2":"Trusted proxies configuration for Cloudflare and reverse proxies.","3":"Test panel showing detected IP, country, and final access decision.","4":"Example 403 blocked access page."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1912,88702,31970,252909,253358],"plugin_category":[],"plugin_contributors":[253359],"plugin_business_model":[],"class_list":["post-271336","plugin","type-plugin","status-publish","hentry","plugin_tags-access-control","plugin_tags-country-block","plugin_tags-geo-block","plugin_tags-geo-restriction","plugin_tags-ip-whitelist","plugin_contributors-olehsf","plugin_committers-olehsf"],"banners":{"banner":"https:\/\/ps.w.org\/sf-geoguard\/assets\/banner-772x250.png?rev=3433622","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sf-geoguard\/assets\/icon-256x256.png?rev=3433622","icon_2x":"https:\/\/ps.w.org\/sf-geoguard\/assets\/icon-256x256.png?rev=3433622","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SF GeoGuard is a lightweight country-based access control plugin for WordPress.<\/p>\n\n<p>It allows you to restrict website access by visitor country using simple ISO country codes (US, CA, GB, etc.), helping reduce unwanted traffic, bot activity, and unnecessary server load.<\/p>\n\n<p>Main features:\n* Allow access only from selected countries\n* Whitelist IP addresses\n* Cache IP \u2192 country lookups for better performance\n* Customize the block message (HTML supported)\n* Choose what happens if the geo service is unavailable (allow or block)\n* Support for sites behind reverse proxies (Cloudflare, Nginx)<\/p>\n\n<p>SF GeoGuard focuses on doing one thing well: restricting access by country.\nIt does not modify WordPress core files and does not load unnecessary scripts on the frontend.<\/p>\n\n<p>By default, geo checks are applied only to frontend requests. You can optionally\nenable restrictions for wp-admin and wp-login.php in the plugin settings.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to a third-party IP geolocation service to determine\nthe visitor\u2019s country based on their IP address.<\/p>\n\n<p>Service used:\nIP-API (https:\/\/ip-api.com\/)<\/p>\n\n<p>Purpose:\nThe service is used to detect the visitor\u2019s country in order to apply\ncountry-based access rules configured in the plugin settings.<\/p>\n\n<p>Data sent:\n- Visitor IP address<\/p>\n\n<p>When data is sent:\n- On frontend page load when geo-based access control is enabled\n- Only if the visitor IP address cannot be resolved from the local cache<\/p>\n\n<p>Note:\nThe free IP-API endpoint does not support HTTPS. The plugin uses the HTTP\nendpoint provided by IP-API unless a paid HTTPS plan is used.<\/p>\n\n<p>Privacy &amp; Terms:\n- Privacy Policy: https:\/\/ip-api.com\/docs\/legal\n- Terms of Service: https:\/\/ip-api.com\/docs\/legal<\/p>\n\n<p>No personally identifiable information other than the IP address\nis stored, logged, or shared by the plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it via the Plugins menu.<\/li>\n<li>Activate <strong>SF GeoGuard<\/strong>.<\/li>\n<li>Go to <strong>Settings \u2192 SF GeoGuard<\/strong>.<\/li>\n<li>Enable protection and set the allowed countries.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='will%20this%20work%20with%20cloudflare%20or%20other%20proxies%3F'><h3>Will this work with Cloudflare or other proxies?<\/h3><\/dt>\n<dd><p>Yes. If your site is behind a reverse proxy (Cloudflare, Nginx, etc.), configure\n<strong>Trusted Proxies<\/strong> so the plugin can safely trust forwarded IP headers.<\/p><\/dd>\n<dt id='can%20i%20lock%20myself%20out%20of%20wp-admin%3F'><h3>Can I lock myself out of wp-admin?<\/h3><\/dt>\n<dd><p>If you enable <strong>Apply to wp-admin and login<\/strong>, make sure your own country\nis allowed or your IP address is whitelisted to avoid being locked out.<\/p><\/dd>\n<dt id='what%20happens%20if%20the%20geo%20service%20is%20unavailable%3F'><h3>What happens if the geo service is unavailable?<\/h3><\/dt>\n<dd><p>You can choose what to do if the geo service fails: allow access (recommended)\nor block access.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<p>Initial release.<\/p>","raw_excerpt":"Country-based access control for WordPress. Restrict access by country, whitelist IP addresses and reduce unwanted traffic.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/271336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=271336"}],"author":[{"embeddable":true,"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/olehsf"}],"wp:attachment":[{"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=271336"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=271336"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=271336"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=271336"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=271336"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ve.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=271336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}