Skip to content

Releases: JoshMilli/conversion-iq

v2.5.10 — Fix trust/testimonial false negatives (addon widgets + long pages)

Choose a tag to compare

@JoshMilli JoshMilli released this 27 Jul 08:39

Fixes "no testimonials / missing trust proof" on pages that clearly have them

Reported on phase-ii.com. Confirmed against the live page: it's an Astra + Elementor site using Unlimited Elements addon widgets — a testimonial card carousel (uc_clean_testemonial_carousel, note the misspelled "testEmonial") and a client-logo marquee (uc_logo_marquee, 136 logos just below the hero). Our detector keyed off standard class names (testimonial, client-logo, logo-bar) and matched neither, so both checklist items came back absent and the report generated false "add testimonials / add trust proof" findings.

Compounded by page length: the homepage is ~18,000px tall, so the full-page screenshot is downsampled too far to read below-fold sections — yet the prompt treated the screenshot as the sole authority for these visual items.

Fixes:

  • Social proof now also detects testimonial section headings ("What our clients say", "Testimonials", "Client stories", …), carousel/slider widgets, and the misspelled testemonial class.
  • Trust now recognises logo marquees/carousels and track-record statements ("supported over 30 companies", "1,000+ projects").
  • Trust and social-proof checks are now HTML-confirmable: a positive content signal marks the section present even when it's a below-fold carousel that's illegible in the downsampled screenshot. present=false now requires both the HTML signal and the screenshot to show nothing.

Verified with an isolated detection test: all signals fire on the real phase-ii.com markup, a plain page stays clean (no over-firing), and a standard testimonial section still detects.

Update

Self-hosted update channel — sites are offered v2.5.10 via the standard WordPress updates screen. Manual install: download conversion-iq-2.5.10.zip below → Plugins → Add New → Upload Plugin.

v2.5.9 — Audit accuracy: ground nav/header/footer + stop hallucinated findings

Choose a tag to compare

@JoshMilli JoshMilli released this 23 Jul 08:59

Fixes inaccurate audit findings (e.g. "navigation is missing a persistent action button")

Root cause. The analyzer judged navigation, header-CTA and footer checks against the page body only (the_content / Elementor page content) — the theme header/nav and footer were never in scope. So the "Sticky CTA in Nav" check scanned HTML that structurally couldn't contain a <nav>/<header> and always defaulted to absent, producing false findings like "the navigation is missing a persistent action button" even when a visible header button exists. The same blind spot understated trust signals that live in the hero.

