For WordPress only. A self-hosted WordPress plugin — not a hosted scanning service.
Personal Data Scanner
Data sources

Where it looks

Every source is scanned in resumable batches, so scanning never loads a whole table into memory or locks up a busy site.

SourceWhat's coveredTier
Users & user metaEvery account, including WooCommerce billing/shipping fields and any custom meta another plugin attaches.Free
Comments & comment metaAuthor name, email, IP address, URL, content — every status including spam and trash, and WooCommerce order notes (stored as comments).Free
Posts, pages & revisionsTitle, content, excerpt and meta, across every status including drafts, private posts, and the revision history most sites never clear.Free
Options tableSerialized and JSON option values, which is where many third-party plugins quietly store personal data.Free
WooCommerce ordersBoth High-Performance Order Storage (HPOS) and legacy post-based orders, detected automatically — addresses, notes, meta.Free
WooCommerce customersThe dedicated customer lookup table WooCommerce maintains, independent of WordPress user accounts.Free
Contact Form 7 (via Flamingo)Every stored submission, field by field, including sender metadata.Free
WPForms entriesFull entry data matched back to the original field labels. Requires WPForms Pro, which is the tier that stores entries.Free
Custom post type + specific fieldsPoint the scanner at any custom post type from another plugin and list exactly which fields to check.Pro
Detectors

What it recognizes

Every detector reports a confidence score. Validated formats (IBAN, card, several national IDs) score high because they pass a real checksum, not just a plausible shape.

DetectorHow it works
Email addressPattern matching with format validation; documentation domains like example.com score low.
Phone numberInternational and common national formats. Unformatted digit runs count only in a field whose name says it's a phone number, to avoid flagging order numbers.
IP addressIPv4 and IPv6. Private and loopback ranges are reported at low confidence since they rarely identify a specific person.
IBANValidated against the real ISO 13616 mod-97 checksum, so false positives are rare.
Payment card numberLuhn-validated and matched against known issuer prefix ranges (Visa, Mastercard, Amex, Discover, JCB, Diners, Maestro, UnionPay).
National ID numberGermany (Steuer-ID), United Kingdom (National Insurance number), United States (SSN), Georgia (personal number), Italy (codice fiscale), Spain (DNI/NIE), and the Netherlands (BSN) — each validated with its own checksum where one exists.
Date of birthRecognized in a labelled field, or next to a birth-related keyword in free text.
NameOnly in fields whose name says it's a name (first_name, billing_last_name, comment author, and similar) — deliberately not in free text, to avoid noisy false positives.
Health keywordsAn optional special-category signal for the HIPAA angle: medical vocabulary and ICD-10 codes. Off by default.
Custom detector ProYour own regular expression, with its own confidence, masking style and optional field-name restriction.
Working with findings

Free: see it. Pro: fix it.

Dashboard

Total items found, broken down by type and by source, with a live progress bar while a scan runs.

Findings table

Filter by source, type, confidence and status; search; open the exact record in its own edit screen.

Bulk Ignore

Free. A finding you've reviewed stays ignored on every future scan until you reopen it.

Printable report

Free. On-screen inventory with a source-by-type matrix and the records holding the most personal data.

Delete & Anonymize Pro

Remove or anonymize findings in bulk, straight from the table, with a confirmation step and a full audit log.

Bulk cleanup rules Pro

Act immediately on everything matching a source, a type, or a saved rule — separate from scheduled retention.

Retention rules Pro

"Anonymize orders older than 3 years." Runs on a schedule, in the background, and logs every action.

Data subject requests Pro

Look up everything held about one email address across every source, then export or erase it.

Custom sources Pro

Add a custom post type and its specific fields as a source the scanner checks by name.

Scheduled scans Pro

Daily or weekly scans with an email summary — no manual "Scan now" required.

CSV export Pro

Every finding, exported for your own records or an auditor.

WP-CLI

Free. wp pdscan scan, status, findings and info for automation and large sites.

See the full price comparison