Set WordPress Author to Correct Person

Task Library

Make the site owner the byline on every post – not an admin account or VA – so Google attributes the content to the right entity and E-E-A-T accrues to the brand.

Category: Content Factory – Post

Use this when a post is about to publish, or whenever an audit finds posts bylined to "admin," an agency login, or a VA instead of the site owner.

Who the author must be

The site owner = the person the site is about (billybatt.com → Billy Batt). If you don't already know them, derive it from the site's own identity: existing real author → lone real user → og:site_name → Person-schema name<title> head → cleanly-splittable domain. Only fall back to "Dennis Yu" for a page that names no identifiable person. (audit_fleet.py's candidate_figurehead computes exactly this – trust it.)

First, classify the site (check the users list: GET /wp-json/wp/v2/users?per_page=100)

  • Situation A – the display name is already the owner, but the slug is still `admin` (e.g. author shows "Gavan Thorpe" yet the URL is /author/admin/). The byline reads right; the account slug is the leak. Fix = rename that one account's slug (and confirm display): POST /wp-json/wp/v2/users/<id> {"name":"Gavan Thorpe","slug":"gavan-thorpe"}. No post reassignment needed.
  • Situation B – the byline is literally "admin" and it's the only user. Fix = give that single account the owner's identity rather than create a duplicate human: POST /wp-json/wp/v2/users/<id> {"name":"Billy Batt","slug":"billy-batt","first_name":"Billy","last_name":"Batt"}. The login username (user_login) stays admin, so nothing about logging in changes – but every existing and future post now bylines to the owner (self-healing for anyone who publishes while logged in as admin).
  • Situation C – a real owner account already exists next to admin (e.g. "Daryl C Urbanski" + "admin", posts sitting under admin). Fix = reassign each admin-bylined post to the existing real user's ID: POST /wp-json/wp/v2/posts/<id> {"author": <real-user-id>}. Don't rename admin here.

Inputs

  • A real write credential: an Application Password, or the site's admin creds from the BlitzAdmin API (console at blitzadmin.com root; per-site AdminUsername/AdminPassword/ApplicationPassword). Route writes through a browser / residential IP – the shared fleet host WAF-blocks datacenter/sandbox IPs.
  • The site owner's correct name, headshot, and short first-person bio
  • The users list and the list of posts with their current authors + slugs

Steps

  1. Confirm the site owner has (or gets) a WordPress user whose display name is their real full name (never "admin") and whose slug is their name (never admin) – profile photo is their real headshot, bio is first person and matches their social profiles.
  2. On the current draft, set the post's Author to the owner's account. VAs and agents draft under their own logins, but the published byline is always the owner.
  3. Apply the Situation A/B/C fix above across all existing published posts – rename the account (A/B) or reassign the posts (C) – until no post's author.name or author.slug is admin/administrator.
  4. Check the author archive (/author/<owner>/) renders and lists the owner's posts – part of the entity's footprint. Confirm the slug in that URL is the owner's name, not admin.
  5. Verify persistence: re-fetch ?_embed=author (posts) and /users/<id> after the write and confirm the change stuck – a 200 that a cache or a later site rebuild reverts is the known failure mode (it's what made gavanthorpe/georgepaladichuk re-appear on the fleet list after a "successful" 2026-07-04 fix).
  6. Never change the login username or the notification email during this – only display name, slug, and post author.
  7. For personal-brand sites, confirm content reads in first person to match the byline (the /website-qa-audit Layer 2 standard).

Definition of done (QA checklist)

  • Current post's author = site owner; display name is the real full name, not a login handle
  • Zero published posts remain bylined to admin/VA/agency accounts (author.name verified)
  • Zero /author/admin/ slugs – the author account's slug is the owner's name (author.slug verified)
  • Owner's user profile has real headshot and first-person bio consistent with social profiles
  • Author archive page renders at /author/<owner>/ and attributes correctly
  • Re-pull confirms the fix persisted (not just a one-shot REST 200)
  • Login username and notification email left unchanged
  • Linked back to the definitive article and relevant siblings
  • Complies with Blog Posting Guidelines (if it publishes content)

Example(s)

  • 2026-07-17 – fleet authorship sweep (13 sites). The weekly fleet audit flagged 13 personal-brand sites with admin-bylined posts. Classified each: Situation A (display already the person, slug still admin) – alexiltchev, gavanthorpe, georgepaladichuk, nic-padilla, samdemaio, thedavidcarroll; Situation B (byline literally "admin", lone account) – billybatt→Billy Batt, carolhasegawa→Carol Hasegawa, deannawallin→Deanna Wallin, jacksoncodd→Jackson Codd, laynekilpatrick→Layne Kilpatrick, olivergilliam→Oliver Gilliam; Situation C (existing real user) – darylurbanski→reassign to "Daryl C Urbanski". Figureheads were derived automatically from each site's own og:site_name/title (audit_fleet.py candidate_figurehead), so no name was guessed. Key lesson baked into this skill: two of the "A" sites had been marked fixed on 2026-07-04 but re-appeared because that fix only touched the display name (or didn't persist) – hence the slug check + persistence re-pull are now mandatory.

File in the zip: skills/content-factory-post/set-wordpress-author-to-correct-person.md. Download the Task Library zip.

Index: Task Library. Article guidelines.

Scroll to Top