Fruti Media Integrity Audit

Description

You moved, restored or copied your site, and some images no longer appear. Before you delete, re-import,
regenerate or clean anything, find out what is actually missing.

Fruti Media Integrity Audit compares your Media Library with the files that exist in your uploads directory and
reports two things:

  • Missing files – attachments, including the image sizes recorded in their metadata, that WordPress expects
    to exist but that are absent from the local filesystem. This is not a guess: WordPress itself says the file
    should be there.
  • Orphan candidates – files present in the uploads tree that no attachment metadata claims.

It also counts derived files (the resized and alternate copies that come from your registered image sizes).
They are counted, not listed, because they follow their original.

It is a diagnostic. It never deletes, moves, renames, imports, regenerates or repairs anything, it does not
modify attachment metadata, and it writes nothing to your database.

The plugin is deliberately conservative. A file is only reported as an orphan candidate when its own directory
is already referenced by an attachment from the current scan window. Everything else is listed as
unknown / not classified instead of being called orphaned, because a wrong “orphan” label is worse than no label.

Useful after a migration, a backup restore, a host move or an offload/CDN change, and as a sanity check before
running any cleanup tool.

Screenshots

Installation

  1. Upload the plugin folder to /wp-content/plugins/, or install the ZIP through Plugins -> Add New -> Upload Plugin.
  2. Activate the plugin.
  3. Go to Tools -> Fruti Media Integrity Audit and press “Run audit”.

How to use it

  1. Open Tools -> Fruti Media Integrity Audit.
  2. Press Run audit. The plugin checks the attachment window and scans the uploads window you configure under “Advanced: scan window” (the defaults are safe for most sites).
  3. Read the two result groups. Missing files are checked exactly: WordPress metadata says the file should exist and it does not.
  4. If the notice says the file scan hit its per-run limit, the window is partial – raise the file offset and run again to inspect the rest.
  5. Press Download CSV for this window to export the current results. The CSV is generated on the fly and is never stored.

FAQ

I migrated or restored my site and images are missing. What should I do?

  1. Run the audit and read the Missing files list. Those are the files WordPress expects at exact paths – they
    are what makes images (and their thumbnails) disappear.
  2. Look for the same relative paths in a recent backup, on the old host or in your hosting file manager, and copy
    the files back to those same paths. Do not delete the attachments: their metadata is still correct, so
    restoring the file is usually enough.
  3. Treat Orphan candidates as candidates only. Check a few in the Media Library before removing anything, and
    take a backup first.
  4. Leave Unknown / not classified alone. Those files are outside this scan window or cannot be attributed
    safely.
  5. Nothing needs to be “repaired” by this plugin: it reports, and you decide with the tool of your choice.

What to do after the report?

The report is a diagnosis; nothing on your site has been changed. Take a full backup before any repair or
cleanup, restore genuinely missing files from a backup where you can, verify candidates by hand before deleting,
and leave unclassified files untouched. If a migration tool moved your files, fix the files or their paths, not
the attachments.

Does this plugin delete or fix anything?

No. It is strictly read-only: no deletion, no import, no thumbnail regeneration, no metadata change, no automatic
repair. Fixing is a decision you make with another tool, after reading this report.

Can it see files outside my uploads directory?

No. It only inspects the uploads tree that WordPress itself reports, it never accepts a path from the browser, and
symlinks are not traversed.

Why are some files listed as “unknown” instead of orphaned?

Because the plugin refuses to guess. If a file’s directory is not referenced by any attachment in the current
window, the plugin cannot tell whether the file is unused or simply belongs to a part of the library outside this
window, so it reports it as unknown.

What happens on very large media libraries?

Each run is bounded: a limited number of attachments and files are processed per run, nothing is loaded into
memory in full, and the screen tells you when the window was partial so you can continue manually. There is no
background job and no cron.

Privacy

Everything runs locally inside your own admin request. Filenames, paths and results are never uploaded, never sent
to any external service, never logged and never stored in the database. The plugin makes no network requests and
collects no telemetry.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Fruti Media Integrity Audit” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.1

  • The results screen now ends with a short “What to do next” guidance block: what missing files, orphan candidates
    and unknown files each mean, and the safe order of actions (backup first, restore files, verify candidates by
    hand, leave unknown files alone).
  • The first screen explains what will be checked and that nothing will be changed; the scan-window fields moved
    under “Advanced: scan window”. Defaults and scan behaviour are unchanged.
  • Honest result presentation: when a table shows the first 200 rows the screen says so and points to the CSV; the
    summary labels the derived count as “counted, not listed”; the scan-window term is explained in one line.
  • A clean window is now reported as a success notice instead of three “nothing to report” lines – without claiming
    anything about the parts of the library that were not scanned.
  • This readme and the listing now lead with the problem (images missing after a migration or restore) instead of
    the implementation.

1.0.0

  • First release: read-only report of Media Library files missing from disk and uploads files that no attachment
    claims, with a conservative unknown group, a bounded scan window and a CSV export.