Grounding. The audit now captures the real site header/nav + footer — no loopback HTTP required:

  • Elementor Theme Builder header/footer templates (rendered via Elementor's own API), or
  • the primary nav menu (wp_nav_menu) as a cross-theme fallback.

Both the single-page and bulk audit paths feed header + body + footer into structure extraction, while copy text stays body-only. The nav-CTA check has a deterministic pass over the captured header (handles Elementor's nested-span buttons), verified across Elementor / theme / menu / none cases with no over-claiming.

Anti-hallucination guardrails. The analysis prompt now forbids claiming an element is missing (or recommending adding it) without positive evidence from the screenshot or signals; forbids flagging a "missing free/no-cost" reassurance when the CTA text already says "Free"; and requires every suggestion to reference a real on-page element.

Update

Self-hosted update channel — sites are offered v2.5.9 via the standard WordPress updates screen. Manual install: download conversion-iq-2.5.9.zip below → Plugins → Add New → Upload Plugin.

v2.5.8 — Fix audit critical error on Business/Agency plans

Choose a tag to compare

@JoshMilli JoshMilli released this 21 Jul 13:28

Audits now work on Business and Agency plans

Root cause (pinpointed by the 2.5.7 diagnostics — the client console reported Call to a member function get_var() on null (at rest-api.php:1886)):

global $wpdb; was declared only inside the if ($audits_per_week > 0) weekly-limit block. Business and Agency plans have audits_per_week = 0 (unlimited), so they skipped that block, $wpdb was never brought into the function scope, and the first per-page content-hash query fatalled on a null $wpdb. Free / Starter / Professional plans entered the block and worked — which is exactly why only the Business-plan client saw the "critical error". The 2.5.3 change that made Business/Agency unlimited is what began skipping the block.

Fix: global $wpdb; is now declared at the top of the audit handler for every plan (the redundant conditional declaration was removed). Verified no other function relies on a conditional $wpdb global.

This is the real fix — audits should complete normally on all plans now. The 2.5.7 diagnostics (widened guard + fatal recorder + console surfacing) remain in place as a safety net.

Update

Self-hosted update channel — sites are offered v2.5.8 through the standard WordPress updates screen. Manual install: download conversion-iq-2.5.8.zip below → Plugins → Add New → Upload Plugin.

v2.5.7 — Fix audit critical-error 500 + surface the real fatal

Choose a tag to compare

@JoshMilli JoshMilli released this 21 Jul 13:16

The audit "critical error" 500 is fixed and now diagnosable

Root cause. The audit endpoint's try/catch (\Throwable) only wrapped the AI call. All the heavy work that runs before it — page rendering (which fires apply_filters('the_content') and the entire third-party filter chain in a REST context), HTML-structure extraction, screenshot capture, sprint/GSC fetch — ran outside the guard. A fatal PHP error there escaped to WordPress's shutdown handler and came back as the generic "There has been a critical error on this website" 500, which the guard never saw.

Fixes:

  • The per-page guard now wraps the entire page-processing body, so a fatal in any pre-AI step is returned as a clear per-page failure (with message + file:line) instead of a critical-error page.
  • A fatal-error safety net records non-catchable fatals too (memory exhaustion, execution timeout, or anything outside the guard) and exposes them via a new read-only endpoint GET /conversioniq/v1/audit-last-error.
  • The dashboard fetches that endpoint on a 500 and prints the exact PHP message + file:line to the browser console and the on-screen notice — no WordPress debug.log needed.

After updating: run the audit again. If it still fails, the dashboard will now show the precise PHP error and location (in the notice and the console as 🔥 CIQ recorded PHP fatal:). Send that line and the underlying bug can be fixed directly.

Update

Self-hosted update channel — sites are offered v2.5.7 through the standard WordPress updates screen. Manual install: download conversion-iq-2.5.7.zip below → Plugins → Add New → Upload Plugin.

v2.5.6 — Audit errors surfaced in the browser console

Choose a tag to compare

@JoshMilli JoshMilli released this 21 Jul 12:56

What's new

Diagnostics: audit failures are now readable from the dashboard — no server log access required.

2.5.5 made the audit endpoint catch fatal PHP errors and return the real message + file:line, but the dashboard still only displayed a generic "AI analysis unavailable / check debug.log" message, so the actual cause stayed hidden from anyone without WordPress log access.

2.5.6 fixes the frontend so the real error is visible:

  • The raw audit response (HTTP status + body) is always logged to the browser console.
  • A failed page logs its exact error and error_where (file:line) via console.error.
  • The on-screen notice now shows the real error text instead of pointing at debug.log.
  • The axios catch path dumps err.response.status + err.response.data, so even a hard HTTP 500 (a fatal above the per-page loop) is captured in the console.
  • The per-audit Retry button gets the same treatment.

This is a diagnostics release: it makes a failing audit debuggable directly from the dashboard so the root cause can be identified and fixed.

Update

Self-hosted update channel — sites will be offered v2.5.6 through the standard WordPress updates screen. Manual install: download conversion-iq-2.5.6.zip below and upload via Plugins → Add New → Upload.

v2.5.5 — Surface audit fatals (no more opaque 500)

Choose a tag to compare

@JoshMilli JoshMilli released this 21 Jul 12:43

Diagnostic + resilience fix for the audit endpoint.

  • The audit now catches fatal PHP errors (\Throwable), not just exceptions, so a failure returns a clear message (with file:line, logged and shown to the dashboard) instead of an opaque HTTP 500 / 'critical error' page.
  • This surfaces the actual cause of the remaining audit failure so it can be fixed precisely.

Attached zip extracts to conversion-iq/. Point your get-config /api/plugin-info version to 2.5.5 and download_url to this zip.

v2.5.4 — Fix critical error on audit (KnockKnock)

Choose a tag to compare

@JoshMilli JoshMilli released this 21 Jul 11:52

Hotfix for "There has been a critical error on this website" when running an audit on plans with KnockKnock enabled (Business/Agency).

  • The KnockKnock class is only loaded at plugin-load when the feature flag is on; a mid-request config sync could flip the flag on afterwards, so the audit referenced the class before it was loaded → fatal.
  • The reference is now guarded with class_exists(); the audit runs safely and omits visitor-intelligence data if the module isn't loaded for that request.

Attached zip extracts to conversion-iq/.

v2.5.3 — Per-plan weekly audit limits

Choose a tag to compare

@JoshMilli JoshMilli released this 21 Jul 10:48

Fixes the weekly audit limit that was capped at 3/week for every plan, including Business and Agency.

  • Graduated per-plan limits: Free 3, Starter 10, Professional 25, Business & Agency unlimited.
  • Corrected the limit message to describe the rolling 7-day window (no fixed reset-date implied).

Note: SaaS-synced feature flags override plugin defaults, so also set audits_per_week per plan in your get-config API for the change to take effect on already-connected sites. Attached zip extracts to conversion-iq/.

v2.5.2 — Traffic Intelligence GA4/GSC connection fixes

Choose a tag to compare

@JoshMilli JoshMilli released this 21 Jul 08:53

Fixes to the Traffic Intelligence Google connection flow.

  • GA4 property list now paginates through all Analytics accounts/properties (was capped at the first page) — newer/additional properties are no longer missed.
  • Google Analytics fetch errors are surfaced during setup; added a "Refresh list" button to re-pull properties without reconnecting.
  • Connect either Search Console OR GA4 — both are no longer required. Step 2 (GA4) can be skipped and setup still saves; fixed the Search-Console-only lockout where the wizard kept re-launching.

Attached conversion-iq-2.5.2.zip extracts to conversion-iq/ (correct plugin folder) — suitable to host as the update download_url.

v2.5.1 — Self-hosted update channel

Choose a tag to compare

@JoshMilli JoshMilli released this 15 Jul 06:50

Switches plugin updates from GitHub to a self-hosted JSON update-info endpoint so WordPress core and tools like WP Umbrella detect and install new versions through the standard update system.

  • Update Checker now polls CONVERSIONIQ_UPDATE_INFO_URL (default https://conversioniq-app.com/api/plugin-info) instead of GitHub.
  • Installed version read dynamically from the plugin header; remote check cached ~12h; site license key + domain sent for authorisation; fails quietly if unreachable.
  • Attached conversion-iq-2.5.1.zip extracts to conversion-iq/ (correct plugin folder) — suitable to host as the update download_url.