• Skip to content
  • Skip to primary sidebar
  • Skip to footer

Foliovision

Main navigation

  • Weblog
    • FV Player
    • WordPress
    • Video of the Week
    • Case Studies
    • Business
  • About
    • Testimonials
    • Meet the Team
    • We Support
    • Careers
    • Contact
    • Pricing
  • Products
  • Support
    • FV Player Docs
    • Pro Support
  • Login
  • Basket is empty

FV Gravatar Cache

Need an issue solved right now? Pro support available for all our plugins.

Gravatar stands for Globally Recognized Avatar and it’s a nice piece of technology which allows site visitors to maintain a bit of personality across the internet by putting on the same avatar to the comments on all the sites which have Gravatars enabled. Gravatars are an Automattic property but Automattic for the moment are administering the Gravatar site as non-commercial, allowing WordPress and other sites to use them.

We highly recommend using Gravatars on most WordPress site.

There’s one problem with Gravatars. They are very slow to load. Each page with comments on them makes one call per comment to the Gravatar server. While a single call takes only a 100ms, on a page with hundreds of comments, we are talking about major slowdowns. Page loads can take 20 seconds and more.

fv gravatar cache options
FV Gravatar Cache Options

Here’s what a standard Gravatar URL looks like:

http://www.gravatar.com/avatar/a2b3aae02c752c001ccba49f41b50a08?s=36&d=%3Cpath_to_url%3E&r=R

As at Foliovision we run many sites with high comment levels we needed to find a solution to these slowdowns. Our solution: cache all the gravatars locally.

After installing FV Gravatar Cache, that 20 second page load for a page with a hundred fifty comments should be down to about 5 seconds.

Keep in mind that if you already have a lot of comments on your site it can take between five hours and two days for FV Gravatar to cached all the existing comment gravatars. Any new gravatars will be cached instantly with comment save.

More Technical: How this plugin works

  • Caches non-cached and updates cached gravatars in 5 minute intervals.

    In each interval 25 gravatars are processed. That means in one hour 300 gravatars are updated. So if your site has 3000 unique comment authors, all the gravatars are updated every 10 hours.

  • Caches gravatars on comment submission

    This makes sure new site visitors get they properly cached gravatars right away.

  • You need to specify the desired size of the gravatars

    The default WordPress value is 96, but this is a matter of your templates. It’s best to check out the original gravatar size in your browser first.

  • If no gravatar for email address is found, the default gravatar is used

    This is good, because normally WordPress has no idea if there is any gravatar for some email address, so you end up with loading the same default gravatar for each user with no gravatar over and over again. That slows down your page loads.

Plugin requirements

WordPress version above 2.7. Compatible up to 3.0.1.

Download

Download from WordPress plugins – FV Gravatar Cache.

Reader Interactions

