Activity Log – Monitor & Record User Changes



Want to monitor and track your WordPress website activity? Find out exactly who does what on your WordPress website with this plugin. Activity Log is like an airplane’s black box that logs every action in the WordPress admin, and lets you see exactly what users are doing on your WordPress website.

  • 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

It’s so essential; you’ll wonder how you ever managed your website without it. The plugin is also lightning fast and works behind the scenes, so it doesn\’t affect site and admin performance. For optimal performance, we built the plugin so that it runs on a separate table in the database.

If you have more than a handful of users, keeping track of who did what is virtually impossible. This plugin solves that issue by tracking what actions were initiated by which users, and displaying it in an easy-to-use and easy-to-filter view on the dashboard of your WordPress site.

New! Introducing Email Logging – Capture all emails sent from your WordPress site for streamlined debugging and compliance. Gain better visibility into email communication, aiding both troubleshooting and record-keeping. This is particularly beneficial for WooCommerce stores, allowing you to easily track sent emails alongside other critical site events.

Export to CSV – Export your Activity Log data records to CSV. Developers can easily add support for custom data formats with our new dedicated Export API.

Data Privacy and GDPR Compliance – We provide the tools to help you adhere to GDPR compliance standards, including Export/Erasure of data via the WordPress Privacy Tools.

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
  • 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
  • Affected object where the change occurred

The plugin doesn\’t require any kind of setup; it works right out of the box (just another reason people love it)!

Data Storage and Performance Optimization

In order to ensure optimal performance of your website, all events and logs data are stored in a dedicated custom table within your WordPress database. This approach significantly reduces the impact on your website’s performance, ensuring seamless operation even during peak traffic periods.

Uninstall Clean-up

We understand the importance of maintaining a clean and efficient database environment. That’s why our plugin features an uninstall hook that seamlessly removes all traces of its presence from your website when uninstalling. This meticulous clean-up process ensures that your database remains lean and clutter-free even after our plugin has been removed.

With our optimized data storage, thorough logging, and meticulous clean-up process, you can trust that our plugin will enhance the functionality and security of your WordPress site without compromising its performance.

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”
  • “If you’re after a competent WP security audit log plugin with all the basic features you need, Activity Log is it!”
  • “Activity Log features a remarkably straightforward dashboard interface, providing administrators with an at-a-glance understanding of site interactions”
  • “Best 10 Free WordPress Plugins of the Month: Keeping tabs on what your users do with their access to the Dashboard”
  • “Thanks to this step, we’ve discovered that our site was undergoing a brute force attack”
  • “Optimized code – The plugin itself is blazing fast and leaves almost no footprint on the server”
  • “Activity Log lets you track a huge range of activities. Overall, very easy to use and setup”


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.


  • The log viewer page
  • The settings page
  • Screen Options


  1. Upload plugin files to your plugins folder, or install using WordPress’ built-in Add New Plugin installer
  2. Activate the plugin
  3. Go to the plugin page (under Dashboard > Activity Log)



  • Requires PHP 7.0 for list management functionality.

What is the plugin license?

  • This plugin is released under a GPL license.

Can I export logs?

  • You can easily export logs with Activity Log. We also support exporting filtered results. Filter by the time the action took place, roles, users, options, action type, and more.


Desanm 9, 2023
It is easy and I use it for 2 webitess for now and completely free, thanks!
Oktòb 14, 2023
Being able to see what preceded an error on a website is so immensely helpful that you cannot imagine it before you actually try it. Especially when working with clients. So many times have we been able to identify the cause of an issue, as we could see that “Oh, this person edited that page last Monday” or “Aha, function x stopped working after updating plugin y”. It’s also valuable to check if someone else is working on a website, before making major changes, not disturbing each of the others work. Activity Log is installed on all my websites, and has been for years. It fills a gap that, weirdly enough, is present in a CMS that encourages multiple users and roles. Highly recommended. Five stars easily ⭐⭐⭐⭐⭐
Jen 18, 2023
Greate user logs to go back in time to see who have done something wrong. In my opinion, this is a must plugin
Me 14, 2023
I have installed this plugin on all my clients websites which helps me keep track of who did what making troubleshooting any issues quick and simple when something goes wrong. I could have created a similar plugin myself, but what’s the point when the authors of Activity Log have already done such a great job? So, instead, I coded a script to send the info from this plugin to a central database where I can keep an eye on all client sites in one place, which is definitely easier than checking each one individually. The only thing that is kind of annoying about this plugin is the Elementor ad a the top of the admin back-end. I am a big fan of Elementor for certain types of sites and use it on many sites, but I don’t need or want my clients to see these ads because it looks very unprofessional. I certainly don’t mind having ads there if they support the authors in keeping plugins updated, but it can be quite annoying when they are, as the phrase goes, “in your face”.
Novanm 8, 2022 1 reply
WP Plugin guidelines state that plugins should not create a top level navigation element in /wp-admin if it’s not necessary. That and the ad for Elementor made for an instant uninstall for me.
Read all 73 reviews

