Tahhan Conflict Detective
Automatically detects which plugin, theme, or update broke your WordPress site — without manual trial and error.
Use with caution
Tahhan Conflict Detective works, but test it on a staging site before relying on it in 2026. Was last updated 2 weeks ago, and scores 59/100 on our health check.
- Actively developed — last update 2 weeks ago
- Small user base (<10 active installs)
- Very few reviews so far
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Tahhan Conflict Detective stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| conflict | >100 |
| debug | >100 |
| errors | >100 |
| health | >100 |
| plugins | >100 |
About Tahhan Conflict Detective
From the official readme · v2.6.5Description
“Which plugin just broke my site?” — answered automatically.
Existing tools show you that an error occurred. Conflict Detective tells you which plugin caused it by correlating the plugin change timeline with the error log — and gives you a confidence score.
Features
Dashboard
Live overview of your WordPress/PHP version, active plugins, active theme, memory limit, debug mode, recent changes, and latest errors — all on one screen.
Error Log Viewer
Reads debug.log and the server PHP error log automatically. Each entry is attributed to the plugin that owns the file where the error occurred. Filter by Fatal / Warning / Notice / Deprecated.
Change History
Full audit trail of every plugin activation, deactivation, update, and deletion — with exact timestamps and version diffs (e.g. 8.3.0 → 8.4.0).
Health Scan
On-demand scan that detects:
- Duplicate plugin functionality (multiple SEO, caching, security, or backup plugins)
- Known incompatibilities between specific plugin pairs
- Outdated plugins (not updated in more than 2 years)
- Missing theme files or a missing parent theme
- PHP version, memory limit, and
max_execution_timemisconfigurations - Pending WordPress core updates
Conflict Scanner
Automatically correlates plugin update timestamps with error spikes and reports a suspect plugin with a confidence percentage. Detected conflicts are stored in the database and can be marked as resolved with one click.
Safe Testing Mode
Disable any plugin for your own admin session while visitors remain completely unaffected. Cookie-isolated — the live site is never touched.
Conflict Wizard
Step-by-step guided diagnosis. Choose your symptom (white screen, login problem, WooCommerce issue, slow site, broken admin, front-end error, or other) and the wizard automatically analyses recent changes and errors to produce a tailored action plan.
Performance Monitor (new in 2.6.0)
Tracks the estimated load time, memory delta, and database query count for every active plugin during the current page load. Results are color-coded as Fast / Slow / Heavy and refreshed on demand.
Cron Monitor (new in 2.6.0)
Lists all scheduled WordPress Cron events with their next run time and interval. Overdue events are highlighted in red. Each event can be triggered manually via a “Run Now” button — validated against the live WP-Cron schedule before execution.
AJAX / REST Monitor (new in 2.6.0)
Automatically logs slow AJAX and REST API calls (those taking more than 500 ms) to a dedicated database table. Filter by All / AJAX / REST / Slow to quickly identify bottleneck endpoints.
Plugin Interaction Map (new in 2.6.0)
Visualises your plugins grouped into known ecosystem clusters (WooCommerce, Elementor, Yoast SEO, Jetpack, ACF, Gravity Forms, and more). Highlights declared plugin dependencies and shows active/inactive state at a glance. Plugins that don’t belong to a known ecosystem are listed separately as Standalone Plugins.
Installation
- Upload the
tahhan-conflict-detectivefolder to the/wp-content/plugins/directory. - Activate the plugin through the Plugins menu in WordPress.
- Navigate to Conflict Detective in the WordPress admin sidebar.
No configuration is required. All scanning is done on demand inside the admin area — zero front-end overhead.
Frequently asked questions
Does this plugin slow down my site?
No. All analysis runs on demand inside the WordPress admin. There is zero front-end overhead.
What log files does it read?
wp-content/debug.log and the server PHP error_log path returned by ini_get('error_log').
Do I need to configure anything?
No. Optionally, enable WP_DEBUG and WP_DEBUG_LOG in wp-config.php to populate the error log.
Does Safe Testing Mode affect my visitors?
Never. Safe Testing Mode uses a session cookie that is only present for your admin session. Visitors always see the live site.
What happens if I install the plugin via FTP?
The plugin detects missing database tables on every request and recreates them automatically — no activation hook required.
Is this plugin compatible with Multisite?
The plugin monitors the current site only. It is not a network-wide tool in this version.
How does the Performance Monitor work?
Performance Monitor hooks into WordPress’s plugin_loaded action, which fires once for every plugin that loads. It records a snapshot of the PHP execution time, memory usage, and database query count immediately before and after each plugin loads, then computes the delta. The results are stored in a 5-minute transient and can be refreshed on demand. Because measurements happen at request time, values vary between requests — treat them as estimates rather than precise benchmarks.
Does the AJAX / REST Monitor log every request?
No. Only requests that take longer than 500 ms are written to the database. The log is automatically trimmed to the most recent 500 entries.
Can I manually trigger a WordPress Cron event?
Yes. Go to Conflict Detective → Cron Monitor and click the “Run Now” button next to any event. The plugin validates the hook name against the live WP-Cron schedule before execution so arbitrary code cannot be triggered via this interface.
What is the Plugin Interaction Map?
The Interaction Map groups your installed plugins into known ecosystem clusters (WooCommerce, Elementor, Yoast SEO, Jetpack, ACF, Gravity Forms, Contact Form 7, WPML, LearnDash, Divi, WP Rocket, and more). Plugins within the same ecosystem are more likely to interact and potentially conflict with each other. The map also reads the Requires Plugins header introduced in WordPress 6.5 to show explicit declared dependencies.
Changelog
Security and quality patch. Upgrade recommended for all users on 2.1.0.
2.6.5
- Fix:
Safe_Mode::ajax_toggle_plugin()— hardcoded ‘Forbidden’ string now translatable via__(). - Fix:
Dashboard::ajax_clear_log()— missingreturnafter error response when log file does not exist. - Fix:
Dashboard::ajax_clear_log()— missingreturnafter error response whenput_contents()fails. - Fix:
Cron_Monitor::ajax_run_cron_event()— missingreturnafter error response for unknown-hook validation;run_event()would execute despite the error already being sent.
2.6.4
- Fix:
cd_ajax_log.created_atschema now includesDEFAULT CURRENT_TIMESTAMP— prevents INSERT failure under MySQL strict mode. - Fix:
cd_conflicts.changed_atschema changed toDEFAULT NULL— prevents INSERT failure if the column is omitted in strict mode. - Fix:
drop_tables()now also deletes thetahcd_main_table_existstransient on uninstall — no orphaned wp_options row. - Fix:
tables_exist()now checks bothcd_plugin_changes(v1) andcd_ajax_log(v3) — a partial install is correctly detected. - Fix:
Health_Scan::run()checks$wpdb->insert()return value and setsdb_errorflag in result on failure. - Fix:
Health_Scan::run()scanned_atin the returned array now uses the same UTC timestamp stored in the database — was returning local time while the DB row held UTC. - Fix:
scan_theme()guardsget_site_transient('update_themes')withis_object()before property access. - Fix:
scan_server()guardsget_site_transient('update_core')withis_object()before property access. - Fix:
Change_History::get_recent()returns an empty array on DB error instead of propagatingnull(which violated the declaredarrayreturn type). - Fix:
Change_History::on_update()option key for previous-version tracking now usesmd5()instead ofsanitize_key()—sanitize_key()strips/and., causing path collisions between plugins with similar names. - Fix:
Change_History::write()now returnsboolso callers can check whether the DB insert succeeded. - Fix:
Change_History::on_update()only advances the previous-version baseline (update_option) when the audit-log write actually succeeded.
2.6.3
- Fix:
get_site_transient('update_plugins')return value guarded withis_object()before property access — prevents PHP 8.x warning on fresh installs. - Fix:
WP_Filesystem()return value checked before callingput_contents()— prevents fatal on FTP/SSH filesystem environments. - Fix: AJAX log timestamps stored as UTC (
current_time('mysql', true)) instead of local WordPress time — fixes time-correlation bugs on non-UTC sites. - Fix:
verify_token()result cached with a static variable — prevents a duplicate DB query per request when Safe Mode is active. - Fix:
on_deletehook now correctly reads plugin data before deletion (fires ondelete_plugin, notdeleted_plugin). - Fix:
read_plugin_data()validates path stays withinWP_PLUGIN_DIRviarealpath()— path-traversal hardening. - Fix:
get_plugins()cached with a static variable inattribute_to_plugin()— eliminates N+1 calls when attributing log entries. - Fix:
strtotime()return value validated inscore_plugin()— avoids incorrect confidence scores from invalid timestamps. - Fix:
usortcomparator in Wizard timeline uses<=>instead of integer subtraction — prevents overflow on 32-bit PHP. - Fix: Plugin name in Wizard advice string escaped with
esc_html()before interpolation. - Fix:
str_replace('.php', …)in Interaction Map now only removes the trailing extension, not mid-name occurrences. - Fix: Missing
returnafterwp_send_json_error()added to all AJAX capability-check guards. - Fix: Hard-coded ‘Forbidden’, ‘Invalid plugin.’, ‘Unknown plugin.’ strings now passed through
__(). - Fix: Cron Monitor
displaykey access guarded withisset(). - Fix: SHOW TABLES query in
maybe_upgrade()cached with a 1-hour transient — eliminates a raw DB query on every page load. - Fix: Multisite uninstall now iterates all sub-sites via
switch_to_blog()/restore_current_blog(). - Fix:
$ajax_startstatic property reset tonullafter logging to prevent duplicate entries.
2.6.2
- Security: plugin path in Safe Mode now validated with
plugin_basename()to prevent path traversal. - Security: AJAX monitor now reads from
$_POSTinstead of$_REQUEST. - Fix: all early-exit AJAX error responses now include
returnfor clarity. - Fix:
filemtime()calls for CSS/JS assets now guarded withfile_exists(). - Fix: Change History table uses null-coalescing guards on DB result properties.
- Fix:
strtok()replaced with statelessexplode()in Error Log file attribution. - Fix: Health Scan issue count now guards against non-array scan section returns.
- Code: Wizard symptom labels moved to a
symptoms()method so they are translatable. - Code: Hardcoded “Plugin:” label in Error Log Viewer is now translatable.
2.6.1
- Updated: Tested up to WordPress 7.0.
2.6.0
- New: Performance Monitor tab — tracks per-plugin load time, memory delta, and DB query count during page load; color-coded Fast / Slow / Heavy badges; Refresh Data button.
- New: Cron Monitor tab — lists all scheduled WP-Cron events with next run time and overdue detection; “Run Now” button per event; overdue count summary badge at top.
- New: AJAX / REST Monitor tab — logs slow AJAX and REST API calls (>500 ms) to a dedicated DB table; filter bar for All / AJAX / REST / Slow views.
- New: Plugin Interaction Map tab — visualises plugin dependency clusters (WooCommerce, Elementor, Yoast, Jetpack, ACF, etc.) and standalone plugins with active/inactive state.
- Security: cron “Run Now” AJAX handler now validates the hook against the live WP-Cron schedule before execution.
- Security: AJAX monitor REST timing now reads from
$_SERVERdirectly (was using non-standard$GLOBALS['_SERVER']). - Security: AJAX log
get_entries()now selects only required columns instead ofSELECT *. - DB: new
{prefix}cd_ajax_logtable (schema version 3).
Screenshots
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Tahhan Conflict Detective alternatives
All conflict plugins →FAQ
Tahhan Conflict Detective: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Sep 29, 2026
Is Tahhan Conflict Detective free?
Yes. Tahhan Conflict Detective is free to download and use from the official WordPress.org plugin directory.
Is Tahhan Conflict Detective safe to use in 2026?
Tahhan Conflict Detective works, but test it on a staging site before relying on it in 2026. Was last updated 2 weeks ago, and scores 59/100 on our health check.
How many websites use Tahhan Conflict Detective?
Tahhan Conflict Detective is active on <10 WordPress websites and has been downloaded 516 times since it launched in June 2026. It was downloaded 134 times in the last 30 days.
Does Tahhan Conflict Detective work with WordPress 7.1?
Tahhan Conflict Detective is officially tested up to WordPress 7.0.6, while the latest release is 7.1.2. It may still work, but try it on a staging site first.
What PHP version does Tahhan Conflict Detective need?
Tahhan Conflict Detective requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Tahhan Conflict Detective last updated?
The latest version, 2.6.5, was released on September 14, 2026 (2 weeks ago).
Who makes Tahhan Conflict Detective?
Tahhan Conflict Detective is developed and maintained by Mustafa tahhan.
What are the best alternatives to Tahhan Conflict Detective?
The most popular alternatives to Tahhan Conflict Detective are Block editor assets filter (10+ installs), Conflict Guard (<10 installs) and PreFlight Scanner (<10 installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card