Think Twice Before Using the Jetpack Photon Module

Note: this post is my opinion, which may differ from not only your own, but also many others. Many people feel strongly about Jetpack, Automattic’s Swiss Army Knife plugin. I think it’s got some great things going for it, but I have some concerns about the Jetpack Photon module.

I install Jetpack on quite a few client sites, because it’s got some great features, like Sharing and Publicize. I think those are pretty nifty, and use them myself. I also have a special place in my heart for the nifty Tiled Galleries, and have used those on multiple sites, too.

Jetpack by Automattic
One I’ve never used, at least knowingly, is Photon, and I’ll confess I had no idea what it was until last week. What is it?

Photon is an image acceleration and editing service for sites hosted on or on Jetpack-connected WordPress sites. That means less load on your host and faster images for your readers.

OK, that sounds pretty fancy, but what does it actually mean? My interpretation:

  • when you activate Photon, your site’s images, both old and new, are uploaded to a WordPress server. I don’t know if the old images are all uploaded as soon as you hit “activate”, as that could be significant depending on the site, or if they’re uploaded as they’re accessed.
  • when people visit your site, they’re seeing your images, but they’re actually being delivered from the WordPress servers.
  • this helps you because it reduces the load on your site’s resources, and the WordPress servers are, most likely, faster than your servers.
  • not part of what it actually does, but golly, it’s super easy to use because you do not have to do anything at all to make it work!

That all sounds great, so why am I telling you to think twice?

Well, first of all, you may not actually know you are using it. Historically, one of the frustrations with Jetpack is that when it’s activated, many of the modules are also activated without your input. Which is great, if you want those modules on, but if you don’t, then you have to go in and turn them off. Happily, Jetpack now allows you to deactivate modules in bulk, so you can turn everything off at once if you want to do so. And the Tiled Galleries and Photon both should not be activated by default, because they require that your site be connected first to, which makes sense, since using either one involves the WordPress servers.

Wait a minute. I thought that was Photon. Tiled Galleries use the WordPress servers?

Yes, they do:

It’s worth noting that images in tiled galleries require extra-special processing, so they will be served from’s CDN even if the Photon module is disabled (emphasis mine).

Note that if you’re not using Photon, only the images inside the galleries will be processed this way; images outside of the galleries won’t be, and presumably won’t be uploaded to the servers, either. But it’s worth noting that it’s using Photon even if you think you aren’t using Photon. And I’ll be honest: I think the Tiled Galleries are pretty magical.

But seriously, Robin, why does it even matter if my images are uploaded to Isn’t it worth it if I get the great benefits of having a faster site, and less load on my server? My hosting company will love me, right? And so will my users, so what’s the problem?

It’s All About Control

Think Twice Before Using the Jetpack Photon ModuleOne of the reasons I’m committed to the WordPress platform is because I want to hold onto my own content, both my words and my images. For a photographer, retaining [some] control over how my images are shared online is important. Many photographers put watermarks on their images as part of the control process. Choosy photographers think about what social networks they want to use for sharing photos. Smart photographers upload full size images only to the lab they use for printing. So, for me, the logical question is, what happens to the images which are uploaded to by the Tiled Galleries/Photon?

Apparently, they don’t go anywhere. The first limitation listed on the Photon Support page is:

No cache invalidations – currently the images are cached “forever”.

It means that once you activate Photon, and your images are uploaded to, they are there. You cannot edit or delete the images on Period. If you delete an image from your site, it is not deleted from (although this may be added in a future release). I browsed a lengthy support thread where people were submitting requests that their images be removed from the servers due to copyright or legal issues, which really concerned me. My conclusion is therefore that if I choose to use Photon, my images are no longer under my control.

Note: more digging shows that the Related Posts module also uses Photon, and the support page mentions that not only are your images uploaded to WordPress servers, but that all of your content is mirrored there as well.

User Recommendations

I’m not comfortable with this, so my recommendation is: Don’t use Photon. I still use Jetpack, and for right now, the places where I have tiled galleries in play, I’m not removing them, but I don’t think I’ll be using them in the future. A great alternative is the lovely Envira Gallery plugin (not an affiliate link), which can give you similar output as the tiled galleries, and is mobile responsive, so I’m using that on all new sites with galleries.

If you really need a CDN for your site, consider looking for another option, even if you have to pay for it. If you don’t know what a CDN is, maybe you don’t need it.