Contributors & Developers

“Activity Log – Monitor & Record User Changes” is open source software. The following people have contributed to this plugin.


“Activity Log – Monitor & Record User Changes” has been translated into 27 locales. Thank you to the translators for their contributions.

Translate “Activity Log – Monitor & Record User Changes” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


2.10.1 – 2024-04-17

  • Tweak: Add option to not keep email logs (Topic)

2.10.0 – 2024-04-08

  • New: Introducing Email Logging – Capture all emails sent from your WordPress site
  • Tweak: Added filter to change menu page capability (#205)
  • Tweak: Set the date display on CSV export file according to WordPress settings (#204)

2.9.2 – 2024-03-18

  • Tweak: Added an aal_skip_insert_log filter to skip record on demand (Topic)

2.9.1 – 2024-02-21

  • Tweak: Temporarily removed WC integration while working on updated support in the future

2.9.0 – 2023-11-22

  • New: Added log when plugin is deleted (Topic)
  • Tweak: Added an option to “Do not collect IP” in the log (#195)

2.8.8 – 2023-08-20

  • Tweak: Added aal_export_csv_separator filter to change the separator in CSV export (Topic)
  • Tweak: Added Visitor IP Detected to prevent IP manipulations in log

2.8.7 – 2023-07-30

  • Tweak: Remove Elementor Promotion from Activity Log plugin
  • Tweak: Added support for non-standard WordPress loading (Topic)
  • Fix: Logs kept for longer than settings (Topic, #178)

2.8.6 – 2023-05-08

  • Tweak: Improved database performance for new installations by adding indexes
  • Fix: Added compatibility for PHP 8.1 (#180)

2.8.5 – 2022-11-21

  • Tweak: Now the date/time format is displayed according to the site settings (Topic)
  • Fix: Added compatibility for PHP 8.1 (Topic)
  • Fix: Add input sanitization to avoid security issues

2.8.4 – 2022-09-04

  • Tweak: Added Activity Log setting to records log
  • Tweak: Added encoded value in CSV file (#165)

2.8.3 – 2022-03-09

  • Tweak: Run Clear old items from DB once daily to avoid unexpected errors (#156)

2.8.2 – 2022-01-25

  • Fix: Auto-updates of core, plugins and themes are not registered to the log (#155, props @nicomollet)

2.8.1 – 2021-12-01

  • Fix: Activity log database table not being dropped after deleting the plugin in multisite installation

2.8.0 – 2021-11-17

  • New: Added Privacy Settings to records log
  • New: Added Site Language to records log
  • New: Added a filter link to Topic, IP, Date, User and Action in the log table screen
  • Tweak: Aligned Topics to be in plural instead of singular
  • Fix: Filter by users dropdown on activity page threw a timeout error in some cases (#141)
  • Fix: CSV Export issue with comma separated values (Topic)

2.7.0 – 2021-05-06

  • New: Added an option to skip or keep the failed login logs for better optimization (#125)
  • Tweak: Improved the activity log table with clear labels and re-order columns for better UX
  • Tweak: Changed the wrong_password action to failed_login in User topic
  • Tweak: Changed the added action to uploaded in Attachment topic
  • Tweak: Changed the created action to registered in User topic
  • Fix: Add input sanitization to avoid security issues

2.6.1 – 2021-02-15

  • Fix: Conflict with WooCommerce while you using new block editor

2.6.0 – 2020-10-19

  • Tweak: Added support for CloudFlare and CloudFlare Enterprise client IP header (#133)
  • Tweak: Added browser confirmation to Reset Database option
  • Tweak: Notification tab is now deprecated for new installations
  • Tweak: Added support for displaying custom role activity log (#78, #135, Topic, Topic)
  • Fix: Show user data on log-out action (#126, Topic)
  • Fix: Removed unused help context in admin to resolve deprecated WP error (Topic)
  • Fix: PHP Notices are thrown when Debug mode is active (Topic)
  • Fix: Resolve jQuery Deprecation Notice and compatibility with WordPress 5.6+ (Topic)


  • Fix: Conflict with Elementor and WordPress Widgets


  • Fix! – PHP < 5.4 compatibility (Topic)


  • New! Added log to Export Personal Data tool for better GDPR Compliance (Topic)


  • Fix! – Escape title before saving to database


  • New! Export your Activity Log data records to CSV (#70)


  • Fix! – Admin table filters


  • Fix! – Added comparability for WordPress 4.8.2 & 4.7.6


  • Tweak! – Change Guest user to “N/A”


  • Fixed! – Minor XSS vulnerability, credit to Han Sahin


  • Fixed! – Minor XSS vulnerability, credit to Han Sahin


  • Tweak! – Added seconds in time column
  • Tweak! – Rearrange filters in list table


  • Tweak! – All translates moved to GlotPress
  • Tweak! – Added restore status for Posts (#46)
  • Tweak! – A11y changes for WordPress 4.4 which requires h1 tags (#84)
  • Tweak! – Allow some ajax requests just for admin


  • Tested up to WordPress v4.5


  • Tweak! – Temporarily remove Freemius SDK from the plugin


  • Tweak! Update Freemius SDK
  • Tested up to WordPress v4.4.2


  • Tweak! Update Freemius SDK


  • Tweak! Update Freemius SDK


  • Added! – Freemius Insights platform to improve plugin UX
  • Tweak! Update translate: Russian (ru_RU) – Thanks to Oleg Reznikov
  • Tested up to WordPress v4.4


  • Tweak! – Added sort by IP address (#77)
  • Tweak! – Added more actions/types in notification


  • New! – Added translate: Finnish (fi) – Thanks to Nazq (topic)
  • Tweak! – Better actions label in list table
  • Fixed! – Notice php warring in MU delete site
  • Tested up to WordPress v4.3


  • New! – Added translate: Czech (cs_CZ) – Thanks to Martin Kokeš (#76)


  • Tweak! – Added more filters in table list columns


  • Fixed! some PHP strict standards (PHP v5.4+)


  • Fixes from prev release


  • New! – Adds search box, to allow users to search the description field.
  • New! – Allows users to now filter by action
  • New! – Added translate: Polish (pl_PL) – Thanks to Maciej Gryniuk
  • Tweak! – SQL Optimizations for larger sites


  • New! Added translate: Russian (ru_RU) – Thanks to Oleg Reznikov
  • Fixes Undefined property with some 3td party themes/plugins
  • Tested up to WordPress v4.2


  • Tested up to WordPress v4.1
  • Change plugin name to “Activity Log”


  • New! Added translate: Persian (fa_IR) – Thanks to Promising


  • New! Added filter by User Roles (#67)


  • New! Added translate: Turkish (tr_TR) – Thanks to Ahmet Kolcu


  • Fixed! Compatible for old WP version


  • New! Now tracking when menus created and deleted
  • New! Added translate: Portuguese (pt_BR) – Thanks to Criação de Sites


  • New! Store all WooCommerce settings (#62)
  • Tested up to WordPress v4.0


  • New! Now tracking when plugins installed and updated (#59 and #43)


  • New! Now tracking when user download export file from the site (#58 and #63)


  • Tested up to WordPress v3.9.2


  • New! Now tracking when theme installed, updated, deleted (#44)


  • Fixed! Store real IP address in Proxy too (#53)



  • Tweak! Update translate: Hebrew (he_IL)


  • New! Track about WordPress core update (manual or auto-updated) (#41)
  • New! Track post comments (created, approved, unproved, trashed, untrashed, spammed, unspammed, deleted) (#42)


  • New! Personally-tailored notifications that can be triggered by various types of events, users and action type (currently only email notifications are supported)
  • Bug fixes, stability improvements
  • Fixed an error that occurred on PHP 5.5


  • Tested up to WordPress v3.9.0


  • Fixed! Random fatal error (topic)


  • New! Register aal_init_caps filter.
  • Tweak! Change all methods to non-static.
  • Tweak! Some improved coding standards and PHPDoc.
  • Tweak! Split AAL_Hooks class to multiple classes.
  • New! Added translate: Armenia (hy_AM) – Thanks to Hayk Jomardyan.


  • Tweak! Don’t allowed to access in direct files.
  • New! Added translate: Danish (da_DK) – Thanks to Morten Dalgaard Johansen


  • New! Record when widgets change orders.


  • New! Save more Options:
  • General
  • Writing
  • Reading
  • Discussion
  • Media
  • Permalinks


  • New! filter for disable erase all the log
  • Bugs fixed


  • Added Screen Options
  • New! Ability to select a number of activity items per page
  • New! Columns are now sortable
  • Added filter by date – All Time, Today, Yesterday, Week, Month
  • Added Avatar to author
  • Added role for author
  • Added log for activeted theme
  • Re-order Culoumns
  • Compatible up to 3.8.1
  • Settings page is now accessible directly from Activity Log’s menu
  • Keep your log for any time your wants
  • Delete Log Activities from Database.
  • Bugs fixed



  • Added ‘view_all_aryo_activity_log’ user capability (topic).


  • Added WooCommerce integration (very basic).
  • Added Settings link in plugins page.


  • Fix – Make sure no save double lines (menu taxonomy / post).


  • Added Taxonomy type (created, updated, deleted).


  • Added Multisite compatibility.
  • Added Options hooks (limit list, you can extend by simple filter).
  • Added Menu hooks.
  • Tweak – Ensure no duplicate logs..


  • Forget remove old .pot file


  • Added translate: German (de_DE) – Thanks to Robert Harm
  • Added translate: Hebrew (he_IL)
  • Plugin name instead of file name on activation/deactivation
  • New Hooks:
  • A widget is being deleted from a sidebar
  • A plugin is being changed
  • Theme Customizer (Thanks to Ohad Raz)


  • Blastoff!