300,000+
October 17, 2026
July 8, 2010
Trusted by 300,000+ WordPress sites, rated 4.9 stars with 450+ five-star reviews, actively developed for 10+ years, and translated into 15+ languages.
Simple History is the complete audit log for WordPress. It tracks every meaningful change — content edits, user logins, plugin updates, security events, and more — so site owners, teams, agencies, and developers always know who did what and when. Just install and activate; no configuration required.
Every event is written to be read: plain language like Updated page “About us”, relative timestamps such as “5 minutes ago”, and before/after comparisons instead of raw data dumps.
Track what’s happening on your site
“Has anyone done anything today? Ah, Sarah uploaded the new press release and created an article for it. Great — now I don’t have to do that.”
Identify issues and debug faster
“The site feels slow since yesterday. Has anyone done anything special? … Ah, Steven activated ‘naughty-plugin-x’, that must be it.”
Keep freelancers & agencies accountable
“I hired a developer to optimize my site. But did they actually do anything? A quick glance at Simple History shows me exactly what they worked on.”
Spot suspicious activity early
“I see three failed logins from an unfamiliar IP address overnight. Let me click the IP to check all activity from that address — just those attempts, nothing else. Good to know.”
Simple History includes built-in logging for:
Plugins that log to Simple History themselves include my CMS Tree Page View (page moves and new pages) and Simple SEO (SEO title and description changes, with before and after).
Is your plugin missing? Plugin authors can add support using the logging API.
450+ five-star reviews on WordPress.org:
Simple History starts tracking instantly after activation — no setup needed. It even imports recent activity so your log isn’t empty on day one. Access your log from:
Weekly email reports deliver a summary of your site’s activity every Monday morning — total activity, daily breakdown, key metrics (logins, content updates, plugin changes), and direct links to the full log.
Perfect for site owners, agencies managing client sites, and teams who need regular updates without logging in. Enable it in settings and see what the email looks like before turning it on.
Alerts & Notifications – Get notified instantly via Email, Slack, Discord, or Telegram when important events occur. Start quickly with preset rules for common scenarios or build custom rules filtered by event type, user, role, and log level.
Log Forwarding – Stream events to external destinations: local log files, syslog servers (UDP/TCP/TLS), Datadog, Splunk, webhooks, or external MySQL/MariaDB databases. Perfect for centralized logging, compliance, and backup.
Enhanced Controls – Custom retention periods (or keep logs forever), CSV/JSON export of filtered search results, post activity panel in the block editor, custom log entries for team decisions, stealth mode GUI, logger control to fine-tune which events are recorded, and an ad-free experience.
Track WooCommerce activity: orders, refunds, stock changes, product updates, pricing adjustments, settings modifications, and coupon usage.
Monitor outgoing HTTP requests and emails, debug API calls, and see what’s happening under the hood. Essential for developers and support teams.
If you like this plugin please consider sponsoring the development of the free plugin. The plugin has been free for over 10 years and will continue to be free.
No installation instructions provided.
Yes! Simple History has been free for over 10 years and will remain free. To support development and unlock extra features, you can purchase the premium add-on. View premium features.
You can access the log in multiple ways:
Yes! You can customize the menu position in the plugin settings. Choose between showing Simple History at the top or bottom of the main menu, or inside the dashboard menu or tools menu.
No! Just install and activate the plugin, and it will start collecting activity logs automatically.
The log is stored in your WordPress database.
Yes, you can export logs in CSV or JSON format for further analysis.
Yes! Simple History supports many popular plugins out of the box. Additionally, developers can integrate it with any plugin using the Logging API.
Yes. When the official WordPress AI plugin is active, Simple History logs when AI features are turned on or off, when a feature’s AI provider or model changes, and when plugins or themes request, are granted, or lose access to an AI provider on the Connector Approvals screen.
API keys and AI prompt or response content are never logged — those stay in the AI plugin’s own settings.
No, Simple History is lightweight and optimized for performance. Most logging occurs in the WordPress admin area when a WordPress user performs an action.
By default, nothing is logged on the front end, ensuring visitors experience no impact on performance.
Access to the log depends on the user’s role:
Yes, you can exclude users based on role or email using the simple_history/log/do_log filter.
For more details, check the hooks documentation.
By default, logs are stored for 30 days. Sites that installed Simple History before version 5.25.0 keep 60 days.
Upgrade to Simple History Premium to change this using a GUI.
Yes! You can filter logs by username, making it easy to track individual activity.
GDPR compliance depends on how you use the plugin and how you handle collected data. WordPress guidelines prohibit plugins from making legal compliance claims, so you should review your site’s data policies to ensure compliance.
What Simple History does by default:
The log can contain personal data (called personal information in some laws), such as usernames, email addresses and masked IP addresses. A masked IP address can still be linked to a person through the rest of the log entry. Which privacy laws apply, and what they require, depends on your site, so mention the activity log in your privacy policy. Simple History adds suggested text for this under Settings Privacy Policy Guide.
For more information, see our support page GDPR and Privacy: How Your Data is Stored in Simple History.
✨ If you find Simple History useful ✨
Experimental entries are gated behind the “Experimental features” checkbox under Simple History Settings. Tick it to try them, then share feedback so we know what to ship for everyone.
Post edits are easier to read outside the log: Copy as JSON, log files and forwarded events list each changed field with its old and new value. This release also contains security fixes.
Screenshots and details in the release post
Added
Changed
simple_history/post_logger/label_for_key filter also gets the status, publish date, comment status, author and template labels of post changes. Labels are escaped, so return plain text.simple_history/post_logger/post_updated/diff_table_output filter no longer gets the title, permalink, excerpt, content and other changed fields, only the rows that callbacks add. Post_Logger::extra_diff_record() is deprecated and no longer used.Fixed
Security
This release is about logins and privacy. Logins with two-factor authentication are logged when the code is accepted, IP addresses in the log are only shown to administrators, and there is suggested text about the log for your privacy policy. The weekly email settings got simpler too.
Read more about it in the release post
Added
Changed
manage_options or install_plugins), or creating a role with one, is now a warning.Fixed
wp-config-sample.php on a site installed in English.Too many events in your log to get an overview? The new compact view may come in handy then. And Premium users get an even more compact view with the new table view, for digging into your events. There is also a new button that hides the sidebar, to give you full focus on the log with less distraction. Read more about this and more in the release post .
Added
orderby and order) and on the command line (wp simple-history event list --orderby=id --order=asc)./events/aggregate), grouped by date, level, logger or initiator. The same filters apply, so it counts exactly what the list would have shown.Changed
Fixed
order=asc was accepted and then ignored on the default event listing, which returned newest first anyway.Security
The weekly email is redesigned. It opens with a summary of your week, and every number links to its events. Events by WordPress and visitors are no longer credited to the logged-in admin, and Redirection logging works again with Redirection 5.10. And some minor fixes here and there.
Read more about it in the release post
Added
Changed
Fixed
Security
Expandable diffs, a “View revision” link that opens the exact revision a change created, and a fix for failed application password logins flooding the log.
Read more about it in the release post
Added
Changed
Fixed
<br> tag, and a note starting with an @mention no longer has it glued to the next word.Security
🎨 Site Editor changes are now logged — templates, template parts, site-wide styles, patterns, navigation menus and fonts. This release also adds support for the official WordPress AI plugin, so you can see which plugins and themes have been granted access to which AI providers, plus a round of security hardening and the usual fixes.
Read more about all changes in the release post
Added
--format=json and --format=yaml on wp simple-history info, so a deploy or CI script can check that Premium is active and licensed.Changed
Fixed
wp simple-history info never showed the license line on sites with Premium active. in its item counts on locales that separate thousands with a space.Security
]]> character sequence, which anyone able to leave a comment could trigger.=, +, - and @ already covered.👍 Two experimental features graduate in this release: event reactions and the header status bar, which shows the status of your current settings at a glance — how long history is kept, whether email reports and alerts are on, and where logs are forwarded. This release also includes a round of security hardening and some miscellaneous fixes.
Read more about all changes in the release post
Added
--metadata_search and --ai_only options on wp simple-history list, matching the metadata search and AI filter in the GUI.ai_agent, ai_detected_via, ai_application) on wp simple-history list, showing which AI tool made a change and how it was detected.Changed
simple_history/user_can_clear_log now defaults to whether the user can manage settings, instead of always allowing it. The “Clear log” button is unaffected for administrators.Deprecated
wp simple-history event search — use wp simple-history event list --search=<term> instead. The old command still works but will be removed in a future version.Fixed
wp simple-history event search always returned zero results.--fields on wp simple-history list ignored column names written with a space after the comma.Security
See CHANGELOG.md for the full changelog.
| Version | Download | Type |
|---|---|---|
| 5.36.0 | Download | Stable |
| 5.35.0 | Download | Stable |
| 5.34.0 | Download | Stable |
| 5.33.0 | Download | Stable |
| 5.32.0 | Download | Stable |
| 5.31.0 | Download | Stable |
| 5.30.0 | Download | Stable |
| 5.29.0 | Download | Stable |
| 5.28.0 | Download | Stable |
| 5.27.0 | Download | Stable |
| 5.26.0 | Download | Stable |
| 5.25.0 | Download | Stable |
| 5.24.1 | Download | Stable |
| 5.24.0 | Download | Stable |
| 5.23.1 | Download | Stable |
| 5.23.0 | Download | Stable |
| 5.22.0 | Download | Stable |
| 5.21.0 | Download | Stable |
| 5.20.0 | Download | Stable |
| 5.19.0 | Download | Stable |
| 5.18.0 | Download | Stable |
| 5.17.0 | Download | Stable |
| 5.16.0 | Download | Stable |
| 5.15.0 | Download | Stable |
| 5.14.0 | Download | Stable |
| 5.13.1 | Download | Stable |
| 5.13.0 | Download | Stable |
| 5.12.0 | Download | Stable |
| 5.11.0 | Download | Stable |
| 5.10.0 | Download | Stable |
| 5.9.0 | Download | Stable |
| 5.8.2 | Download | Stable |
| 5.8.1 | Download | Stable |
| 5.8.0 | Download | Stable |
| 5.7.0 | Download | Stable |
| 5.6.1 | Download | Stable |
| 5.6.0 | Download | Stable |
| 5.5.1 | Download | Stable |
| 5.5.0 | Download | Stable |
| 5.4.4 | Download | Stable |
| 5.4.3 | Download | Stable |
| 5.4.2 | Download | Stable |
| 5.4.1 | Download | Stable |
| 5.3.0 | Download | Stable |
| 5.2.0 | Download | Stable |
| 5.1.0 | Download | Stable |
| 5.0.4 | Download | Stable |
| 5.0.3 | Download | Stable |
| 5.0.2 | Download | Stable |
| 5.0.1 | Download | Stable |
| 5.0.0 | Download | Stable |
| 4.17.0 | Download | Stable |
| 4.16.0 | Download | Stable |
| 4.15.1 | Download | Stable |
| 4.15.0 | Download | Stable |
| 4.14.0 | Download | Stable |
| 4.13.0 | Download | Stable |
| 4.12.0 | Download | Stable |
| 4.11.0 | Download | Stable |
| 4.10.0 | Download | Stable |
| 4.9.0 | Download | Stable |
| 4.8.0 | Download | Stable |
| 4.7.2 | Download | Stable |
| 4.7.1 | Download | Stable |
| 4.7.0 | Download | Stable |
| 4.6.0 | Download | Stable |
| 4.5.0 | Download | Stable |
| 4.4.0 | Download | Stable |
| 4.3.0 | Download | Stable |
| 4.2.1 | Download | Stable |
| 4.2.0 | Download | Stable |
| 4.1.0 | Download | Stable |
| 4.0.1 | Download | Stable |
| 4.0.0 | Download | Stable |
| 3.5.1 | Download | Stable |
| 3.5.0 | Download | Stable |
| 3.4.0 | Download | Stable |
| 3.3.1 | Download | Stable |
| 3.3.0 | Download | Stable |
| 3.2.0 | Download | Stable |
| 3.1.1 | Download | Stable |
| 3.1.0 | Download | Stable |
| 3.0.0 | Download | Stable |
| 2.43.0 | Download | Stable |
| 2.42.0 | Download | Stable |
| 2.41.2 | Download | Stable |
| 2.41.1 | Download | Stable |
| 2.41.0 | Download | Stable |
| 2.40.0 | Download | Stable |
| 2.39.0 | Download | Stable |
| 2.38.0 | Download | Stable |
| 2.37.2 | Download | Stable |
| 2.37.0 | Download | Stable |
| 2.36.0 | Download | Stable |
| 2.35.1 | Download | Stable |
| 2.35.0 | Download | Stable |
| 2.34.0 | Download | Stable |
| 2.33.2 | Download | Stable |
| 2.33 | Download | Stable |
| 2.32 | Download | Stable |
| 2.31.1 | Download | Stable |
| 2.31 | Download | Stable |
| 2.30 | Download | Stable |
| 2.29.2 | Download | Stable |
| 2.29.1 | Download | Stable |
| 2.29 | Download | Stable |
| 2.28.1 | Download | Stable |
| 2.28 | Download | Stable |
| 2.27 | Download | Stable |
| 2.26.1 | Download | Stable |
| 2.26 | Download | Stable |
| 2.25 | Download | Stable |
| 2.24 | Download | Stable |
| 2.23.1 | Download | Stable |
| 2.23 | Download | Stable |
| 2.22.1 | Download | Stable |
| 2.22 | Download | Stable |
| 2.21.1 | Download | Stable |
| 2.21 | Download | Stable |
| 2.20 | Download | Stable |
| 2.19 | Download | Stable |
| 2.18 | Download | Stable |
| 2.17 | Download | Stable |
| 2.16 | Download | Stable |
| 2.15 | Download | Stable |
| 2.14.1 | Download | Stable |
| 2.14 | Download | Stable |
| 2.13 | Download | Stable |
| 2.12 | Download | Stable |
| 2.11 | Download | Stable |
| 2.10 | Download | Stable |
| 2.9.1 | Download | Stable |
| 2.9 | Download | Stable |
| 2.8 | Download | Stable |
| 2.7.5 | Download | Stable |
| 2.7.4 | Download | Stable |
| 2.7.3 | Download | Stable |
| 2.7.2 | Download | Stable |
| 2.7.1 | Download | Stable |
| 2.7 | Download | Stable |
| 2.6 | Download | Stable |
| 2.5.5 | Download | Stable |
| 2.5.4 | Download | Stable |
| 2.5.3 | Download | Stable |
| 2.5.2 | Download | Stable |
| 2.5.1 | Download | Stable |
| 2.5 | Download | Stable |
| 2.4 | Download | Stable |
| 2.3.1 | Download | Stable |
| 2.3 | Download | Stable |
| 2.2.4 | Download | Stable |
| 2.2.3 | Download | Stable |
| 2.2.2 | Download | Stable |
| 2.2.1 | Download | Stable |
| 2.2 | Download | Stable |
| 2.1.7 | Download | Stable |
| 2.1.6 | Download | Stable |
| 2.1.5 | Download | Stable |
| 2.1.4 | Download | Stable |
| 2.1.3 | Download | Stable |
| 2.1.2 | Download | Stable |
| 2.1.1 | Download | Stable |
| 2.1 | Download | Stable |
| 2.0.30 | Download | Stable |
| 2.0.29 | Download | Stable |
| 2.0.28 | Download | Stable |
| 2.0.27 | Download | Stable |
| 2.0.26 | Download | Stable |
| 2.0.25 | Download | Stable |
| 2.0.24 | Download | Stable |
| 2.0.23 | Download | Stable |
| 2.0.22 | Download | Stable |
| 2.0.21 | Download | Stable |
| 2.0.20 | Download | Stable |
| 2.0.19 | Download | Stable |
| 2.0.18 | Download | Stable |
| 2.0.17 | Download | Stable |
| 2.0.16 | Download | Stable |
| 2.0.15 | Download | Stable |
| 2.0.14 | Download | Stable |
| 2.0.13 | Download | Stable |
| 2.0.12 | Download | Stable |
| 2.0.11 | Download | Stable |
| 2.0.10 | Download | Stable |
| 2.0.9 | Download | Stable |
| 2.0.8 | Download | Stable |
| 2.0.7 | Download | Stable |
| 2.0.6 | Download | Stable |
| 2.0.5 | Download | Stable |
| 2.0.4 | Download | Stable |
| 2.0.3 | Download | Stable |
| 2.0.2 | Download | Stable |
| 2.0.1 | Download | Stable |
| 2.0 | Download | Stable |
| 1.3.11 | Download | Stable |
| 1.3.10 | Download | Stable |
| 1.3.9 | Download | Stable |
| 1.3.8 | Download | Stable |
| 1.3.7 | Download | Stable |
| 1.3.6 | Download | Stable |
| 1.3.5 | Download | Stable |
| 1.3.4 | Download | Stable |
| 1.3.3 | Download | Stable |
| 1.3.2 | Download | Stable |
| 1.3.1 | Download | Stable |
| 1.3 | Download | Stable |
| 1.2 | Download | Stable |
| 1.1 | Download | Stable |
| 1.0.9 | Download | Stable |
| 1.0.8 | Download | Stable |
| 1.0.7 | Download | Stable |
| 1.0.6 | Download | Stable |
| 1.0.5 | Download | Stable |
| 1.0.4 | Download | Stable |
| 1.0.3 | Download | Stable |
| 1.0.2 | Download | Stable |
| 1.0.1 | Download | Stable |
| 1.0 | Download | Stable |
| 0.8.1 | Download | Stable |
| 0.8 | Download | Stable |
| 0.7.2 | Download | Stable |
| 0.7.1 | Download | Stable |
| 0.7 | Download | Stable |
| 0.6 | Download | Stable |
| 0.5 | Download | Stable |
| 0.4 | Download | Stable |
| 0.3.10 | Download | Stable |
| 0.3.9 | Download | Stable |
| 0.3.8 | Download | Stable |
| 0.3.7 | Download | Stable |
| 0.3.6 | Download | Stable |
| 0.3.5 | Download | Stable |
| 0.3.4 | Download | Stable |
| 0.3.3 | Download | Stable |
| 0.3.2 | Download | Stable |
| 0.3.1 | Download | Stable |
| Development | Download | Trunk |