---
title: Scan History and Comparing Two Scans
description: "The scan history in [Catalog Health Scanner for WooCommerce Pro](https://wpfactory.com/item/catalog-health-scanner-for-woocommerce/) keeps every completed scan on record, so you can see whether your catalog is getting better or worse and compare any two points in time. Catalog Health Scanner shows you…"
url: "https://wpfactory.com/docs/scan-history-compare/"
updated: "2026-10-05"
category: How to
tags:
  - Catalog Audit
---

# Scan History and Comparing Two Scans

The scan history in [Catalog Health Scanner for WooCommerce Pro](https://wpfactory.com/item/catalog-health-scanner-for-woocommerce/) keeps every completed scan on record, so you can see whether your catalog is getting better or worse and compare any two points in time. Catalog Health Scanner shows you not just the score movement between two scans but which specific checks were fixed, which regressed, and which are new.

## Where to find it

Go to **WPFactory > Catalog Health** and open the **History** tab, the last tab in the row after the ten category tabs. The screen has three panels stacked in this order: the comparison tool, the scan history table, and the fix activity log.

![Catalog Health Scanner history screen comparing past scans with fixed, regressed and new issues](https://wpfactory.com/wp-content/uploads/Catalog-Health-Scanner-History.png)

## The scan history table

The table lists the most recent completed scans, newest first, up to 50. Running, paused and cancelled scans are not listed: only scans that finished appear.

| Column | What it shows |
| --- | --- |
| Date | When the scan completed, in your site's date and time format. |
| Profile | The [scan profile](https://wpfactory.com/docs/scan-profiles/) that ran, by its label. This matters: a Revenue Blockers score and a Full Scan score are not the same measurement. |
| Duration | How long the scan took, from start to completion, in human-readable form. |
| Products | How many products were actually checked. |
| Issues found | The issue count recorded for that scan. |
| Score | The health score, coloured by its band: Healthy, Minor issues, Needs attention, or Critical. |
| Report | A **PDF** link that downloads the audit report for that specific scan. |

### Per-row PDF download

Each row's **PDF** link builds a report for that scan, not for the latest one. The link carries a nonce and the handler re-checks both the nonce and your capability, so it is single-use and cannot be shared with someone who does not already have access to the plugin. A stale link produces "Link expired." Just reload the History tab to get a fresh one. See [CSV export and PDF audit report](https://wpfactory.com/docs/catalog-health-reports/) for what the document contains.

### The `*` marker on a score

A small `*` next to a score means that scan's score was recalculated after you changed applicability, with the tooltip "Recalculated after an applicability change; the trend stays comparable."

This happens when you change which check groups apply to your store. Rather than leaving old scans scored by the old rules, which would put a meaningless step in your trend line, every completed scan is re-scored from the counters it recorded at the time using your current configuration. No product is re-read and nothing is re-scanned: only the arithmetic changes. Scans whose score did not move are left untouched and carry no marker, and the original score is retained in the scan record alongside the new one.

The marker exists so that a number that changed without a new scan never looks like something you did to your catalog. Full detail is in [check applicability](https://wpfactory.com/docs/check-applicability/).

## The trend line

The score trend is drawn on the **Dashboard**, not on the History tab. It sits next to the score gauge, as a compact line across your last eight completed scans, oldest on the left, with the first and last percentages labelled at either end. It appears once you have more than one completed scan. Use the trend for the direction of travel, and the History tab for the numbers behind it. See [the dashboard and health score](https://wpfactory.com/docs/catalog-health-dashboard/).

## Comparing two scans

The comparison panel appears at the top of the History tab as soon as you have at least two completed scans.

1. Pick a scan in the **From** dropdown and another in the **To** dropdown. Each option shows the scan date and its score, so you can pick by outcome rather than by memory.
2. Click **Compare**.

The two scans are ordered for you, so it does not matter which way round you pick them: the older one is always treated as the starting point. The comparison is a plain GET request, which means the resulting view has its own URL you can bookmark or send to a colleague.

The result opens with the headline: the two dates and the score delta, in green when the score went up and red when it went down. Below that are three rows.

| Row | Meaning | How it is determined |
| --- | --- | --- |
| **Fixed** | Issues that were open at the start and are resolved by the end. | Issues whose `resolved_at` falls between the completion times of the two scans. |
| **Regressed** | Issues that had been fixed and came back. | Issues whose `last_reopened_scan` falls between the two scan ids. A resolved issue seen again is stamped with the scan that brought it back, which is what makes a regression distinguishable from a brand-new finding. |
| **New** | Issues seen for the first time in this window. | Issues whose `first_seen_scan` falls between the two scan ids. |

Each row lists the checks involved with a product count in brackets, up to the eight largest, plus a total on the right. A row with nothing in it reads "None".

### Why the distinction between "new" and "regressed" matters

Both look identical in a plain issue list: an open issue that was not open before. They mean very different things about your process. A new issue is usually the result of new or edited products. A regression is something you already fixed once that has come undone, which normally points at an import that reruns, a sync that overwrites, or a fix that was applied to a value some other system keeps rewriting. Seeing the same check in the Regressed row scan after scan is a signal to look upstream rather than to fix it again.

### What the comparison is not

The comparison reads the current state of the issue records with timestamps and scan ids as the filter. It is not a frozen snapshot diff of two archived reports. If you ignore or restore issues between viewing it twice, the numbers can move. That is the intended behaviour, since ignoring is a decision about the finding itself, but it is worth knowing when you are reconciling numbers.

## The fix activity log

The last panel on the History tab is the fix activity log: the 25 most recent fix batches, with the date, the user who ran it, the check, the number of products, and a status column holding the **Undo** button while the batch is still within the undo window. This is where you undo a bulk fix that did not do what you expected. See [fix issues safely](https://wpfactory.com/docs/fix-catalog-issues/) for the full safety model.

## Making history worth having

- **Keep the profile consistent.** Comparing a Revenue Blockers scan with a Full Scan compares two different question sets. Set a default profile and let scheduled scans use it, so the trend measures your catalog rather than your settings.
- **Scan on a schedule.** Regular scans at a fixed interval turn the trend into something readable. See [scheduled scans, digest and alerts](https://wpfactory.com/docs/scheduled-scans-email-digest/).
- **Compare across an event.** Pick the scan before an import or a bulk edit and the first one after it. That is the fastest way to see exactly what an operation did to your catalog.
- **Download the PDF at milestones.** The per-row PDF link means you can produce the report for a scan months later, exactly as it was scored.

## Where the data lives

Scans are stored in `{prefix}wpfchs_scans`, one row per scan, holding the profile, timings, counts, the score, and a JSON payload with the per-category breakdown and the raw counters used for recalculation. Issues live in `{prefix}wpfchs_issues`, which is what carries `first_seen_scan`, `last_seen_scan`, `last_reopened_scan` and `resolved_at`. Fix batches live in `{prefix}wpfchs_fixlog`. Resetting the plugin's settings does not touch any of these three: your scan history, issues and fix log are kept.

## Need help?

If a comparison shows movement you cannot account for, note the two scan dates and [contact WPFactory support](https://wpfactory.com/support/).

Related articles

- [Run Your First Catalog Scan](https://wpfactory.com/docs/run-your-first-scan/)
- [Ignore False Positives and Manage the Ignore List](https://wpfactory.com/docs/ignore-false-positives/)
- [Triage Catalog Issues in the Category Tabs](https://wpfactory.com/docs/triage-catalog-issues/)
