How to Change the Author on a WordPress Post
Changing the author on a WordPress post means reassigning the user account credited as the content's creator — a native WordPress capability accessible directly from the admin dashboard without any plugins. This operation is available for single posts via the block or classic editor, and for multiple posts simultaneously through the built-in bulk edit interface.
Whether you are onboarding a new editorial team, crediting a guest contributor, correcting a mis-assigned post, or migrating content from a deleted user account, WordPress provides granular control over authorship at both the individual and batch level. This guide covers every method, including edge cases that trip up even experienced site administrators.
Why Author Assignment Matters Beyond Simple Credit
Author metadata in WordPress is not cosmetic. It is stored in the wp_posts database table as post_author, referencing the ID field in wp_users. This relationship has downstream consequences:
- Author archive pages (
/author/username/) aggregate all posts assigned to a user. Reassigning a post removes it from the original author's archive and adds it to the new one. - Schema markup — particularly
Personschema generated by SEO plugins like Yoast or Rank Math — pulls from the author field. Changing the author updates the structured data Google indexes. - REST API responses include
authoras a top-level field. If you have a headless frontend or external integrations consuming the WordPress REST API, a reassignment is immediately reflected. - Deleted user accounts leave posts in a broken state unless authorship is transferred before deletion. WordPress prompts you to reassign posts during user deletion, but if that step was skipped, those posts show no valid author.
If you are running WordPress on a VPS Hosting environment, you also have direct database access, which opens up a command-line bulk reassignment path covered later in this guide.
Prerequisites: User Roles and Permissions
Only users with specific roles can appear in the author dropdown. WordPress enforces this through the edit_posts capability. The roles that qualify by default are:
| Role | Can Be Assigned as Author | Can Change Author on Others' Posts |
|---|---|---|
| Administrator | Yes | Yes |
| Editor | Yes | Yes |
| Author | Yes | Only on own posts |
| Contributor | No | No |
| Subscriber | No | No |
Key nuance: A Contributor role cannot be selected as a post author in the dropdown because Contributors lack the publish_posts capability. If you need to credit a guest writer who submitted content, you must either elevate their role to Author temporarily or create a dedicated Author account for them.
Method 1: Changing the Author on a Single Post (Block Editor)
This is the standard path for WordPress 5.0+ sites using the Gutenberg block editor.
Step 1 — Access the post editor.
Navigate to Posts > All Posts in your WordPress admin dashboard. Hover over the target post and click Edit.
Step 2 — Open the Document settings panel.
In the block editor, the right-hand sidebar contains two tabs: Post and Block. Ensure you are on the Post tab (sometimes labeled Document in older Gutenberg versions).
Step 3 — Locate the Author field.
Scroll down the Post panel until you see the Author section. It displays the currently assigned user. If the Author section is not visible, it has been hidden from the panel.
To restore it: click the three-dot menu (ellipsis icon) at the top-right of the editor, select Preferences, go to the Panels tab, and enable Author.
Step 4 — Select the new author.
Click the Author dropdown. It lists all users with edit_posts capability. Select the intended author.
Step 5 — Publish or update.
Click Update (for already-published posts) or Publish to save. The change is written to the database immediately.
Method 2: Changing the Author on a Single Post (Classic Editor)
If your site uses the Classic Editor plugin or you are on a legacy WordPress installation:
Step 1 — Navigate to Posts > All Posts and click Edit on the target post.
Step 2 — Enable the Author meta box if hidden.
Click Screen Options in the top-right corner of the edit screen. Ensure the Author checkbox is ticked. The Author meta box will appear below the content editor or in the right sidebar depending on your layout.
Step 3 — Change the author.
In the Author meta box, open the dropdown and select the new user.
Step 4 — Click Update.
Method 3: Bulk Author Reassignment via the Admin Interface
When you need to reassign authorship across dozens of posts — for example, after a staff departure or a site merger — the bulk edit feature handles this without requiring database access.
Step 1 — Go to Posts > All Posts.
Step 2 — Filter by the current author (optional but recommended).
Use the All Authors dropdown filter at the top of the post list to display only posts from the author you want to replace. This prevents accidental reassignment.
Step 3 — Select posts.
Check the boxes next to each target post, or check the box in the header row to select all posts on the current page. If you have more posts than fit on one page, you will need to repeat this process per page, or use the command-line method below.
Step 4 — Apply bulk edit.
In the Bulk Actions dropdown, select Edit, then click Apply.
Step 5 — Assign the new author.
The bulk edit panel expands inline. Locate the Author dropdown and select the replacement user.
Step 6 — Click Update.
WordPress processes each selected post individually, so the operation may take a few seconds for large batches.
Method 4: WP-CLI Bulk Reassignment (Command Line)
For server administrators managing WordPress at scale — particularly on Dedicated Servers or VPS environments — WP-CLI is the most efficient and scriptable approach. It bypasses the browser entirely and handles thousands of posts in seconds.
Reassign all posts from one user to another:
wp post list --post_author=OLD_USER_ID --post_type=post --format=ids | xargs wp post update --post_author=NEW_USER_IDReplace OLD_USER_ID and NEW_USER_ID with the numeric IDs from your wp_users table. You can look these up with:
wp user list --fields=ID,user_login,display_nameReassign posts of a specific post type (e.g., pages or custom post types):
wp post list --post_author=OLD_USER_ID --post_type=page --format=ids | xargs wp post update --post_author=NEW_USER_IDVerify the reassignment:
wp post list --post_author=NEW_USER_ID --post_type=post --fields=ID,post_title,post_statusWP-CLI operates within WordPress's own API layer, so all hooks, filters, and cache invalidation fire correctly — unlike raw SQL updates, which bypass WordPress entirely and can leave object caches stale.
Method 5: Direct Database Reassignment (Advanced)
Use this method only when WP-CLI is unavailable and you have direct database access. On a properly configured server, you would connect via mysql on the command line or through a tool like phpMyAdmin.
Via MySQL CLI:
UPDATE wp_posts
SET post_author = NEW_USER_ID
WHERE post_author = OLD_USER_ID
AND post_type = 'post'
AND post_status = 'publish';Critical warnings for direct SQL edits:
- Always back up your database before running UPDATE statements.
- Flush the WordPress object cache after the operation (
wp cache flushvia WP-CLI, or restart your caching layer). - If you use a persistent page cache (e.g., Redis, Memcached, or a caching plugin), cached pages will still show the old author until the cache expires or is purged.
- This method does not fire WordPress action hooks like
save_post, so plugins that react to author changes (SEO plugins, audit logs) will not be notified.
Comparison of Author Change Methods
| Method | Best For | Requires Server Access | Handles Large Volumes | Fires WP Hooks |
|---|---|---|---|---|
| Block Editor (GUI) | Single post, quick change | No | No | Yes |
| Classic Editor (GUI) | Single post, legacy setup | No | No | Yes |
| Bulk Edit (GUI) | Dozens of posts, no CLI access | No | Partial | Yes |
| WP-CLI | Mass reassignment, automation | Yes (SSH) | Yes | Yes |
| Direct SQL | Emergency, no WP access | Yes (DB access) | Yes | No |
SEO and Structured Data Implications
Reassigning a post's author has measurable SEO consequences that are frequently underestimated:
Author archive URLs change. If the original author's archive (/author/old-username/) was indexed and receiving traffic, those pages will lose the reassigned posts. If the old author account is being deleted, set up a 301 redirect from the old author archive to a relevant category or the new author's archive.
E-E-A-T signals shift. Google's quality evaluator guidelines place significant weight on the demonstrated expertise and authoritativeness of content creators. If the original author had an established byline, published bio, and external mentions, transferring their posts to a new account with no history can dilute perceived authority — particularly in YMYL (Your Money, Your Life) niches like health, finance, or legal content.
Schema markup must be audited. After bulk reassignment, run a structured data test on affected URLs to confirm that author.name and author.url in the JSON-LD output reflect the new user's profile data, not cached or stale values.
Canonical signals are unaffected. The canonical URL of a post does not change when the author changes, so there is no duplicate content risk from the reassignment itself.
Common Pitfalls and Edge Cases
The author dropdown is empty or missing a user.
This happens when the target user's role lacks edit_posts. Temporarily elevate the user to Author role, assign the post, then revert the role if needed.
Posts assigned to a deleted user show "Unknown" or a broken author link.
WordPress orphans posts when a user is deleted without reassignment. Fix this via WP-CLI:
wp post list --post_author=0 --format=ids | xargs wp post update --post_author=NEW_USER_IDA post_author value of 0 indicates an orphaned post with no valid user reference.
Multisite networks require per-site context.
On a WordPress Multisite installation, users must be members of the specific subsite to appear in that site's author dropdown. A network administrator account does not automatically appear as an available author on every subsite. Add the user to the subsite first via Users > Add Existing User.
Author changes on scheduled (future) posts.
Changing the author on a post with post_status = 'future' works identically to published posts. The new author will be credited when the post publishes.
Caching layers serving stale author data.
If your site uses a full-page cache — common on high-traffic sites hosted on VPS with cPanel or similar managed environments — purge the cache for affected URLs after reassignment. Otherwise, visitors will see the old author name until the cache entry expires.
Crediting Guest Contributors Correctly
When assigning authorship to a guest writer, the standard practice is:
- Create a new WordPress user account with the Author role.
- Complete their profile: display name, biographical info, and optionally a profile photo via Gravatar.
- Assign the post to their account.
- If the guest will not be submitting future content, you can downgrade their role to Subscriber after assignment — the post will retain their authorship, but they will lose the ability to create new posts.
This approach keeps your wp_users table clean and ensures that the author's bio box (if your theme displays one) shows accurate contributor information. It also means the guest's posts appear on their author archive, which can be a useful backlink for the contributor if you allow it.
For sites running structured editorial workflows with multiple contributors, pairing this with a well-configured Email Hosting setup ensures each contributor receives notifications, editorial feedback, and comment alerts through a professional address rather than a personal one.
Practical Decision Matrix
Use this checklist to select the right method before you start:
- Changing one post, using Gutenberg? Use the Post panel Author field in the block editor.
- Changing one post, using Classic Editor? Enable Author via Screen Options, use the meta box dropdown.
- Changing 2–50 posts, no server access? Use bulk edit with author filtering to isolate the correct posts first.
- Changing 50+ posts or automating the process? Use WP-CLI — it is faster, scriptable, and hook-safe.
- No WordPress access but have database access? Use a targeted SQL UPDATE, then flush all caches manually.
- Reassigning posts from a deleted user? Query for
post_author = 0via WP-CLI and reassign in one command. - On a multisite network? Confirm the target user is a member of the specific subsite before attempting reassignment.
- Concerned about SEO impact? Audit author archive redirects, flush structured data caches, and verify JSON-LD output post-reassignment.
FAQ
Can a Contributor be set as the author of a published post?
No. The author dropdown only lists users with the edit_posts capability. Contributors lack this capability by default. To credit a Contributor, either temporarily upgrade their role to Author, assign the post, then revert — or display their name in a custom field or author bio block without changing the system-level post_author field.
Does changing the author affect the post's publish date or URL?
No. The permalink and publish timestamp are stored independently of post_author. Reassigning authorship does not alter the post's URL structure or its position in chronological archives.
Will changing the author break my SEO rankings?
Not directly. The post URL, content, and inbound links remain unchanged. However, if your SEO plugin generates Person schema tied to the author, the structured data will update to reflect the new user. In E-E-A-T-sensitive niches, a byline change from a recognized expert to an unknown account can affect perceived quality during manual reviews.
How do I reassign posts when the original author's account has already been deleted?
Deleted user posts have post_author = 0 in the database. Use WP-CLI to identify and reassign them: wp post list --post_author=0 --format=ids followed by a bulk update command targeting the new user's ID.
Is there a way to display a guest author's name without creating a WordPress user account?
Yes. Plugins like Co-Authors Plus allow you to define "guest author" profiles — essentially custom post type entries — that can be linked to posts without requiring a wp_users entry. This is the preferred approach for high-volume publication sites that feature one-time contributors and want to avoid bloating the users table.