It’s also worth taking the time to learn how to upload properly sized images to your website. I have an iPhone 4S, and the file sizes from that camera tend to be 1-2MB, which is way too big for a website. If you’re using a newer phone (most of you), or an actual camera, your file sizes are almost certainly larger than that. If you take the time to generate smaller copies of your images, your website and your visitors will thank you.

Geeky Developer Recommendations

If you have a function in your theme or plugin which uses one of WordPress’s image functions, such as wp_get_attachment_image_src(), Erick Hitter has a tutorial for dealing with that. My experience with this method indicated that it needed to be modified slightly:

// do not include the opening php tag
// turn Photon off so we can get the correct image
$photon_removed = '';
if ( class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'photon' ) ) { // check that we are, in fact, using Photon in the first place
$photon_removed = remove_filter( 'image_downsize', array( Jetpack_Photon::instance(), 'filter_image_downsize' ) );
// do things with image functions
// turn Photon back on
if ( $photon_removed ) {
add_filter( 'image_downsize', array( Jetpack_Photon::instance(), 'filter_image_downsize' ), 10, 3 );
view raw photon.php hosted with ❤ by GitHub

The key here is that the original method does not verify that Photon is actually running on the site in question, and the final line (to turn it back on) actually enabled Photon on a site where I was running Jetpack, but not Photon–meaning I would be more or less enabling Photon on sites which may not have it activated in the first place, and the user would not see that from within the admin, which is not great. I think this is a safer method, even if you’re using it on your own site; if you’re using Photon today, you may decide not to tomorrow, and if you forget to remove this code, you may not actually be able to deactivate Photon.

Blah, Blah, Backstory

itwusnme.comLong story short, if you are using version 1.4.2 or earlier of Display Featured Image for Genesis and want to use Photon, they are not compatible because of how Photon works with WordPress image functions. However, version 1.4.3 does include support for Photon users. I’d like to especially thank Koji Nakamura for discovering and tracking down this issue!

If you have alternative plugins you like that offer similar functionality, I’d love to hear about them, too–feel free to share in the comments!

Reader Interactions


  1. Gary says

    Great article. Thanks Robin. I was pretty disappointed recently where I specifically deactivated Photon but the images were still being delivered via Photon (because of Tiled galleries). I love Jetpack but think that WordPress is ‘treading a fine line’ with allowing people to believe that they’ve disabled Photon but another part of JetPack then uses Photon anyway.

    • Robin says

      I think they could do a better job, maybe, of letting people know exactly what pieces of the puzzle use Photon, maybe in the admin. Although you can find it in their support docs on their site, I personally hadn’t gone there until I was writing this. But I think most of us aren’t aware of some of the ramifications of using Photon, either, so we don’t know that it even matters.

      Thank you for stopping by, Gary, and for leaving a comment!

  2. Sam Collett says

    There are also serious worries about the SEO value of images with JetPack. Other than trying it (risky), I was wondering if anyone else had the issue of google no longer indexing your images?

    • Robin says

      That’s an interesting one, Sam–haven’t heard that. I guess it would surprise me to know that this was happening, as many people use CDN or choose to host images offsite (say, flickr) to save bandwidth. It seems that if it’s having a negative effect with Jetpack, it would do the same for any of these services, wouldn’t it? This is just me making a rough guess, though, certainly no research on my end.

    • Adrian says

      I’ve experienced a significant decrease in search engine traffic in the first week since enabling it.
      No idea if this will bounce back or not. Not waiting any longer to find out. May try again in the winter time, but at the moment, this is my web site’s busy season, so we’re going back to status quo.

  3. DesignerEthan says

    Your images are still copied on to regardless if you use or have used jetpack.

    An example of your image from your latest post –

    Enabling photon just finds and replaces image urls with what it has already mirrored. You can even run photon without jetpack as example here –

    I can understand the need to protect copyrights however if images are already being copied over you might as well get the benefit of photon as a cdn.

    Just my two cents. I still want to research more into what gets copied, how and when.

    • Robin says

      Well, that’s fascinating, and a bit disturbing. I wonder if I’ve messed up a setting in my Jetpack that is allowing that, or is it happening automatically because I’m using some other features? Now I need to do some digging. Thanks for the heads up!

      I’ve also seen some concerns on Photon from an SEO perspective, since when you’re actively using it, the image sources are a different domain entirely, but that’s not something I know as much about.

      • DesignerEthan says

        I had an old site with literally 1 post, 2 random plugins and a custom theme. None of them related to jetpack.

        Added an image to the first blog post and viewed it on the frontend. The image loaded from my domain. Then viewed the image url and added in front of the domain. The image loaded from their cdn.

        It would seem then it has nothing to do with old settings or if you use certain parts of jetpack. All images get copied over regardless.

        In terms of SEO there are far more important SEO aspects like image name, size, alt tags etc in my opinion. As you said in another reply surely if it does impact SEO all CDN’s would be in the same boat, not just photon.

        Also where you might lose in SEO you might gain in a lower bounce rate as visitors aren’t waiting as long for images to load. Also google is taking site speed into consideration for its rankings.

      • Mv Rht says

        This in an old post, but just to clear up confusion:

        Images are only copied to WP’s Photon service when you a user views your website that loads an image that is set up to user JetPack Photon.

        Basically, enabling Photon just rewrites all image tag src attributes from to

        When your browser tries to load that image, WP realised it doesn’t have a copy, so goes to your website and gets it.

        This is why it looks like they have some of your images even after you disabled Photon. They actually didn’t until you tried that URL.

        This is also why you can use that custom Photon URL for sites that don’t even run WP.

  4. James Allen says

    I also just discovered a very frustrating issue with using Photon. Sporadically, images throughout my site would not display and only show the alt text. This would happen in posts, featured images, and galleries.

    Apparently, since the images are delivered via the server—you’ll notice the “” at the beginning of your image urls—if there’s an issue with the server, such as a glitch or cache problem, it won’t display your photos!

    I had to really research this issue before finding out that Photon was the cause; which like you said, was activated automatically with the Jetpack install. Anyway, the features of Photon sound great, but not if they don’t show the photos at all. For the longest time, my only workaround was removing the photos, then re-uploading them with a new name. Very frustrating! >.<

  5. Emily says

    I have turn it off for few days but some of my pictures still serve from server as i see… something. I not sure how long till every pictures serve from my host 🙁

    • Robin says

      Well, it could be a caching issue, if you are using a caching plugin. Or photon will still be enabled for related posts and tiled galleries, if you are using either of those modules. And it could be that if you are using any part of Jetpack that all images are copied over to “just in case”, maybe, as I have not ever used Photon here, and I don’t think I’ve used related posts or tiled galleries on my own site, but as Ethan mentioned above, my images can still be found on

      I love some of the other Jetpack features, but this doesn’t feel great to me–I may consider deactivating Jetpack completely and looking for other options for the pieces that I do use.

      • JPMarichal says

        Well, I had this issue in my site at . Everything went well with Photon, it was a delice, and one day I saw broken images at random through the site. I went to the source code and I discovered that the url of the images was beginning with where the x was a number (0, 1, 2). That’s the Photon way. I went to that URL and it says I have no access or something like that. A server problem. Result: broken image. The strange thing is that not all the Photoned images are broken. I pondered at it: Must I figure out how to fix this? In my opinion, no, it’s not my problem. I deactivated Photon, then (and this is the very important step) ran a sql query to replace all the urls with the right urls. If you’re not a sql guy or girl there are wordpress plugins to perform this kind of search/replace stuff, just backup your database before, please. It’s within the post_content field of the wp_posts table. After deleting the “” from your urls, everything goes normal and you’re free to look up for the next image optimization solution. That’s what I did.

        • Robin says

          That’s interesting that you had to replace the image URLs–Photon’s code uses the_content filter, so only the rendered output should be affected. The source in your posts should maintain the original URLs so that nothing breaks if Photon is deactivated. Since you’ve handled it yourself, I’m not sure there is anything they can do at this point, but you might report your experience to the Jetpack team, in case it’s not an isolated incident.

  6. Kristian Adolfsson says

    If all you want is Tiled Galleries (and stuff that don’t need to call back to “big brother”, eg. CSS) you can set
    define( ‘JETPACK_DEV_DEBUG’, true);
    in wp-config.php and images are NOT loaded from Photon.

  7. mark says

    I was hoping you would say don’t use photon because when you move your wordpress site to another server, the images will not be carried over because that’s what happens to me.

    I activated photon and all looks great until I thought of redesigning my site. I used duplicate plugin to move my website to my localhost. When I was sure that it’s already there and working with the images, I deleted my old website. When I reloaded my localhost (duplicated) website, the images are gone too.

    So in my experience, it wasn’t cached like what was said in this article.

    Is that a case to case basis? I don’t know but I agree with the heading of this article: don’t use Photon.

    • Robin says

      Oh no, Mark! How frustrating! My guess, without knowing what plugin you used to copy the site, is that it somehow didn’t update the paths/URLs for your images, and that they were still all actually coming from your original site–difficult to tell as long as both were up and functioning, since the images would load. I’m thinking it’s something which might have happened without Photon being in the mix, though. The way Photon works is that when you add images to your posts, the links are all still local to your site, but replaced with the Photon links on the actual output. So sorry that happened–super aggravating.

    • Robin says

      Thanks for sharing that, Matt–I’ll have to look into that, as I needed to disable Photon for a plugin and either didn’t find this, or tried it and was not able to make it work. My current solution requires quite a bit more fiddling.

  8. Einar says

    If you look at our site:, you see we have 3 featured items. If you adjust the size of your browser window, the picture size scales with the window. When Photon is enabled – this scaling does not happen. So even if you are comfortable using WP-servers, there are still reasons not to use Photon. I for one would have loved what Photon has to offer if only it worked.

    • Robin says

      I haven’t seen that one, but thank you for sharing it! The main site where I am using the tiled galleries actually uses several other Jetpack features, and I’m not as concerned about the photos on there as I might be for another site, so at least there, I’ll keep Jetpack on. This is good to know, and I’ll check it out. Thanks!

  9. Gaurav says

    Currently I am working on creating infographics for my website. Well that requires lot of work. Well I am concerned about SEO for my images. Creating infographics is a great way of traffic from “image searches” .
    I have never used Photon for my website.
    What’s your recommendation on this ?

    • Robin says

      In your case, I would probably not use Photon, and I might try Matt’s code to disable it elsewhere. Related Posts and Tiled Galleries use it, so if you don’t need them, keep them off. But this is getting outside of the realm of things I really know and into speculation, so all I can really do is guess.

  10. Ben says

    Could this photon feature also be generating extra URL’s?

    For example if a blog post has a bunch of images on it, I am getting new URL’s generated for each image – example: (just a random example)

    • Robin says

      That does not sound like anything I’ve encountered with Photon–the links it generates are usually … definitely wp, but recognizable as to the source. I’d try disabling Photon and see if that behavior is still happening.

  11. Erick Hitter says

    One point I want to clarify is that Photon doesn’t upload any of your content when it’s activated. Rather, Photon only retrieves an image from the host server when it’s requested via one of the URLs Photon uses (,, As a CDN goes, it uses an “origin pull” approach rather than “origin push.”

    This is noteworthy because images that aren’t referenced in post content, galleries, and other features/plugins that use Photon won’t end up cached by Photon.

    As a side note, both the code for the Jetpack Photon module ( and the server-side piece hosted by Automattic ( are open-source for anyone who’d like a further look.

    • Robin says

      This is interesting to me. I have not used Jetpack at all in several months. After reading your comment, I tried pulling one of my recent images (post Jetpack) using one of the Photon URLs you’ve listed here. Sure enough, it came right up, even though I’m not using Jetpack at all. I guess this is in line with Bart’s comment and example–basically, it seems like one can actually upload any image to the WP/Photon CDN, simply by telling it to look for an image? That makes me feel a bit uncomfortable.

      • Erick Hitter says

        Correct–as long as an image is publicly accessible, it can be loaded through Photon. This behaviour isn’t unique to Photon, though. The same image that Photon can retrieve could also be embedded in another website (known as hotlinking). Photon is really just one of many ways an image can be accessed from outside of the site that hosts it.

        If a site puts measures in place to prevent hotlinking (allowing the image to be loaded only on the site it was added to, for example), Photon will obey those restrictions. A simple Google search for “hotlinking prevention” provides myriad approaches to this issue.

  12. daretoeatapeach says

    Vaguely related: I reinstalled my blog recently, and therefore had to import all my old images via FTP. To get them into the database (read: WP Media Library) I had to find a plugin for this.

    I found one called Media From FTP, which was working just fine, until I turned on Jetpack. I have a hunch that it was Photon that caused the plugin to stop working.

    I’ve contacted the plugin maker, but I’m basically freaking out now. My site has been down for a week and I have no way to get my images back into the library, even though they are all there and even showing up in the posts. But I hate to “relaunch” my site with a bunch of broken image links for the thumbnails on the homepage.

    So this is something to maybe consider with Photon…if you just reinstalled, wait to turn on Jetpack until you have your images back! I don’t know what I’m going to do!

    • Robin says

      The way WordPress retrieves images in your content is by the actual URL/path, whereas the way it does so for something like thumbnails on an archive page is generally by ID. My guess is that your posts are all fine because the URLs haven’t changed, but because you used a plugin to add them to the media library, essentially from scratch, the unique ID which WordPress assigns to each image has changed, because your database is now different. I think you can test this by going to an affected post and selecting your featured image again–since it’s in the media library, you shouldn’t have to upload it, just select it–and then update the post with the new featured image; then see if the image for that post shows on the home/archive page. If it does, that’s all it is, so you’ll be able to fix it by updating the featured image for every post–which I know is tedious, but it’s manageable. That would be my guess of what to try, though.

  13. Kok Wai says

    Thank you Robin.

    I had this Photon on (by default) on all my wordpres sites, including my clients.
    Just got a word that a certain CDN (they suspect Akamai) is messing up with their payment gateway.

    I have no idea how that actually happens and why it does. We didnt subscribe to Akamai but seems that Photon may be the culprit?

    Shall deactivate it now and hopefully it can help resolve it.

  14. PorfySoft says

    great topic but is there any issue when we move our site to another server ?
    I mean if we are using photon

    thank you.

    • Robin says

      This is not something I know for sure, but I think the Photon URLs are related to the original site URL, not the server itself. So, my guess is that moving from one server to another, without a URL change, would not affect Photon working. But that’s just a guess on my end.

  15. Marcus "MajorLinux" Summers says

    Thank you for the heads up with this. I feel like my site is moving fast enough to host the images on their own and using WordPress and Jetpack as man-in-the-middle for these photos was actually hurting the site instead of helping.

    Thank you for letting me know what caused it and how to fix it!

  16. Leonard Gow says


    This Photon module seems to be the source of a copyright problem I am having. My web host deleted the offending image off the server but now it seems it may be in the Photon cache. I have never (and still have not) activated Photon in Jetpack so not sure why the image would be there.

    Is there a non-geeky way I can empty the Jetpack Photon module?


  17. Ryan Mendenhall says

    Love how you see under the hood in this article Robin. Tell me, do you know if there’s a way to download your images that Photon servers are keeping? I lost a site recently and when we put it back up all the images were missing. Apparently the backup didn’t save the images that were being stored there? Ever heard of that happening?

    • Robin says

      If the images are completely missing from your media folder altogether, that’s a tough one from which to recover if you have no backups of your media. If the images are in the folder but show as missing in WordPress, it’s likely that when you recovered the site, the image IDs were changed, so they were disconnected. It’s possible, I suppose, to get the images from the WordPress servers, but pretty unlikely as I believe you have to know the exact path of the images.

      • zeff says

        Hi robin, i think that there may be a chance that if Ryan have linked his blog with the id then he can check there in media folder under my site, may be it’s there and can be retrieved.

  18. Andy says

    I too have just noticed a serious problem using Photon. Someone contacted me saying all my images were showing as not found. I was puzzled because everything worked fin for me,. My sites were all displaying perfectly in multiple devices and browsers. But they sent me a screen shot showing all the errors and they were all images not found at urls beginning with

    I am going to disable the feature in Jetpack and serve the images fro my own server. I’ve recently installed a proper caching plugin anyway. (don’t know if it’s related or not).

  19. Sulfen says

    That’s actually a good consideration. I didn’t realize that you could lose control to your content by using that feature.

  20. Mike Cowburn says

    Hi Robin,
    I was just about to try Photon as a CDN on a client’s site and came across your post. I’m really glad I didn’t becuase I didn’t realise that WordPress do not delete the images from their servers. Thanks for this content, it is appreciated 🙂

  21. Patrick says

    I just ran into the no-cache-invalidation issue on my personal site, and I think that’s going to be enough for me to turn off Photon. Thanks for this post; I wouldn’t have guessed that Photon’s used for tiled galleries and related posts(!) too.

  22. Anh Tran says

    If we use images and galleries just for normal purposes, like demonstration in blog posts, using Jetpack Photon is still worth that. I’m still using it on most of my websites where the images are not taken by me (I use free resources such as unsplash and pixabay).

  23. Bobby says

    This is very informative article, thank you so much for writing this interesting post about the Jetpack’s Photon CDN service, and the things you have shared about it, i am totally agree with your points. From the beginning i have been avoiding this service to be activated on my WordPress projects.

  24. Glen Woodfin says

    My biggest gripe about using Photon as a free CDN is that it dramatically reduces the resolution of crystal clear photos, so they appear blurry.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.