Why duplicate and thin content quietly hurts a site
A site that has been running for a few years collects content problems the way a garage collects boxes. Two posts with nearly identical bodies because someone re-published instead of editing. Category descriptions copied across pages. Old posts under 200 words that exist but say nothing. Links pointing at products and pages that no longer exist. None of it is urgent, so none of it gets fixed, and search engines slowly learn to trust the site a little less.
The reason it never gets cleaned up is that auditing it by hand is miserable. You would have to open every post, compare bodies, count words, and click every link. Most "content audit" advice ends with "export everything to a spreadsheet," which is where the project dies.
TrueCommander turns the audit into three commands you run from the navigator, plus one command that fixes the mechanical problems in bulk.
Find exact duplicates
The find duplicate content command scans posts, pages, and products for exact-match duplicates. It normalizes each body first, stripping HTML, block markers, and shortcodes, collapsing whitespace, and comparing case-insensitively, so it catches copies that look different in the editor but read the same to a search engine.
Shown in advanced mode, the navigator's default, where commands start with tp. In easy mode you type the same command without the tp prefix.
Tune the scan with a few flags: -by=title to match on titles only, -by=both for title and body, -types=post,page,product to limit what gets scanned, and -min_length=100 to ignore short bodies that are duplicate by coincidence. It is read-only and never changes anything, so it is safe to run as often as you like.
Find thin and stale posts
Thin content is the opposite problem: posts that exist but are too light to rank. The filter post command finds them by length and other signals.
tp filter post -words-below=300 lists every post under 300 words. The shortlist for "expand, merge, or delete."tp filter post -no-content and tp filter post -no-image catch placeholder drafts that went live empty and posts missing a featured image.tp filter post -updated-before=2024-01-01 surfaces content nobody has touched in over a year, the refresh-or-retire pile.Find broken links
Broken links are the third audit pass. scan broken links checks every URL in your published content, processing up to 50 posts per run and automatically continuing from where it stopped last time. Run it a few times, or schedule it, and the whole site gets audited without ever timing out on a large library.
Fix the mechanical problems in bulk
The audit gives you three lists. Some of what is on them needs an editor: a thin post has to be rewritten, two duplicate articles have to be merged and redirected. But a large share of content problems are mechanical, the same wrong string repeated across hundreds of posts, and those you can fix in one pass.
Bulk find and replace, safely. replace updates text across post content site-wide, with case-insensitive, whole-word, and regex modes. Fixing a broken link that appears in 80 posts, updating an old brand name, or swapping a changed URL becomes a single command instead of 80 edits.
Always preview first. Run tp replace -from="old text" -to="new text" -dry-run=true to see exactly which posts would change before anything is written. The live run updates posts through WordPress (revisions are created so individual posts can be rolled back), but there is no cross-post undo, so the dry run is your safety net.
Make the audit routine
A content audit you run once is a content audit that is stale in a month. Chain the three read-only scans into a single macro so one click runs the whole audit, or add them to Scheduled Commands to run quarterly. The problems surface on a cadence, and you fix them while the list is still short.