Comments

  1. sOliver 6 November 2010 at 10:36 pm

    Thanks a lot. I will add this to my list of “must-have” wordpress plugins!It will speed up my site quite a bit.

    I was surprised to see that even the default gravatar is loaded directly from gravatar.com, what a nonsense!

    I am wondering why they do not store the gravatars as image files (instead it’s something like 00c88182ec23fe1da17b92d33de65618)

    How am I supposed to add an expiry date as recommended by Google to the files then?

  2. sOliver 6 November 2010 at 11:43 pm

    Ok, looks like all non-gravatars avatars are now broken, I get 404 links.

    All users without gravatar (filesize 13 byte) have 404 avatars, but people who actually use gravatars are working just fine.

    So.. it must be a problem with the “default” avatars that are created. How do you create/cache those?

  3. sOliver 7 November 2010 at 1:13 am

    The problem might be this: // check if gravatar exists $headers = @get_headers( $out ); if( stripos( $headers[0], '404' ) !== FALSE ) { return $this->GetCacheURL()."default.png"; }

    My default (empty) gravatars are all loaded from gravatar.com and your plugin creates files for them. Then your plugin checks for a 404, but the file exists (13 byte).

    When I access the file directly it says “404 File does not exist” thou.

    Ok this doesn’t make any sense, I need a nap now will try to look into it tomorrow.

  4. Avatar photoalec 7 November 2010 at 5:58 am

    Thanks for the feedback Oliver. We use FV Gravatar Cache on a lot of our busy sites, so we’d like to keep it running smoothly. FV Gravatar Cache does speed load times considerably.

    If you find the issue tomorrow, let us know and we’ll update the code right away.

  5. sOliver 7 November 2010 at 12:07 pm

    I have tried it on two different servers now and on one it works properly so it won’t actually create empty gravatar files for people without gravatars.

    On the other it creates a gravatar (empty 13 bytes file) for all comments for some reason.

    I suppose it’s because I disabled fopen on one server and it checks via fopen if it’s a default avatar (compare line 437)

    Since fopen is a major security risk I would have to rewrite this check.

  6. Avatar photoalec 7 November 2010 at 12:20 pm

    Thanks for isolating that issue Oliver.

    With what would you suggest we replace fopen for our gravatar checks?

  7. Avatar photoMartin 8 November 2010 at 9:35 am

    Hi Oliver,

    My default (empty) gravatars are all loaded from gravatar.com and your plugin creates files for them. Then your plugin checks for a 404, but the file exists (13 byte).

    I’m sending you a tweaked main PHP file of the plugin. Can you test it to see if it solves the problem?

    I basically added another check for the 404. But I’m not sure if it will solve your problem. Can you provide the email address of some comment which has this bad 404 13B gravatar so I can see it? Or send me one of these 13B files?

    I have tried it on two different servers now and on one it works properly so it won’t actually create empty gravatar files for people without gravatars. On the other it creates a gravatar (empty 13 bytes file) for all comments for some reason.

    I suppose it’s because I disabled fopen on one server and it checks via fopen if it’s a default avatar (compare line 437) Since fopen is a major security risk I would have to rewrite this check.

    That’s a different part of code and has nothing to do with the default gravatars. But if you disabled the fopen function, that might be the reason why none of the gravatars are cached properly. The files are probably containing only some warning instead of the content. Can you check it out?

    Anyway, fopen is a standard function and is required to write the cached gravatar files. The more dangerous function is the remote fopen, but we are not using that. Have you any suggestion what we should be using instead of fopen and fwrite to write the cached files?

    Can you check if there are any warnings on plugin settings page? It should be wp-admin/options-general.php?page=fv-gravatar-cache on your site. It checks if the directory is writable. If you disabled just the writing permissions, it should display a warning.

    If you just disabled the fopen and fwrite functions, the plugin just can’t work, unless there is any other safer function which you think is better and we could use it.

    Thanks, Martin

  8. Avatar photosOliver 8 November 2010 at 12:00 pm

    Hi Martin,

    It’ working! At first it was stuck processing the very first gravatars and did not run the SQL Update to default.png. After cleaning out the cache folder including the log file, it’s now working just fine (maybe add this to readme.txt for troubleshooting)

    I suppose this did the trick: stripos( $gravatar, ‘404 File does not exist’ ).. when I accessed one of the empty gravatars this was exactly what I received as a message.

    I’m not that good at programming, but I think there are some alternatives to fwrite and fopen: fwrite alternative: file_put_contents() fopen alternative: file_get_contents() possibly even curl (more resource hungry thou) I disabled fopen in my php.ini, I am wondering why it’s working… will double-check that.

    Thank you for taking the time to fix this plugin so quickly, I will certainly look into your other plugins and consider a donation. Oliver

  9. Avatar photoalec 8 November 2010 at 12:02 pm

    Hi Oliver,

    You’re welcome.

    A donation would be much appreciated.

    Thanks for taking the time to write to us about this issue and look into it with us.

    Making the web work for you, Alec

  10. Martin 9 November 2010 at 1:49 am

    Hello Oliver,

    thank you for the bug report, now the new version is released on Wordpress.org.

    Regards, Martin

  11. Avatar photoTim Luimes 8 March 2011 at 9:35 am

    I’ve noticed that when I display an image and the containers height and width are set to auto, it ignores the width and height settings within the img html element. So the image is always my default fv_gravatar_cache size. When I disable the cache plugin, the items follow the img elements settings again.

    I’ve disabled the auto width and height in my template, however there’s an auto width and height used in the new WP admin bar which causes the image size to be displayed in it’s wp_gravatar_cache setting size.

    If you could help out, it would be appreciated.

  12. Martin 8 March 2011 at 10:08 am

    Hello Tim,

    we actually released a new version which is fixing this issue few minutes ago.

    Please upgrade and let us know how it works for you.

    Thanks, Martin

  13. Djoh 9 March 2011 at 12:41 pm

    Hi Martin, The update broke the blank avatar for me – even the settings page show a broken link to the picture. I get

    When I display the cached picture, I get for those without gravatar.

    Thanks in advance !

  14. Martin 10 March 2011 at 1:21 pm

    Hello Djoh,

    please try to resave the options.

    Also check if your .htaccess is not restricting access to your cache directory. We just discovered that it can (of course) cause issues, so we will cover that in FAQ soon.

    Thanks, Martin

Primary Sidebar

FV Gravatar Cache

  1. Changelog of the FV Gravatar Cache plugin for WordPress.
  2. FV Gravatar Cache FAQ
  3. FV Gravatar Cache Installation

Footer

Our Plugins

  • FV WordPress Flowplayer
  • FV Thoughtful Comments
  • FV Simpler SEO
  • FV Antispam
  • FV Gravatar Cache
  • FV Testimonials

Free Tools

  • Pandoc Online
  • Article spinner
  • WordPress Password Finder
  • Delete LinkedIn Account
  • Responsive Design Calculator
Foliovision logo
All materials © 2025 Foliovision s.r.o. | Panská 12 - 81101 Bratislava - Slovakia | info@foliovision.com
  • This Site Uses Cookies
  • Privacy Policy
  • Terms of Service
  • Site Map
  • Contact
  • Tel. ‭+421 2/5292 0086‬

We are using cookies to give you the best experience on our website.

You can find out more about which cookies we are using or switch them off in .

Powered by  GDPR Cookie Compliance
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Necessary Cookies

Strictly Necessary Cookie allow you to log in and download your software or post to forums.

We use the WordPress login cookie and the session cookie.

If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.

Support Cookies

Foliovision.com uses self-hosted Rocket.chat and self-hosted Freescout support desk to provide support for FV Player users. These cookies allow our visitors to chat with us and/or submit support tickets.

We are delighted to recommend self-hosted Rocket.chat and especially Freescout to other privacy-conscious independent publishers who would prefer to self-host support.

Please enable Strictly Necessary Cookies first so that we can save your preferences!

3rd Party Cookies

This website uses Google Analytics and Statcounter to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.

We reluctantly use Google Analytics as it helps us to test FV Player against popular Google Analytics features. Feel free to turn off these cookies if they make you feel uncomfortable.

Statcounter is an independent Irish stats service which we have been using since the beginning of recorded time, sixteen years ago.

Please enable Strictly Necessary Cookies first so that we can save your preferences!