Activity Log – Monitor User and Agent Changes
An easy to use, fully supported WordPress activity log plugin. Want to know exactly who does what on your WordPress site? Activity Log works like an airplane’s black box: it quietly records every action in the WordPress admin — and now every request made through the REST API, WP-CLI, WP-Cron, and more — so you always know: If someone is trying to hack your site When a post was published, and who published it If a plugin/theme was activated/deactivated Suspicious admin activity The plugin doesn’t require any setup; it works right out of the box, runs on its own database table so it doesn’t slow down your site, and stays out of your way until you need it. What’s New Request Source Tracking – See exactly where each change came from: the WP Admin, the REST API, WP-CLI, WP-Cron, XML-RPC, or the WP Abilities API, including which Application Password was used. Filter the log by source to quickly spot automated or API-driven changes alongside manual admin activity. Email Logging – Capture all emails sent from your WordPress site for streamlined debugging and compliance. Especially useful for WooCommerce stores tracking order emails alongside other site events. Export to CSV – Export your Activity Log data to CSV, or build support for your own format with our dedicated Export API. Data Privacy and GDPR Compliance – Export or erase log data directly through the WordPress Privacy Tools. If you have more than a handful of users, keeping track of who did what by hand is virtually impossible. Activity Log solves that by tying every action back to the user who triggered it, in an easy-to-filter view on the Activity Log screen and in a Recent Activity timeline on the WordPress dashboard. With the Activity Log you can record: WordPress – Core updates Posts – Created, updated, deleted Pages – Created, updated, deleted Custom Post Type – Created, updated, deleted Tags – Created, updated, deleted Categories – Created, updated, deleted Taxonomies – Created, updated, deleted Menus – Created, updated, deleted Media – Created, updated, deleted Comments – Created, approved, unapproved, trashed, untrashed, spammed, unspammed, deleted Users – Login, logout, login failed, update profile, role changed, registered, deleted Plugins – Installed, updated, activated, deactivated, changed Themes – Installed, updated, deleted, activated, changed (Editor and Customizer) Widgets – Added to sidebar, deleted from sidebar, order widgets Setting – General, writing, reading, discussion, media, permalinks Options – Extended custom settings for 3rd party plugins Export – Exported activity log file Request Source – WP Admin, REST API, WP-CLI, WP-Cron, XML-RPC, WP Abilities, and Application Password name when used AI Agents – Lets AI agents read your logs on WordPress 6.9 or later, once you turn it on in the settings. They can query logs, summarize activity, and detect suspicious events like repeated failed logins, new or promoted administrator accounts, and changes to sensitive settings. WooCommerce – Track products, orders, customers, and more bbPress – Forums, topics, replies, taxonomies, and other actions Emails sent from WordPress site – Sending successful, sending failed Dashboard Widget – Recent activity timeline on the WordPress dashboard (for users who can view the log), grouped by day, with load more and a link to the full log There’s more, of course, but you get the point… For each event recorded by the activity log, the following details are also logged: Date and time of occurrence User and user role responsible for the change Source IP address from which the change originated Request source — WP Admin, REST API, WP-CLI, WP-Cron, XML-RPC, or WP Abilities Affected object where the change occurred Old and new values for changed settings, posts, users, user roles, comments, plugin versions, themes, WordPress core version, widgets, and terms, with secret values redacted and long values truncated Data Storage and Performance All events are stored in a dedicated custom database table, keeping the impact on your site’s performance to a minimum — even under heavy traffic. Uninstall Clean-up Uninstalling the plugin removes all of its data from your database automatically, leaving nothing behind. What users have to say “Its tools, particularly for data privacy and GDPR compliance, make it indispensable for websites operating within European Union boundaries or dealing with EU citizens’ data” – HubSpot.com “If you’re after a competent WP security audit log plugin with all the basic features you need, Activity Log is it!” – WPAstra.com “Activity Log features a remarkably straightforward dashboard interface, providing administrators with an at-a-glance understanding of site interactions” – Malcare.com “Thanks to this step, we’ve discovered that our site was undergoing a brute force attack” – Artdriver.com “Activity Log lets you track a huge range of activities. Overall, very easy to use and setup” – ElegantThemes.com Contributions: Would you like to contribute to this plugin? You’re more than welcome to submit your pull requests on the GitHub repo. And, if you have any notes about the code, please open a ticket on the issue tracker.
RockScout AI
RockScout AI tells you what is happening on your WordPress site in language you can act on — which security gaps matter, what changed since last week, and what to do about it. Vulnerability Scanner — Checks your installed plugins, themes, and WordPress core against the Wordfence Intelligence vulnerability database. For every match you get the severity, the affected versions, and the recommended action, sorted so the urgent ones come first. Matching runs entirely on your own site. Requires a free Wordfence Intelligence API key. Plain-Language Explanations — For any finding, get an explanation of what the vulnerability actually means for your site, what the real-world risk is, what to do, and how urgently. Explanations are strictly grounded in the vulnerability record — no invented details. Requires an AI provider (see FAQ). Activity Tracker — Automatically logs plugin updates, theme changes, content edits, media uploads, user role changes, and logins. When something looks different, you can see what changed and when instead of guessing. Site Health Check — WordPress version, PHP version and end-of-life status, active plugins with pending updates, scheduled task status, recent errors, and database info in one place. Site Assistant — Ask questions about your site in plain language: “What changed this week?”, “Are any plugins outdated?”, “Why is the site slow?”. The assistant reads your activity log, health data, and vulnerability findings to answer. Two ways to connect a provider: paste an API key directly in plugin settings (OpenAI, Anthropic, Google Gemini), or use the WordPress AI Client on WordPress 7.0+. AI Agent Integration — Registers WordPress Abilities so MCP-compatible agents such as Claude Desktop or Cursor can read your site health, activity log, plugin status, and vulnerability findings. Read-only. Requires the MCP Adapter plugin. What it helps with Knowing which security gaps on your site actually matter, and which one to fix first Seeing what changed after a site went live — updates, edits, logins — without digging through logs Getting an answer in plain language instead of a technical dashboard Works the same whether you look after one site or twenty. How it works Install and activate the plugin Activity logging and the site health check start immediately — no configuration needed Add a free Wordfence API key to enable vulnerability scanning (Optional) Configure an AI provider for plain-language explanations and the site assistant External Services Nothing is sent anywhere until you enable a feature that needs it. Activity logging, the site health check, and vulnerability matching all run entirely on your own site. 1. Wordfence Intelligence — vulnerability data feed Optional. Requires a free Wordfence API key, configured in RockScout AI → Settings. Downloaded to your site: vulnerability records — title, CVE identifier, severity score, affected version ranges, and remediation guidance. Uploaded: nothing. Your list of installed plugins, themes, and versions is never sent to Wordfence. All matching happens locally on your site. Wordfence Intelligence — https://www.wordfence.com/threat-intel/ | Terms | Privacy Vulnerability records include data from the MITRE CVE Program and from Defiant, Inc. Attribution is displayed with each record. 2. AI provider — explanations and site assistant Optional. Active only once you configure an AI provider, and only at the moment you send a message or click “Explain in plain language”. There is no background or scheduled AI request. What is sent with a request: Your question, as you typed it A site summary: WordPress version, environment type, PHP version, time zone and local time, HTTPS status, site language, active theme, number of active plugins, number of pending updates, number of administrator accounts, and a count of vulnerability findings by severity A summary of recent changes on the site: what changed, when, and the role of the account that made the change Depending on what you asked about, one additional group of details may be included — for example plugin and theme names with version numbers, matched vulnerability records, recent lines from the PHP error log, scheduled task status, content counts, or upload and memory limits. Details unrelated to your question are not sent. What is never sent: Passwords or API keys Usernames, display names, email addresses, or IP addresses Post, page, or product content Customer, order, or form submission data Media files A note on the error log: PHP error messages can contain absolute file paths from your server. Error log lines are included only when your question relates to errors or something being broken, and are limited to the last few entries. RockScout AI does not operate a server of its own for these features. Requests go directly from your site to the provider you chose, and are subject to that provider’s terms: OpenAI — https://openai.com | Terms | Privacy Anthropic — https://www.anthropic.com | Terms | Privacy Google Gemini — https://ai.google.dev | Terms | Privacy When using the WordPress AI Client on WordPress 7.0+, requests are routed through whichever provider plugin you have installed, and that provider’s terms apply instead. Troubleshooting Vulnerability scan fails with “rate limit reached” The Wordfence Intelligence API allows one request per 30 minutes on the free tier. Clicking Scan Now repeatedly will hit this limit. Fix: Wait 30 minutes. The plugin enforces its own cooldown, and daily scans via WP Cron are unaffected. Saving your API key always succeeds even when the feed is temporarily unavailable. Vulnerability scan takes a long time or times out The Wordfence production feed is roughly 120 MB. On slow connections or low-memory hosting the download may time out. Fix: Ensure PHP max_execution_time is at least 120 seconds. The plugin raises the memory limit automatically. If the scan still times out from the admin button, it retries in the background via WP Cron. Google Gemini: “You exceeded your current quota” (limit: 0) Google’s free tier API keys may have a quota of zero requests for new projects or accounts without billing enabled. This is a Google restriction, not a plugin bug. Fix: Enable billing in the Google Cloud Console. Even on the free tier this raises the quota from 0 to 15 requests per minute. Alternatively switch to OpenAI or Anthropic in RockScout AI → Settings. Google Gemini: “This model only supports Interactions API” Some newer Gemini models, such as deep-research and preview builds, do not support the standard generateContent endpoint used by this plugin. Fix: The plugin clears its model cache and selects a compatible model on the next request. If the problem persists, set the model manually to gemini-2.5-flash in RockScout AI → Settings. Site assistant shows “Not connected” No AI provider is configured. Go to RockScout AI → Settings and either paste an API key, or configure a provider in Settings → Connectors on WordPress 7.0+. Scheduled scans are not running If DISABLE_WP_CRON is defined on your site, or WP Cron is not being triggered, daily refreshes will not happen. The site health data shows scheduled task status, including overdue tasks. Fix: Use Scan Now manually, or configure a real server cron job to hit wp-cron.php.