WordPress uses Gravatar for profile pictures by default, but you can keep the image on your own site instead. The simplest route is a current local-avatar plugin.
This guide shows how to upload a WordPress profile picture without Gravatar and make sure the correct author’s image appears on posts.
The plugin step takes only a few minutes. Displaying the image depends on whether your site uses a classic theme or a block theme, so both paths are covered below.

Quick answer: Install Simple Local Avatars, edit the relevant user, choose an image in the new Avatar section, and save the profile. Then enable the author avatar in your theme’s post settings or in the Post Author block.
Why WordPress sends you to Gravatar
Open Users → Profile in an unmodified WordPress installation and the Profile Picture section shows the Gravatar associated with your account email. WordPress’s own profile documentation still directs users to Gravatar to change that image.[1]
That setup is convenient if you want one identity to follow the same email address across different sites. A local avatar is better when you want the image stored in your WordPress media library, do not want to create a separate Gravatar account, or need a different picture on one site.
| Option | Where the image lives | Best fit |
|---|---|---|
| Gravatar | Gravatar’s service, linked to an email address | You want the same identity across compatible sites |
| Local avatar | Your WordPress uploads directory | You want site-specific control without a Gravatar account |
A local avatar does not automatically disable every Gravatar on the site. It replaces the image for a user who has a local upload. Whether Gravatar remains available as a fallback for other users and commenters is a separate setting.
How to change your WordPress profile picture without Gravatar
This update uses Simple Local Avatars. Its WordPress.org listing marks its support level as stable, says it stores avatars in the normal uploads folder, and explains that it can keep Gravatar as a fallback or turn it off.[2]
- Go to Plugins → Add New Plugin.
- Search for Simple Local Avatars, then click Install Now and Activate.
- Open Users → Profile for your own account, or Users → All Users → Edit for another account you are allowed to manage.
- Scroll to Avatar and click Choose from Media Library.
- Upload or select a square image, crop it if needed, and confirm your selection.
- Choose the appropriate rating and click Update Profile or Update User.


What size should the avatar image be?
Start with a square image because most themes crop avatars into a square or circle. The current media picker suggests 200 by 200 pixels. A larger square source is also fine because the plugin generates the sizes WordPress requests, but compress the file before uploading it.
Keep the face or logo away from the outer edges. A circular crop can remove the corners even when the uploaded file is square.
How to show the profile picture on posts
Uploading the image and displaying it are separate jobs. The plugin makes the local avatar available through WordPress, while your theme decides whether an author image appears in the post layout.
Classic theme method
Classic themes usually put author controls in the Customizer or in a theme-specific settings panel. Look under Appearance → Customize, then check the single-post or post-meta settings for an author-avatar option.
Neve, which comes from the same team as WPShout, provides a clear classic-theme example. In Neve, open Layout → Single Post, make the Author item visible under Post Meta, and turn on Show Author Avatar. Other themes may use different labels.

Publish the Customizer change, then open a post written by that user and confirm the image appears in the intended location.

Block theme method
With a block theme, go to Appearance → Editor → Design → Templates and edit the template used for single posts. Select or add the Post Author block, open its settings, and enable the avatar. WordPress documents the Post Author block as supporting the author’s avatar, bio, byline, and author-page link.[4]

You can also add a separate Avatar block. In a reusable single-post template, leave its User setting empty so WordPress uses the current post author. Assign a specific user only when you intentionally want the same person shown everywhere the block appears.[5]
Important: Do not assign your own account to an Avatar block inside a general Single template. That can make every post using the template show your picture instead of its actual author’s picture.
Local avatars, Gravatar fallback, and comment avatars
Go to Settings → Discussion to review the site’s avatar controls. WordPress uses Gravatar by default for comment avatars, but plugins can override that behavior, and the Show Avatars option controls whether comment avatars are displayed.[3]
- One user needs a local image: upload it in that user’s profile and leave fallback behavior alone.
- You want local images but still accept Gravatar: keep Gravatar fallback enabled in the plugin settings.
- You want no Gravatar requests: use the plugin’s Gravatar-disable option, then test logged-in users, post bylines, author archives, and comments.
Those choices affect different parts of the site. Turning off comment avatars is not the same as adding a local author image, and adding one local image is not the same as disabling Gravatar for everyone.
Troubleshooting a WordPress profile picture
| Problem | What to check |
|---|---|
| The image saved but does not appear on posts | Enable the author avatar in the theme or template and confirm the post is assigned to the edited user. |
| The old image still appears | Clear page, object, CDN, and browser caches, then reload the user profile and a post. |
| Every post shows the same person | Remove the fixed User selection from the Avatar block in the Single template, or use Post Author instead. |
| Comment avatars are missing | Check Settings → Discussion → Show Avatars and review the plugin’s Gravatar fallback setting. |
| A subscriber cannot upload an image | Review the local-avatar permission option under Discussion settings and the user’s media capabilities. |
| The image looks awkward when circular | Upload a square source with extra space around the face or logo, then crop it again. |
What about Basic User Avatars?
An earlier version of this guide recommended Basic User Avatars. It can still provide local uploads and a front-end shortcode, but WordPress.org currently warns that it has not been tested with the latest three major WordPress releases and may have compatibility issues.[6] That is why Simple Local Avatars is now the main walkthrough.
If your site already uses Basic User Avatars, do not switch blindly. Back up the site, test the replacement on staging, and verify existing user images before removing the old plugin.
WPShout has been delivering weekly tutorials, reviews, and deep dives for WordPress developers and business owners since 2009. To maintain our independence and continue creating high-quality content, we increasingly rely on donations from our community.
Donate today to support independent technical publishing.
Final thoughts
A local-avatar plugin solves the part WordPress does not include in its default profile screen: uploading a site-specific profile picture. The remaining step is to let the active theme or post template display the correct author’s image.
Use Simple Local Avatars for the upload, Post Author for a dynamic block-theme byline, and the theme’s author setting for a classic layout. That combination avoids Gravatar without accidentally showing one person’s photo on every post.
References
…
Don’t forget to join our crash course on speeding up your WordPress site. Learn more below:
How to Speed Up Your WordPress Site
With some simple fixes, you can reduce your loading times by even 50-80% 🚀
By entering your email above, you're subscribing to our weekly newsletter. You can change your mind at any time. We respect your inbox and privacy.


Thanks for the Gravatar loop. What a horrible thingie.
No problem. I definitely feel you and glad I could help.
Thanks – horrible experience with Gravatar
Happy I could avoid using that stupid thing!
This has been very helpful. Thank you.
Yes thanks!
Is there any way to escape the use of plugins to achieve this?
Hi
Thanks for that. Unfortunately, the plugin do not support retina image for Avatar. It’s too blurry for me.
Hi, you say you’re using this plugin for your avatar… but in the comments section, no profile image is showing? Do you no longer use this plugin?
Cheers,
John
Thank you so much 🙂
I know how its feels while changing photo with gravatar.
This helps me a lot
Thanks for the post!
Just FYI: suggested plugin does not work with Elementor. However, you can set a custom author directly in Elementor, but this is for all posts, so not perfect either.
Great post. What would also be helpful would be to find out how to change the Gravatar picture.
I was recently added as a guest user to a friend’s website and discovered I already had a Gravatar icon image of myself already assigned to my account. However it’s not an image I want to use and I don’t remember setting this up. What I can’t figure out is how to change this Gravatar image. If you could write a post telling us how to do this, that would be helpful. A search on Google was not yielding me results on how to do this.