{"id":347136,"date":"2026-08-13T11:55:19","date_gmt":"2026-08-13T11:55:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/contentguard-content-protection-suite\/"},"modified":"2026-08-13T11:54:43","modified_gmt":"2026-08-13T11:54:43","slug":"scrapefence-content-protection","status":"publish","type":"plugin","link":"https:\/\/as.wordpress.org\/plugins\/scrapefence-content-protection\/","author":23539906,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.6","stable_tag":"1.4.6","tested":"7.0.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"ScrapeFence Content Protection","header_author":"junjie","header_description":"Your web shield against scrapers & bots. Stop scrapers, protect content, stay SEO\u2011safe.","assets_banners_color":"","last_updated":"2026-08-13 11:54:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.contentguard.top","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.6":{"tag":"1.4.6","author":"junjie2029","date":"2026-08-13 11:54:43"}},"upgrade_notice":{"1.4.6":"<ul>\n<li>Updated version number to 1.4.6, all previous fixes included.<\/li>\n<\/ul>","1.4.5":"<p>Security and compliance update. Highly recommended for all users.<\/p>","1.4.4":"<p>Revised translation system for compliance. Recommended for all users.<\/p>","1.4.3":"<p>Maintenance release with improved detection, trap realism, and security hardening. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.6"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2013 Real\u2011time block statistics, 7\u2011day trend chart, and reason distribution.","2":"Settings \u2013 Six tabs covering every protection module.","3":"Block Log \u2013 Filter by type or status, perform bulk actions, and view detailed records.","4":"Setup Wizard \u2013 Three\u2011step guided setup with mandatory IP allowlisting."}},"plugin_section":[],"plugin_tags":[275511,55129,13860,18193,598],"plugin_category":[],"plugin_contributors":[275512],"plugin_business_model":[],"class_list":["post-347136","plugin","type-plugin","status-publish","hentry","plugin_tags-anti-crawler","plugin_tags-anti-scraping","plugin_tags-bot-blocking","plugin_tags-content-protection","plugin_tags-honeypot","plugin_contributors-junjie2029","plugin_committers-junjie2029"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/scrapefence-content-protection.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<h4>What ScrapeFence Does for You<\/h4>\n\n<p><strong>\ud83c\udf6f Honeypot Traps<\/strong>\nAutomatically inserts invisible fake links that only bots can see. When a bot clicks them, it gets trapped in an endless loop of fake pages, wasting its time and resources \u2014 your real content stays safe.<\/p>\n\n<p><strong>\u26a1 Rate Limiting<\/strong>\nDetects when a single IP requests too many pages too fast (a clear sign of scraping) and either locks the IP out or traps it in a honeypot. Real human visitors never hit the limit.<\/p>\n\n<p><strong>\ud83d\udd11 Brute Force Protection<\/strong>\nWatches for repeated failed logins, 404s, and 403 errors from the same IP. When a threshold is reached, the IP is automatically blocked or sent into a trap. Search engine bots are never affected.<\/p>\n\n<p><strong>\u23f1\ufe0f Cron Attack Defense<\/strong>\nStops abuse of WordPress\u2019s wp-cron.php by limiting how often non\u2011allowlisted IPs can trigger it, preventing server resource drain.<\/p>\n\n<p><strong>\ud83c\udf10 IP Allowlist &amp; UA Blocklist<\/strong>\nComes preloaded with the IP ranges of Google, Bing, Baidu, Yandex, and other major search engines \u2014 they will never be blocked. You can also block known scraper User\u2011Agents with a simple list.<\/p>\n\n<p><strong>\ud83d\udce1 REST API Protection<\/strong>\nLocks down the WordPress REST API for unauthenticated visitors, preventing scrapers from harvesting your posts as raw JSON data.<\/p>\n\n<p><strong>\ud83d\udee1\ufe0f Frontend Protection<\/strong>\nDisable right\u2011click, F12, text selection, and image dragging on the front end. Optionally add a copyright notice that appears whenever someone copies text from your site.<\/p>\n\n<p><strong>\ud83d\udcca Dashboard &amp; Logs<\/strong>\nSee today\u2019s blocked requests, total blocks, active traps, and a 7\u2011day trend chart. Browse a full, searchable log of every blocked IP, complete with status filters and bulk actions.<\/p>\n\n<p><strong>\ud83e\uddd9 Setup Wizard<\/strong>\nOn activation, a simple 3\u2011step wizard guides you through adding your own IP to the allowlist, detecting caching plugins, and getting basic protection running in under a minute.<\/p>\n\n<p><strong>\ud83c\udf0d Fully Bilingual<\/strong>\nSpeaks your language \u2014 automatically switches between English and Chinese based on your WordPress settings.<\/p>\n\n<h4>Why ScrapeFence<\/h4>\n\n<ul>\n<li><strong>SEO\u2011safe<\/strong> \u2013 Real search engines are pre\u2011allowlisted. Honeypot pages use noindex. You won\u2019t lose rankings.<\/li>\n<li><strong>You won\u2019t block yourself<\/strong> \u2013 Admins are always exempt, and the setup wizard makes sure your own IP is safe.<\/li>\n<li><strong>Active trapping, not just blocking<\/strong> \u2013 Honeypots actively waste scrapers\u2019 resources, instead of simply saying \u201cno\u201d.<\/li>\n<li><strong>Lightweight &amp; focused<\/strong> \u2013 Does one job and does it well, without slowing down your site.<\/li>\n<\/ul>\n\n<p>Looking for even more advanced protection (behavior detection, DNS verification, burst protection)? <strong>Upgrade to ContentGuard Pro<\/strong> at <a href=\"https:\/\/contentguard.top\">contentguard.top<\/a>.<\/p>\n\n<h3>Privacy Notice<\/h3>\n\n<p>ScrapeFence stores IP addresses and User\u2011Agent strings of visitors who trigger security rules (e.g., rate limiting, honeypot traps, brute force attacks). This data is kept <strong>only on your server<\/strong>, never sent anywhere else, and is automatically cleaned up after 30 days. You can clear all logs at any time from the Maintenance page. No cookies are placed on visitors\u2019 browsers.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>scrapefence<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the 'Plugins' menu.<\/li>\n<li>Follow the automatic setup wizard at <strong>ScrapeFence \u2192 Setup Wizard<\/strong>.<\/li>\n<li><strong>Important<\/strong>: Add your own IP to the allowlist during Step 2.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20affect%20my%20seo%3F\"><h3>Will this affect my SEO?<\/h3><\/dt>\n<dd><p>No. Search engine IPs are pre\u2011allowlisted, and honeypot pages include <code>noindex, nofollow<\/code> tags. Real crawlers never see the traps.<\/p><\/dd>\n<dt id=\"can%20i%20block%20myself%3F\"><h3>Can I block myself?<\/h3><\/dt>\n<dd><p>No. Logged\u2011in administrators are always exempt. The wizard also forces you to add your IP to the allowlist before you can finish setup.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes. ContentGuard Pro adds behavior detection, probe detection, burst protection, reverse DNS verification, and more. Learn more at <a href=\"https:\/\/contentguard.top\">contentguard.top<\/a>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20test%20the%20honeypot%3F\"><h3>How do I test the honeypot?<\/h3><\/dt>\n<dd><p>Enable \u201cManual Honeypot\u201d in the settings, then visit <code>?cgtrap=1<\/code> from an IP that is not in your allowlist.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. If you use full\u2011page caching, exclude any URL containing <code>cgtrap<\/code> from the cache. The wizard and dashboard will detect your caching plugin and show you the exact rule to add.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20collect%3F\"><h3>What data does the plugin collect?<\/h3><\/dt>\n<dd><p>None externally. All logs live entirely on your own server.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Security: Full sanitization of all $_SERVER inputs (HTTP headers, REQUEST_URI).<\/li>\n<li>Compliance: Fixed text domain to match plugin slug.<\/li>\n<li>Compliance: Replaced direct <code>&lt;script&gt;<\/code> tags with wp_add_inline_script.<\/li>\n<li>Performance: Optimized cache key prefixes to avoid conflicts.<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Compliance: Rewrote translation system using WordPress standard functions (<code>__()<\/code>, <code>load_plugin_textdomain<\/code>) for WordPress.org submission.<\/li>\n<li>Performance: Moved log table cleanup to daily cron to reduce database load.<\/li>\n<li>Fix: Version tag alignment in readme.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Improved: Honeypot links now use more stealthy hiding styles and dynamic anchor text.<\/li>\n<li>Improved: Trap pages now feature realistic theme headers, real post titles, delayed link clicks, and Proof\u2011of\u2011Work to exhaust bots.<\/li>\n<li>Improved: Dashboard \"Safe Passes Today\" now includes DNS verification passes when Pro is active.<\/li>\n<li>Improved: Blocked\/trapped IPs are now globally intercepted on all subsequent requests.<\/li>\n<li>Improved: Log table now retains up to 1000 records per reason for better performance.<\/li>\n<li>Improved: DNS verification pass now grants temporary allowlist status for 12 hours (Pro).<\/li>\n<li>Improved: Probe detection now checks WebGL renderer consistency and Canvas fingerprint (Pro).<\/li>\n<li>Fixed: Status labels in IP manager now correctly reflect real\u2011time block\/trap state.<\/li>\n<li>Fixed: Trend chart now uses counter data to avoid missing historical data.<\/li>\n<li>Fixed: Several edge\u2011case logic errors in behavior detection, burst protection, and DNS verification.<\/li>\n<li>Security: Replaced all direct error_log calls with a controlled internal logging function.<\/li>\n<li>Security: Added rate limiting to the dynamic configuration AJAX endpoint.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Initial release on WordPress.org.<\/li>\n<li>Core features: honeypot traps, rate limiting, IP allowlist\/blocklist, REST API control, frontend protection.<\/li>\n<li>New in free: brute force protection and cron attack defense.<\/li>\n<li>New: admin IP safety status card on dashboard.<\/li>\n<li>New: bulk actions in block log.<\/li>\n<li>New: settings export\/import via JSON.<\/li>\n<li>Improved: setup wizard enforces admin IP allowlisting.<\/li>\n<li>Improved: 7\u2011day trend chart colors match plugin theme.<\/li>\n<li>Full bilingual English\/Chinese support.<\/li>\n<\/ul>","raw_excerpt":"Stop scrapers, block bots, and protect your content \u2014 all without hurting your SEO. ScrapeFence uses smart honeypots, rate limiting, and IP controls t &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/347136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=347136"}],"author":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/junjie2029"}],"wp:attachment":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=347136"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=347136"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=347136"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=347136"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=347136"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=347136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}