Activity Log – Monitor & Record User 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 right on your 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, 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 WooCommerce – Track products, orders, customers, and more bbPress – Forums, topics, replies, taxonomies, and other actions Emails sent from WordPress site – Sending successful, sending failed 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 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.
Top keywords
- log13×1.89%
- activity12×1.75%
- deleted12×1.75%
- activity log10×1.46%
- updated10×1.46%
- created9×1.31%
- site9×1.31%
- updated deleted9×1.31%
- created updated8×1.16%
- created updated deleted8×1.16%
- wordpress8×1.16%
- data7×1.02%
BeziWorld Activity Log
BeziWorld Activity Log records what users do on your WordPress site: who logged in, who failed to log in, who changed a role, who edited their profile, who created or edited content, and more. The focus is user activity, and the goal is to make the capabilities competing plugins reserve for paid upgrades available for free. Designed for performance. Events are stored in a dedicated, indexed custom table (never in wp_posts), written in batches to keep request overhead low, while security-relevant events are persisted immediately. Retention pruning keeps the table lean automatically. Designed for trust. Each event is signed with a per-site HMAC and sealed into a hash-chained sequence of checkpoints, making after-the-fact tampering — including row insertion or deletion — detectable. Because an attacker with full server access could recompute local signatures, the latest checkpoint signature can be anchored off-host (emailed or sent to a webhook) so the integrity proof leaves the machine. Designed for privacy. IP logging is optional and can be anonymised at capture time. The plugin never phones home and never loads code from external servers. Highlights Authentication and account activity: logins, logouts, failed logins (rate-limited to prevent log flooding), registration, role changes, profile and user-metadata changes, password resets, application passwords, user deletion. Content activity: posts, pages and custom post types created, updated (with a field-level diff), status changes, trashing, restoring and permanent deletion; comments, media and taxonomy terms. Clean, readable event viewer with severity badges, expandable detail rows, sorting, filtering and full-text search. Granular configuration: enable or disable whole event groups or individual events. Exclusion rules by IP/CIDR, user login, user ID, role and request path. Plugin/theme and settings changes, navigation menus, and the GDPR personal-data request lifecycle. Optional integrations: WooCommerce (orders, status changes, stock) and Yoast SEO (metadata and settings). Real-time notifications — Slack, Discord, Telegram, email and generic webhook — by urgency or chosen event codes, delivered immediately or as an hourly digest. Free. Optional login geolocation (via a provider you wire) with an automatic alert on a login from a new country. Scheduled HTML summary reports emailed to the administrator (daily or weekly). Statistics screen with daily-volume chart and category, user and event breakdowns. Active session management: see who is logged in and terminate sessions. Free. Tamper-evident integrity: per-row HMAC plus a hash-chained checkpoint sequence with optional off-host anchoring (email/webhook), verifiable with WP-CLI (wp bzal verify-integrity). Real-time notifications also fire on a chosen set of event codes, regardless of urgency. Configurable severity per event code, driving notifications and the security badge. Optional anomaly detection: flags a rapid bulk-delete burst by one user and off-hours admin logins as high-severity alerts. Admin-bar quick view: the latest events and a 24-hour security badge on every screen. “Users online” view: who currently holds a session, with their most recent action, time and IP. CSV and JSON export of the filtered log, with spreadsheet-formula-injection protection. Read access via the REST API (offset and cursor pagination, plus an integrity-anchor endpoint) and optionally GraphQL, gated by capability. Granular configuration: enable/disable whole event groups or individual events; exclusion rules by IP/CIDR, user, role and path. Configurable retention with on-demand cleanup; UTC storage with display in your chosen timezone. Fully translatable, with bundled Polish, German and Czech translations. External services This plugin works fully offline. It does not connect to any external service on its own. The following optional integrations are disabled by default and only ever contact a destination that you enter in the settings; each transmits a short summary of a logged event (such as the event description, the acting user’s login, the time, and — when IP logging is enabled — the IP address) at the moment the event occurs or, in digest mode, once per hour. Slack — when you enter a Slack Incoming Webhook URL, matching events are POSTed to that webhook. See the Slack Terms of Service (https://slack.com/terms-of-service) and Privacy Policy (https://slack.com/trust/privacy/privacy-policy). Discord — when you enter a Discord webhook URL, matching events are POSTed to that webhook. See the Discord Terms (https://discord.com/terms) and Privacy Policy (https://discord.com/privacy). Telegram — when you enter a Telegram bot token and chat ID, matching events are sent through the Telegram Bot API at api.telegram.org. See the Telegram Terms (https://telegram.org/tos) and Privacy Policy (https://telegram.org/privacy). Generic webhook — when you enter a custom webhook URL (for notifications or for off-host integrity anchoring), the corresponding payload is POSTed to that URL. The destination is yours; review its provider’s terms and privacy policy. Login geolocation — disabled unless you both enable it and wire a provider through the bzal_geolocate_country filter. The plugin bundles no geolocation provider and makes no geolocation request by itself; any lookup is performed by the provider you supply, under that provider’s terms. Summary reports and notification emails are delivered through your site’s own WordPress mail system to the recipients you configure; they are not sent to any third party by this plugin.