Audit
The Audit is the heart of SeoFreshUp. It analyzes every published article and assigns a verdict so you know what to keep, update, rewrite, or delete.
What it analyzes
For each article, the pipeline collects 8+ signals:
| Signal | Source |
|---|---|
| Word count | Strip tags from post_content, count words |
| Image count + featured image presence | Parse <img> tags + _thumbnail_id meta |
| Age | post_date + post_modified |
| Internal incoming/outgoing links | Custom graph built from all <a href> tags |
| Outbound link health | HTTP status, malware checks |
| Traffic (clicks + views) | Google Search Console + GA4 via Site Kit |
| AI editorial verdict | LLM call (gpt-4o-mini default) |
| Core Updates risk | LLM call with Google’s directives feed |
The 4-tier verdict system
Every analyzed article ends up in one of:
- 🟢 GARDER (Keep) — high quality, ranking or rankable, no changes needed
- 🔵 METTRE À JOUR (Update) — good base, just needs date refresh + minor tune-ups
- 🪄 RETRAVAILLER (Rework) — topic worth investing in, current version too thin/old
- 🟠 NOINDEX — niche/internal use only, keep accessible but exclude from search
- 🗑 SUPPRIMER (Delete) — no value, no traffic, drop with 301 to category
Quality % score
A composite score 0-100 combining all signals:
Start at 100- Risk FORT : −40- Risk MOYEN : −20- Verdict SUPPRIMER : −45- Verdict NOINDEX : −20- Verdict RETRAVAILLER : −25- Topic obsolete : −20- Potential NUL/FAIBLE : −8 to −15- Links NUL/FAIBLE : −6 to −10- Age 24+ months : −4- Age 36+ months : −8+ Active traffic bonus : up to +15
Final: 0-100The “Quality” column in the audit table uses this score. Articles below 40 % need urgent attention; above 80 % are healthy.
Running the audit
One button: 📊 Analyse complète (top of the Audit tab). It runs 4 phases sequentially:
- Load traffic (free — calls GSC + GA4 via Site Kit)
- Refresh Google directives feed (free — Google’s public RSS)
- Risk analysis (~$0.001 per article via gpt-4o-mini)
- AI editorial verdict (~$0.002 per article via gpt-4o-mini)
For a 1000-article blog, total cost is ~$3-5. Total time ~5-10 minutes.
Re-analyzing a single article
Each row has an ⚡ Action dropdown with 🤖 Re-analyze. This re-runs steps 3-4 for that article only, useful after editing content or before deciding what to do with it.
Caching
The audit pipeline caches verdicts in wp_postmeta so subsequent visits don’t re-run AI calls. Cache invalidation: when you update an article (post_modified changes), the verdict is automatically marked stale and re-runs at the next audit.
Filtering the table
Use the dropdown at the top-left of the Audit tab. Most useful filters:
- 🎯 À supprimer + 0 trafic: safe-to-delete pile (zero traffic + low quality)
- 🤖 RETRAVAILLER: articles where AI rewrite is worth the time
- 🛡 À risque ÉLEVÉ: Core Updates radar
- 🚫 Sans image: articles missing visuals
- 📷 Sans image de mise en avant: articles without featured image (great for bulk featured image generation)
Exporting
CSV export is on the roadmap. For now, you can copy-paste the table or use WP-CLI.