Stream – Activity Log & Audit Trail
Stream is a complete activity log and audit trail for your WordPress site: see what changed, who changed it, and when. From plugin activations to post edits, login attempts to new user creation, every user and system action is recorded in an audit log built for debugging, security monitoring, and compliance. Every logged action is displayed in an activity stream and organized for easy filtering by User, Role, Context, Action or IP address. Admins can highlight entries in the activity log—such as suspicious user activity—to investigate what’s happening in real time. Stream also lets you configure email alerts and webhooks for integrations like Slack and IFTTT, so your team knows the moment something goes wrong. Stream keeps its own logs healthy too: records are automatically purged on the retention schedule you choose, with batched deletion and orphaned-data cleanup that stay reliable even on very large sites. Stream is also AI-ready: its abilities are exposed through the WordPress Abilities API and MCP Adapter, so AI assistants and other tools can securely query your site’s activity records. For advanced users, Stream supports a network view of all activity records on your Multisite, exclude rules to ignore certain kinds of user activity, and a WP-CLI command for querying records. Stream is free and fully open source — development happens in the open on GitHub, maintained by XWP. With Stream’s powerful activity logging, you’ll have the information you need to responsibly manage your WordPress sites. Built-In Tracking Integrations For Popular Plugins: Advanced Custom Fields bbPress BuddyPress Easy Digital Downloads Gravity Forms Jetpack Two Factor User Switching WooCommerce Yoast SEO Built-In Tracking For Core Actions: Posts Pages Custom Post Types Users Themes Plugins Tags Categories Custom Taxonomies Settings Custom Backgrounds Custom Headers Menus Media Library Widgets Comments Theme Editor WordPress Core Updates Other Noteworthy Features: Multisite view of all activity records on a network Limit who can view user activity records by user role Set exclude rules to ignore certain kinds of user activity Live updates of user activity records in the Stream Export your Activity Stream as a CSV or JSON file WP-CLI command for querying records Configuration Most of the plugin configuration is available under the “Stream” → “Settings” page in the WordPress dashboard. Request IP Address The plugin expects the $_SERVER['REMOTE_ADDR'] variable to contain the verified IP address of the current request. On hosting environments with PHP processing behind reverse proxies or CDNs the actual client IP is passed to PHP through request HTTP headers such as X-Forwarded-For and True-Client-IP which can’t be trusted without an additional layer of validation. Update your server configuration to set the $_SERVER['REMOTE_ADDR'] variable to the verified client IP address. As a workaround, you can use the wp_stream_client_ip_address filter to adapt the IP address: add_filter( 'wp_stream_client_ip_address', function( $client_ip ) { // Trust the first IP in the X-Forwarded-For header. // ⚠️ Note: This is inherently insecure and can easily be spoofed! if ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $forwarded_ips = explode( ',' $_SERVER['HTTP_X_FORWARDED_FOR'] ); if ( filter_var( $forwarded_ips[0], FILTER_VALIDATE_IP ) ) { return $forwarded_ips[0]; } } return $client_ip; } ); ⚠️ WARNING: The above is an insecure workaround that you should only use when you fully understand what this implies. Relying on any variable with the HTTP_* prefix is prone to spoofing and cannot be trusted! Known Issues We have temporarily disabled the data removal feature through plugin uninstallation, starting with version 3.9.3. We identified a few edge cases that did not behave as expected and we decided that a temporary removal is preferable at this time for such an impactful and irreversible operation. Our team is actively working on refining this feature to ensure it performs optimally and securely. We plan to reintroduce it in a future update with enhanced safeguards. Contribute There are several ways you can get involved to help make Stream better: Report Bugs: If you find a bug, error or other problem, please report it! You can do this by creating a new topic in the plugin forum. Once a developer can verify the bug by reproducing it, they will create an official bug report in GitHub where the bug will be worked on. Translate into Your Language: Use the official plugin translation tool to translate Stream into your language. Suggest New Features: Have an awesome idea? Please share it! Simply create a new topic in the plugin forum to express your thoughts on why the feature should be included and get a discussion going around your idea. Issue Pull Requests: If you’re a developer, the easiest way to get involved is to help out on issues already reported in GitHub. Be sure to check out the contributing guide for developers. Thank you for wanting to make Stream better for everyone! View contributors here.
Top keywords
- stream16×1.97%
- activity13×1.60%
- ip12×1.48%
- user10×1.23%
- records8×0.99%
- address6×0.74%
- client6×0.74%
- client ip6×0.74%
- ip address6×0.74%
- activity records5×0.62%
- custom5×0.62%
- forwarded5×0.62%
Shield Security – Smart Bot Blocking, Brute-Force Login Protection & File Scanning
Most security plugins hand you a dashboard full of alerts and expect you to know what to do next. Shield works differently. It blocks threats automatically, repairs what it can on its own, and then shows you exactly what still needs your attention — ranked by impact, not volume. Less noise. More action. 🤖 Security That Runs Itself The most powerful thing Shield does is what it handles without you: Automatic IP Blocking — every visitor is quietly scored as they interact with your site. Failed logins, firewall blocks, silentCAPTCHA failures, and other signals accumulate into a reputation score. When a visitor’s score crosses the threshold, Shield blocks them — automatically, without you lifting a finger Automatic File Repair — when a file integrity scan finds a changed WordPress core file, Shield pulls the original from WordPress.org and restores it. Detected and fixed, without waiting for you to act Automatic Bot Recognition — Shield identifies legitimate crawlers (Google, Bing, DuckDuckGo, Yandex, Apple) and known services (ManageWP, Pingdom, Stripe, CloudFlare) and never blocks them. Your SEO and monitoring tools keep working 🧭 Guided Security, Not Just a Dashboard Shield organises your security into four focused areas so you always know where to look: Queue — things that need your attention, ranked by priority. Not everything at once — just what matters right now Investigate — dig into blocked IPs, security events, and the specific signals that triggered each one Configure — guided setup for each protection area, with clear recommendations matched to your site Reports — a clear view of what Shield has blocked, detected, and repaired over time The goal: guide you quickly towards action, not bury you in data. 🛡️ Free Protection Bot Blocking & Firewall silentCAPTCHA — blocks bad bots on login, registration, lost password, and comment forms using passive signals invisible to real visitors. No CAPTCHA keys. No external requests. No JavaScript that breaks your forms. Everything runs on your server (GDPR friendly). Firewall rules blocking common WordPress attack patterns — SQL injection probes, known exploit signatures, suspicious request parameters XML-RPC protection — disable or restrict entirely, including pingbacks and trackbacks REST API firewall — block unauthenticated requests Fake crawler detection — identifies bots spoofing legitimate search engines Login & Account Security Two-factor authentication (2FA) — email codes, Google Authenticator, or YubiKey OTP for all users Brute force protection with configurable login attempt limits and cooldown Session locking — tie sessions to a browser or IP to stop account theft after a successful login User enumeration blocking — closes off ?author= probes used to harvest usernames before an attack Scanning & Integrity Core file scanning — compares WordPress core against official checksums and repairs changed files automatically Suspicious PHP detection — flags PHP files in locations where they have no business being Abandoned plugin detection — identifies unmaintained plugins most likely to carry unpatched vulnerabilities Visibility & Control Security Admin PIN — lock Shield’s own settings so other administrators cannot quietly weaken your configuration Security activity log — logins, user changes, plugin and theme events, post edits, and suspicious requests: Everything in one clear view IP Rules — automatic & manual block and bypass rules, CIDR range support, full per-IP request history 🤝 CrowdSec Integration Shield is the only WordPress security plugin with a native CrowdSec integration. CrowdSec aggregates threat signals from millions of sites into a shared IP reputation network — your site blocks known attackers before they ever probe you, using intelligence far beyond your own traffic history. ✨ ShieldPRO Passkeys — phishing-resistant, passwordless login for users Backup login codes — emergency 2FA access when a device is lost AI-based malware scanner — detects known and unknown PHP malware Plugin & theme file scanning — compares installed files against WordPress.org originals, flagging unauthorised changes Vulnerability scanning — active checks across all installed plugins and themes Broader spam protection — WooCommerce, EDD, Contact Form 7, Ninja Forms, Elementor, and more Traffic rate limiting — cap request rates per IP to absorb high-volume bot floods User suspension — manual or automatic suspension of idle accounts MainWP integration White Label — rename and rebrand Shield for client sites Who It’s For Shield suits site owners, agencies, and MSPs who want protection that runs itself — not a plugin that demands constant attention to be useful. If you have been burned by security plugins that generate more noise than protection, or dashboards that tell you everything is wrong without telling you what to fix, Shield was built to be the alternative.