{"id":161862,"date":"2022-09-05T23:24:52","date_gmt":"2022-09-05T23:24:52","guid":{"rendered":"https:\/\/en-au.wordpress.org\/plugins\/cf-images\/"},"modified":"2026-03-17T20:27:32","modified_gmt":"2026-03-17T20:27:32","slug":"cf-images","status":"publish","type":"plugin","link":"https:\/\/hsb.wordpress.org\/plugins\/cf-images\/","author":14695490,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.10.1","stable_tag":"1.10.1","tested":"7.0","requires":"5.6","requires_php":"7.0","requires_plugins":null,"header_name":"Offload Media to Cloudflare Images","header_author":"Anton Vanyukov","header_description":"Offload media library images to the `Cloudflare Images` service.","assets_banners_color":"f9f9f9","last_updated":"2026-03-17 20:27:32","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/donate\/?business=JRR6QPRGTZ46N&no_recurring=0&item_name=Help+support+the+development+of+the+Cloudflare+Images+plugin+for+WordPress&currency_code=AUD","header_plugin_uri":"https:\/\/vcore.au","header_author_uri":"https:\/\/vcore.au","rating":4.9,"author_block_rating":0,"active_installs":1000,"downloads":38527,"num_ratings":34,"support_threads":10,"support_threads_resolved":3,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"vanyukov","date":"2022-09-05 23:24:30"},"1.0.3":{"tag":"1.0.3","author":"vanyukov","date":"2022-09-05 23:32:52"},"1.1.0":{"tag":"1.1.0","author":"vanyukov","date":"2022-09-09 02:32:38"},"1.1.1":{"tag":"1.1.1","author":"vanyukov","date":"2022-10-24 08:25:39"},"1.1.2":{"tag":"1.1.2","author":"vanyukov","date":"2022-11-18 22:47:54"},"1.1.3":{"tag":"1.1.3","author":"vanyukov","date":"2023-01-29 04:38:40"},"1.1.4":{"tag":"1.1.4","author":"vanyukov","date":"2023-01-29 05:05:33"},"1.1.5":{"tag":"1.1.5","author":"vanyukov","date":"2023-02-28 09:14:01"},"1.1.5-beta.1":{"tag":"1.1.5-beta.1","author":"vanyukov","date":"2023-02-04 07:29:04"},"1.10.0":{"tag":"1.10.0","author":"vanyukov","date":"2026-03-17 03:38:15"},"1.10.1":{"tag":"1.10.1","author":"vanyukov","date":"2026-03-17 20:27:32"},"1.2.0":{"tag":"1.2.0","author":"vanyukov","date":"2023-03-29 03:13:24"},"1.3.0":{"tag":"1.3.0","author":"vanyukov","date":"2023-06-24 04:35:12"},"1.4.0":{"tag":"1.4.0","author":"vanyukov","date":"2023-08-09 03:08:49"},"1.4.1":{"tag":"1.4.1","author":"vanyukov","date":"2023-08-21 09:47:50"},"1.5.0":{"tag":"1.5.0","author":"vanyukov","date":"2023-10-27 07:34:44"},"1.5.1":{"tag":"1.5.1","author":"vanyukov","date":"2023-10-27 20:42:30"},"1.6.0":{"tag":"1.6.0","author":"vanyukov","date":"2023-11-12 07:36:29"},"1.7.0":{"tag":"1.7.0","author":"vanyukov","date":"2023-12-03 05:25:05"},"1.7.1":{"tag":"1.7.1","author":"vanyukov","date":"2023-12-30 23:35:36"},"1.8.0":{"tag":"1.8.0","author":"vanyukov","date":"2024-02-16 08:38:11"},"1.9.0":{"tag":"1.9.0","author":"vanyukov","date":"2024-03-22 10:05:52"},"1.9.1":{"tag":"1.9.1","author":"vanyukov","date":"2024-04-23 07:35:22"},"1.9.2":{"tag":"1.9.2","author":"vanyukov","date":"2024-07-16 20:37:36"},"1.9.3":{"tag":"1.9.3","author":"vanyukov","date":"2024-10-07 05:58:13"},"1.9.4":{"tag":"1.9.4","author":"vanyukov","date":"2024-12-13 22:37:20"},"1.9.5":{"tag":"1.9.5","author":"vanyukov","date":"2025-07-05 23:06:02"},"1.9.6":{"tag":"1.9.6","author":"vanyukov","date":"2025-11-11 23:49:47"},"1.9.7":{"tag":"1.9.7","author":"vanyukov","date":"2025-12-30 23:20:28"},"1.9.8":{"tag":"1.9.8","author":"vanyukov","date":"2025-12-30 23:37:50"}},"upgrade_notice":{"1.7.0":"<p>EOY update. Bunny CDN integration, custom URLs and stats with Cloudflare workers and much more.<\/p>","1.5.0":"<p>Huge update with lots of improvements and new features, new UI and image compression module.<\/p>"},"ratings":{"1":0,"2":1,"3":0,"4":1,"5":32},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2930278,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2930278,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2994626,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2994626,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3485078,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/plugins.php\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"cf-images\"}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.5-beta.1","1.10.0","1.10.1","1.2.0","1.3.0","1.4.0","1.4.1","1.5.0","1.5.1","1.6.0","1.7.0","1.7.1","1.8.0","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5","1.9.6","1.9.7","1.9.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2994626,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2994626,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2994626,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Plugin options and settings","2":"Plugin AI modules","3":"Quick and easy setup wizard"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3863,213581,3868,217079,1452],"plugin_category":[50,59],"plugin_contributors":[85575],"plugin_business_model":[],"class_list":["post-161862","plugin","type-plugin","status-publish","hentry","plugin_tags-cdn","plugin_tags-cloudflare-images","plugin_tags-compress","plugin_tags-image-ai","plugin_tags-optimize","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-vanyukov","plugin_committers-vanyukov"],"banners":{"banner":"https:\/\/ps.w.org\/cf-images\/assets\/banner-772x250.png?rev=2994626","banner_2x":"https:\/\/ps.w.org\/cf-images\/assets\/banner-1544x500.png?rev=2994626","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cf-images\/assets\/icon-128x128.png?rev=2930278","icon_2x":"https:\/\/ps.w.org\/cf-images\/assets\/icon-256x256.png?rev=2930278","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cf-images\/assets\/screenshot-1.png?rev=2994626","caption":"Plugin options and settings"},{"src":"https:\/\/ps.w.org\/cf-images\/assets\/screenshot-2.png?rev=2994626","caption":"Plugin AI modules"},{"src":"https:\/\/ps.w.org\/cf-images\/assets\/screenshot-3.png?rev=2994626","caption":"Quick and easy setup wizard"}],"raw_content":"<!--section=description-->\n<p>Offload your media library to Cloudflare Images and let it handle everything for you - store, resize, optimize and deliver images in the best possible format to your users.<\/p>\n\n<h4>Why Overpay for CDN Plugins?<\/h4>\n\n<p>With the avalanche of expensive plugins out there, it's time to switch to a smarter choice. Why should you pay more for something that deserves to be free?<\/p>\n\n<h4>Simplify Your Image Management<\/h4>\n\n<p>Offload your media library to Cloudflare Images! Let our plugin take charge:<\/p>\n\n<ul>\n<li>Store your images securely;<\/li>\n<li>Resize images to perfection without any manual hassle;<\/li>\n<li>Optimize them to ensure they load blazingly fast;<\/li>\n<li>Deliver in the most user-friendly format, ensuring satisfaction at every user's end.<\/li>\n<\/ul>\n\n<h4>But wait, there's more!<\/h4>\n\n<p>Image CDN - deliver images from a global network of servers.\nImage AI - tag, caption and generate new images using AI.\nCompression - optimize JPEG\/PNG images to decrease file size without compromising visual quality.<\/p>\n\n<h4>A Developer's Promise<\/h4>\n\n<p>Born from personal need, this plugin represents a developer's dedication to the community. While it's still a work in progress, remember \u2013 it's crafted with real user needs in mind, not profit.<\/p>\n\n<h4>Your Feedback Makes Us Better<\/h4>\n\n<p>Found a hiccup? Yearning for a feature? Just shoot us a support request. Our commitment is to continually evolve to serve you better. Your wish is our command!<\/p>\n\n<h4>Disclaimer<\/h4>\n\n<p>Cloudflare, the Cloudflare logo, and Cloudflare Workers are trademarks and\/or registered trademarks of Cloudflare, Inc. in the United States and other jurisdictions.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Follow the instructions in the setup wizard through the 'Media - Offload Settings' menu in WordPress<\/li>\n<li>Enjoy<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20this%20work%3F\"><h3>How does this work?<\/h3><\/dt>\n<dd><p>The plugin will use the Cloudflare Images service to host all supported images and serve them with the best possible settings to the user.<\/p><\/dd>\n<dt id=\"is%20this%20free%3F\"><h3>Is this free?<\/h3><\/dt>\n<dd><p>Yes, the plugin is 100% free. A Cloudflare account with activated Cloudflare Images option is required.\nCloudflare may charge a fee for the use of this feature, depending on the plan used.<\/p><\/dd>\n<dt id=\"what%20are%20the%20supported%20image%20formats%3F\"><h3>What are the supported image formats?<\/h3><\/dt>\n<dd><p>You can upload the following image formats to Cloudflare Images:\n* PNG\n* GIF\n* JPEG\n* WebP<\/p><\/dd>\n<dt id=\"are%20there%20any%20other%20limitations%3F\"><h3>Are there any other limitations?<\/h3><\/dt>\n<dd><p>These are the maximum allowed sizes and dimensions Cloudflare Images supports:<\/p>\n\n<ul>\n<li>Images' height and width are limited to 10,000 pixels.<\/li>\n<li>Image metadata is limited to 1024 bytes.<\/li>\n<li>Images have a 10 megabyte (MB) size limit.<\/li>\n<li>Animated GIFs, including all frames, are limited to 100 megapixels (MP).<\/li>\n<\/ul><\/dd>\n<dt id=\"why%20are%20not%20all%20images%20being%20replaced%20in%20content%3F\"><h3>Why are not all images being replaced in content?<\/h3><\/dt>\n<dd><p>By default, the plugin relies on WordPress core functions to process images.\nSome themes and plugins can implement their own image processing functions, which can prevent the plugin from replacing the image URLs in content. If you are experiencing this, try to enable the <code>Parse page for images<\/code> module in the plugin settings.\nIf something is still not working for you, please let me know by creating a support ticket on the plugin support forums.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.10.1 - 18.03.2026<\/h4>\n\n<p>Fixed:\n* Malformed links in image srcset<\/p>\n\n<h4>1.10.0 - 17.03.2026<\/h4>\n\n<p>Added:\n* Integration with Geodirectory plugin\n* Compatibility with WordPress 7.0<\/p>\n\n<p>Enhance:\n* Network settings management\n* Code quality improvements<\/p>\n\n<p>Fixed:\n* Fix HTML links on dropdowns in media library\n* Page parser not properly detecting images sizes for WebP and AVIF formats\n* PHP warning: Implicitly marking parameter $value as nullable is deprecated\n* PHP notice: Function _load_textdomain_just_in_time was called incorrectly\n* Broken srcset parsing caused by unencoded commas in Cloudflare Image URLs\n* Memory leak from setTimeout without cleanup in progress bar component<\/p>\n\n<h4>1.9.8 - 31.12.2025<\/h4>\n\n<p>Fixed:\n* Version conflict<\/p>\n\n<h4>1.9.7 - 31.12.2025<\/h4>\n\n<p>Fixed:\n* Fatal error with latest RankMath update<\/p>\n\n<h4>1.9.6 - 11.11.2025<\/h4>\n\n<p>Added:\n* Track image changes and update images on Cloudflare<\/p>\n\n<p>Fixed:\n* Performance issues with network installs\n* Network installs\n* Prevent unauthenticated users from changing the settings<\/p>\n\n<h4>1.9.5 - 06.07.2025<\/h4>\n\n<p>Added:\n* Support for Elementor gallery widget\n* Support for Voxel theme gallery widget\n* Support for SVG images\n* cf_images_is_rest_request filter to control REST API requests<\/p>\n\n<p>Fixed:\n* Now all users with upload_files permission can offload images\n* Full offload issue with GreenShift - Animation and Page Builder Blocks plugin\n* RankMath overriding images when they are fully offloaded\n* Fix \"The web server cannot generate responsive image sizes for this image. Convert it to JPEG or PNG before uploading\" error<\/p>\n\n<h4>1.9.4 - 14.12.2024<\/h4>\n\n<p>Added:\n* Bulk offload actions to the media library list view\n* Global option to disable processing in the page head section\n* Additional TTL options (3, 6 and 9 months)<\/p>\n\n<p>Changed:\n* Improved UI\/UX\n* Improved logging to better catch offload errors<\/p>\n\n<p>Fixed:\n* Fix logs layout spanning off-screen\n* Undefined array key PHP warning (props @ablears)<\/p>\n\n<h4>1.9.3 - 07.10.2024<\/h4>\n\n<p>Added:\n* Integration with Smart Slider 3\n* Integration with All in One SEO: allow controlling application\/ld+json schema image URLs\n* Integration with Rank Math: allow controlling application\/ld+json schema image URLs\n* Filter cf_images_disable_crop to disable auto cropping for registered crop images\n* Background image support in Spectra plugin when styles are inlined (props @josephdsouza86)<\/p>\n\n<p>Changed:\n* Improve performance processing external images\n* Rename 'cf_images_can_run' filter to 'cf_images_skip_image' so it's more clear what it does<\/p>\n\n<p>Fixed:\n* Images being replaced in RSS feeds, regardless of the settings\n* Fatal error when a registered image size does not have height or width defined<\/p>\n\n<h4>1.9.2 - 17.07.2024<\/h4>\n\n<p>Added:\n* Integration with WPBakery page builder image galleries\n* Integration with Elementor Pro Gallery\n* Integration with Flatsome theme gallery\n* cf_images_upload_host filter to adjust the image host ID<\/p>\n\n<p>Changed:\n* Improve image AI modules\n* Improve performance when Rank Math image SEO is active<\/p>\n\n<p>Fixed:\n* Only allow generating image alt text for supported formats (JPEG, PNG, GIF, BMP)\n* Duplicate queries for images that are not part of the media library\n* Rank Math image SEO module not working with custom domains<\/p>\n\n<h4>1.9.1 - 23.04.2024<\/h4>\n\n<p>Added:\n* Integration with Elementor lightbox<\/p>\n\n<p>Fixed:\n* NaN undefined error in compression savings stats\n* AI image captioning when custom image paths are set\n* WPML compatibility\n* \"Disable WordPress image sizes\" option causing issues with image URLs<\/p>\n\n<h4>1.9.0 - 22.03.2024<\/h4>\n\n<p>Added:\n* Set browser TTL for images\n* Option to serve originals for logged-in users\n* Option to apply settings network wide in multisite<\/p>\n\n<p>Changed:\n* Disable logging in wp-admin\n* Improve detection of cropped images\n* Fallback to scaled images if original image is larger than 20 Mb<\/p>\n\n<p>Fixed:\n* Image size can now be changed in the Gutenberg image block for fully offloaded images\n* Full size images not replaced in the gallery block on expand\n* Multiple fixes and improvements with the WPML integration<\/p>\n\n<h4>1.8.0 - 16.02.2024<\/h4>\n\n<p>Added:\n* Support for RSS feeds\n* Auto crop option. If an image width matches the image height - auto crop the image.\n* Use img width size. New option that allows using the img width attribute value for the image size, if the value is smaller than the requested image. \n* Bulk remove files from the media library.\n* Bulk restore files to the media library.<\/p>\n\n<p>Fixed:\n* Page parser will now add the wp-image-* class to images that do not have it\n* Page parser not detecting images that have a custom title set in the media library<\/p>\n\n<p><a href=\"https:\/\/github.com\/av3nger\/cf-images\/blob\/master\/CHANGELOG.md\">Full changelog<\/a>.<\/p>","raw_excerpt":"Offload you media library images to the Cloudflare Images service. Store, resize, optimize and deliver images in a fast and secure manner.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/161862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=161862"}],"author":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vanyukov"}],"wp:attachment":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=161862"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=161862"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=161862"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=161862"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=161862"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=161862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}