Phase 4 · Guide #35

Activity Log & Audit Trail

Centralize URL Medic fixes, outbound link edits, and general plugin events—the Activity Log tab under Tools & Analytics shows KPI-style counters, timeline rows, scoped filters, and clear actions so you can trace what changed, when, and why. Open admin.php?page=seo-link-genius_tools&tab=activity-log.

9 min readAudit · Filters · ExportNo inline scripts in this block

Before you start

From WP Admin choose SEO Rank Genius → Tools & Analytics, then open the Utilities grouping and click Activity Log. Alternatively, bookmark ?page=seo-link-genius_tools&tab=activity-log so auditors land on the same surface every time.

  • Caps: Expect an administrator-level capability (typically manage_options)—agency role plugins should map accordingly.
  • Multiple feeds: The tab merges URL Medic entries, database-backed link history, and the rotating general activity buffer—each behaves slightly differently underneath.
  • Destructive clears: URL Medic and General timelines expose Clear Log when rows exist; use them sparingly because they remove on-screen history immediately after success.
Redirects & 404 pairing The headline stat for Recent Redirects summarizes rules created inside the trailing 30‑day window. Pair it with the URL Medic and 404 workflows when validating whether link repairs outpaced new redirect churn.

Activity Log screen

The hero card introduces the purpose: tracing link-related changes alongside plugin-wide events. Underneath, five stat tiles quantify URL Medic actions, tracked link edits, queued general rows, freshly created redirects, and how many URLs Link Guardian currently shields.

/wp-admin/admin.php?page=seo-link-genius_tools&tab=activity-log
SEO Rank Genius › Tools & Analytics › Utilities › Activity Log

📋 Activity Log

Track link-related changes and system events. Filter timelines to spotlight URL Medic batches, granular link edits, or general plugin notices.

URL Medic
18
Link changes
64
General
100
Redirects · 30d
12
Protected
904

Mirrors tab-activity-log.php: stat row, explanatory card, then pill-style filters toggling which sections remain visible.

Pagination limits & scrolling

Each backend query loads a capped window (for example URL Medic pulls the latest fifty operations, Link History fifty rows, General activity up to one hundred items). Older entries fall off automatically as new events arrive—think of this as paging by freshness rather than classic numbered pagination.

Filter events

Filters behave like segmented controls: activating All Activity reveals every stacked card, while narrower targets hide everything except matching sections (data-section=”url-medic”, links, general). Badge counts summarize how many timeline rows exist inside each lane before you isolate them.

…&tab=activity-log — filter lanes

Filter focus: URL Medic only

🛠️ URL Medic Activity

Clear Log

Slug changed for “Winter Campaign Brief”

12 minutes ago · Auto

/blog/old-slug//blog/winter-brief/

142 links fixed · 18 posts affected

Selecting URL Medic keeps only that card in view—ideal when proving bulk internal-link repairs after slug surgery.

Export-friendly general buffer Use Import / Export settings and include the dedicated Activity Log bundle—the exporter serializes slg_activity_log alongside other selected groups for regulatory archives.

Event types

Use the timelines as complementary lenses:

ScansCrawl completions and telemetry writes usually surface inside General Activity with a Scans-style badge and search iconography.
RedirectsRedirect creation volume appears in the purple stat chip; correlate spikes with redirect manager changes from the Utilities stack.
Schema & indexingStructured-data publishes often log via general plugin hooks—look for explanatory sentences mentioning schema, JSON-LD refreshes, or indexing modules.
LinksInserts, removals, and edits display action badges (Insert, Remove, Update) plus optional anchor/target metadata.
timeline · link lane & general lane

🔗 Link Changes History

Link added in “Services Overview”

2 hours ago · Insert · by Jamie

Target Pricing Calculator · Anchor “see pricing tool”

Link updated in “Case Study Hub”

Yesterday · Update

🔄 General Activity

Deep crawl finished · 842 posts analyzed

42 minutes ago · Scans

Organization schema regenerated sitewide

Monday · Settings

Redirect rule batch imported (staging)

Monday · Redirects

Link lane enumerates granular editorial actions while General interleaves scan outcomes, structured-data pushes, or redirect-heavy automation messages.

Audit workflow

1

Establish baselines

Glance at the KPI row so you understand whether redirects or URL Medic dominates the week.

2

Slice by accountable team

Ops-heavy weeks begin under URL Medic; editorial studios lean on Link Changes; infra & schema checks live in General.

3

Archive & hand off evidence

Bundle exports with stakeholder notes referencing timestamps and affected post IDs. Pair CSV backups with redirect or Link Guardian dashboards when auditors ask for traceability beyond the trimmed buffer.

Import / Export → Activity Log bundle

Settings export

Tick “Activity Log” to serialize slg_activity_log JSON

Download .json
GroupCaptured keys
Activity Logslg_activity_logYes
Redirectsslg_redirectsLater
Statistics historyslg_stats_historyLater

Why export?

Regulators rarely accept screenshots alone—a signed JSON excerpt proves the chronological buffer existed at freeze time.

Optional bundle step for compliance; combine with redirects + stats exports when migrating hosts.

Troubleshooting

Rows vanished after clearing Clicking Clear Log on URL Medic or General removes stored entries permanently for that lane—coordinate with teammates before wiping evidence during an open incident.
Stale counts Stat tiles read live PHP totals at render time—if you cleared logs in another tab, refresh WP Admin so counts and timelines stay aligned.
Diagnostics · timeline empty?

No General Activity Yet

Scans must finish logging or activity buffer may still be flushing from cron.

Rescan crawl
Verify caps

Empty states mirror production messaging—kick off representative work then reload before assuming logging failed.

Redirects stat stuck at zeroNew redirect rows only increment when timestamps exist within thirty days.
Link Guardian mismatchProtected total is contextual—audit Link Guardian independently if protectors disagree with editor expectations.
Missing schema proofOpen Indexing › Structured Data for schema diffs—the Activity Log summarizes only what the logger captured.
Heavy migrationsPrefer full export/import flows so activity buffers travel with deterministic JSON instead of cloning DB fragments.