PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / 3.11.1
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization v3.11.1
4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 3.12.1 All 134 releases
optimole-wp / README.md

README.md in Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 3.11.1, at README.md

627 lines 37.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 # Image Optimization by Optimole – Lazy Load, CDN, Convert to WebP & AVIF #
2 **Contributors:** [](https://profiles.wordpress.org/optimoleoptimole](https://profiles.wordpress.org/optimole](https://profiles.wordpress.org/optimole)
3 **Tags:** image optimization, convert webp, image optimizer, lazy load, image, optimization, convert AVIF, resize, free cdn, compress images, optimize images
4 **Requires at least:** 5.5
5 **Tested up to:** 6.3
6 **Requires PHP:** 5.4
7 **License:** GPLv3
8 **License URI:** https://www.gnu.org/licenses/gpl-3.0.en.html
9
10 Automatically compress, optimize and serve scaled images along with next-gen WebP all from CloudFront CDN. Lazy load included ⚡
11
12 ## Description ##
13
14 Optimole is the all-in-one solution to all of your image optimization needs. With full automation and a range of evolutionary features, Optimole makes it easy to clean up your heavy images and bloaty pages.
15
16 🤔 Not sure? Test the Magic of Optimole - [](https://optimole.com/test-drive/?utm_source=wpadmin&utm_medium=readme&utm_campaign=optimoleScan your website](https://optimole.com/test-drive/?utm_source=wpadmin&utm_medium=readme&utm_campaign=optimole](https://optimole.com/test-drive/?utm_source=wpadmin&utm_medium=readme&utm_campaign=optimole) to see how we can help.
17
18 Optimole [](https://www.codeinwp.com/blog/how-to-optimize-images/optimizes](https://www.codeinwp.com/blog/how-to-optimize-images/](https://www.codeinwp.com/blog/how-to-optimize-images/) your images in real-time with a cloud-based system to [](https://optimole.com/website-speed-optimization-and-how-to-speed-up-wordpress/speed up your website](https://optimole.com/website-speed-optimization-and-how-to-speed-up-wordpress/](https://optimole.com/website-speed-optimization-and-how-to-speed-up-wordpress/) and deliver high-quality images perfectly sized for every device. With a one-click setup and minimal footprint, you can start improving your site in minutes.
19
20 ### What makes Optimole so special?
21
22 - Smaller images. Same quality
23 - Fully automated; [](https://docs.optimole.com/article/1173-how-to-get-started-with-optimole-in-just-3-stepsset and forget](https://docs.optimole.com/article/1173-how-to-get-started-with-optimole-in-just-3-steps](https://docs.optimole.com/article/1173-how-to-get-started-with-optimole-in-just-3-steps)
24 - Supports all image types
25 - Supports both Retina and WebP images
26 - Machine Learning(ML) powered automatic compression
27 - AVIF format support for lower image size
28 - Cloud image library support
29 - Serves images from a global CDN for free
30 - Optimizes based on the visitor's actual device (no more guesswork and width estimations)
31 - Full support for page builders like Elementor
32 - Lazy load without jQuery (better)
33 - Fully functional free version (we have paid plans as well)
34
35 You'll be free to concentrate on other aspects of your site with Optimole's set and forget image optimization.
36
37 So, if you have been looking for one plugin that provides lazy loading with a CDN and perfectly sized images, then Optimole is perfect for you.
38
39 ### Checkout a quick overview of Optimole plugin
40 https://youtu.be/nR9iGNJFxnE
41
42 ### How does it do all these great things?
43
44 Optimole's format-based optimization is handled in the cloud on a case-by-case basis. Once you have the plugin installed, Optimole will replace all of your image URLs with cloud-based URLs. We don't replace any images on your website, we compress images on the fly.
45
46 When the image is requested, Optimole will apply the specific transformations required by the device and deliver it to your visitors. This means every image is perfectly sized for every device. The final result will be cached for a month to ensure ongoing fast delivery and more site speed.
47
48 ### How many images can be optimized?
49
50 With the basic plan, you will be able to optimize an unmetered number of images for up to 5k monthly [](https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitorsvisits](https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitors](https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitors). All are delivered from more than 450+ locations around the globe.
51
52 Better yet. The free version is fully functional and includes all of the following great features:
53
54 #### Format-Based Optimization
55
56 Our cloud-based transformation process means we can optimize images based on the format as well as serve images in next-gen formats. If your visitor is using a WebP-capable browser, then Optimole will convert to WebP the image and send it to their device. AVIF support included.
57
58 #### Cloud Library support
59
60 Offload your website images directly to Optimole Cloud and save storage space on your server. Cross-share images between all your websites connected to Optimole.
61
62 #### Image Optimization
63
64 Our algorithms crunch the numbers to provide the best lossy or lossless optimization for the best-looking image at the smallest size using Machine Learning(ML) powered compression.
65
66 #### Exact Used Size
67
68 Optimole will use just one image and resize it delivering a responsive image to fit perfectly on your visitors' devices. No more awkward guesses at potential screen widths. Serve scaled images instantly.
69
70 #### Retina Support
71
72 Optimole can detect Retina screens and deliver an image with the perfect Digital Pixel Ratio (DPR).
73
74 #### Smart Cropping
75
76 If you'd like to keep the most interesting part of an image; then you can enable smart cropping to help keep the image well-sized without losing focus.
77
78 >**Use Case:** Introducing Lisa, a lifestyle blogger who loves sharing her adventures through captivating visuals. With Optimole's Smart Cropping, Lisa's images are automatically resized to fit perfectly within her post layouts. Whether it's a breathtaking mountain landscape or a cosy café scene, Smart Cropping ensures every image tells its story without any hassle. Lisa's blog now shines with effortlessly framed images that capture every moment beautifully.
79
80 #### No Content Shifting
81
82 The lazy load option defers offscreen images and is perfectly sized for the container to provide a seamless viewing experience without any content shifting.
83
84 #### Watermarks
85
86 Who has time for adding watermarks? Optimole will do the hard work for you. Just set it up and pick your preferred location and Optimole will add the watermark to all of your future images.
87
88 >**Use Case:** Meet John, a passionate photographer with a growing online gallery. Adding watermarks used to be a hassle—until Optimole stepped in. Now, John can easily add watermarks to any or all of his images with just a few clicks. He can adjust the size, position, and much more.
89
90 #### Downgrade Quality For Slower Connections
91
92 Optimole provides an option to downgrade the image quality when it detects a slower network. Efficiently encode images by making up to 40% smaller with this neat feature to help visitors in a bottleneck.
93
94 #### Compatibility
95
96 Optimole loves page builders and has unique tweaks to solve image replacements. It also has full compatibility with the new block editor since WordPress 5.0
97
98 #### CDN
99
100 Optimole provides free access to an AWS CloudFront CDN with edge locations in more than 450+ cities around the globe.
101
102 >**Use Case:** Meet Alex, an online store owner reaching customers globally. With Optimole's CDN, his product images are effortlessly spread across AWS CloudFront's 450+ global edge locations. This means shoppers from Tokyo to New York enjoy super-fast page loads, ensuring a seamless shopping experience and boosting Alex's business success.
103
104 ### What About Security?
105
106 The stripped EXIF data is not stored on our service. Optimole likes to work behind the scenes, and won't interact with your site's visitors. No data is collected but you can check the [](https://optimole.com/terms/Terms of Service](https://optimole.com/terms/](https://optimole.com/terms/)
107
108 ### Smooth And Clean
109
110 Optimole can be installed in a few clicks and then left in the back end to do its job. Not happy with it? Optimole has a clean uninstall and your site will be just as before Optimole was installed.
111
112 ### Go Pro 🚀
113
114 Premium users will be able to optimize images starting with more than 50k monthly active users. Images in the Premium plan are served from AWS Cloudfront with over 450+ locations all over the world. Explore more features of [](https://optimole.com/pricing/?utm_source=wpadmin&utm_medium=readme&utm_campaign=optimoleOptimole Pro](https://optimole.com/pricing/?utm_source=wpadmin&utm_medium=readme&utm_campaign=optimole](https://optimole.com/pricing/?utm_source=wpadmin&utm_medium=readme&utm_campaign=optimole).
115
116 ### Support 🤝
117
118 We're here to help. Feel free to open a new thread on the [](https://wordpress.org/support/plugin/optimole-wp/Support Forum](https://wordpress.org/support/plugin/optimole-wp/](https://wordpress.org/support/plugin/optimole-wp/).
119
120 ### Documentation 📚
121
122 Discover how to make the most of Otter Blocks with our detailed and user-friendly [](https://docs.optimole.com/documentation](https://docs.optimole.com/](https://docs.optimole.com/).
123 ## Screenshots ##
124
125 1. Welcome screen
126 2. Connect screen
127 3. Plugin dashboard
128 4. Plugin settings
129
130 ## Changelog ##
131
132 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.8...v2.2.9Version 2.2.9](https://github.com/Codeinwp/optimole-wp/compare/v2.2.8...v2.2.9](https://github.com/Codeinwp/optimole-wp/compare/v2.2.8...v2.2.9) (2020-02-25)
133
134 * **Bug Fixes**
135 * compatibility with Fusion builder, remove replacement when in edit mode ([](https://github.com/Codeinwp/optimole-wp/commit/b16683bb16683b](https://github.com/Codeinwp/optimole-wp/commit/b16683b](https://github.com/Codeinwp/optimole-wp/commit/b16683b))
136 * improve compatibility with Divi builder ([](https://github.com/Codeinwp/optimole-wp/commit/efdabfeefdabfe](https://github.com/Codeinwp/optimole-wp/commit/efdabfe](https://github.com/Codeinwp/optimole-wp/commit/efdabfe))
137
138
139
140 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.7...v2.2.8Version 2.2.8](https://github.com/Codeinwp/optimole-wp/compare/v2.2.7...v2.2.8](https://github.com/Codeinwp/optimole-wp/compare/v2.2.7...v2.2.8) (2020-01-14)
141
142 * **Bug Fixes**
143 * catch image URLs that contains some symbols ([](https://github.com/Codeinwp/optimole-wp/commit/ce1c162ce1c162](https://github.com/Codeinwp/optimole-wp/commit/ce1c162](https://github.com/Codeinwp/optimole-wp/commit/ce1c162))
144 * compatibility with Sassy Social share plugin ([](https://github.com/Codeinwp/optimole-wp/commit/d4224cbd4224cb](https://github.com/Codeinwp/optimole-wp/commit/d4224cb](https://github.com/Codeinwp/optimole-wp/commit/d4224cb))
145 * consider image URLs that contains chars like ~ ([](https://github.com/Codeinwp/optimole-wp/commit/670597e670597e](https://github.com/Codeinwp/optimole-wp/commit/670597e](https://github.com/Codeinwp/optimole-wp/commit/670597e))
146 * improve LQIP transition effect, fix [](https://github.com/Codeinwp/optimole-wp/issues/212#212](https://github.com/Codeinwp/optimole-wp/issues/212](https://github.com/Codeinwp/optimole-wp/issues/212) ([](https://github.com/Codeinwp/optimole-wp/commit/946e16c946e16c](https://github.com/Codeinwp/optimole-wp/commit/946e16c](https://github.com/Codeinwp/optimole-wp/commit/946e16c))
147 * prevent losing filters settings after disconnecting the api key, fix [](https://github.com/Codeinwp/optimole-wp/issues/210#210](https://github.com/Codeinwp/optimole-wp/issues/210](https://github.com/Codeinwp/optimole-wp/issues/210) ([](https://github.com/Codeinwp/optimole-wp/commit/db431b9db431b9](https://github.com/Codeinwp/optimole-wp/commit/db431b9](https://github.com/Codeinwp/optimole-wp/commit/db431b9))
148 * removes custom logo preload causing duplicate content issues ([](https://github.com/Codeinwp/optimole-wp/commit/04cad0704cad07](https://github.com/Codeinwp/optimole-wp/commit/04cad07](https://github.com/Codeinwp/optimole-wp/commit/04cad07))
149 * strip script tag on amp modes fix [](https://github.com/Codeinwp/optimole-wp/issues/203#203](https://github.com/Codeinwp/optimole-wp/issues/203](https://github.com/Codeinwp/optimole-wp/issues/203) ([](https://github.com/Codeinwp/optimole-wp/commit/35f59f335f59f3](https://github.com/Codeinwp/optimole-wp/commit/35f59f3](https://github.com/Codeinwp/optimole-wp/commit/35f59f3))
150
151 * **Features**
152 * adds data-skip-lazy attr for skipping lazyload ([](https://github.com/Codeinwp/optimole-wp/commit/87261278726127](https://github.com/Codeinwp/optimole-wp/commit/8726127](https://github.com/Codeinwp/optimole-wp/commit/8726127))
153 * adds wp-cli commands for most common operations ([](https://github.com/Codeinwp/optimole-wp/commit/577406b577406b](https://github.com/Codeinwp/optimole-wp/commit/577406b](https://github.com/Codeinwp/optimole-wp/commit/577406b))
154
155
156
157 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.6...v2.2.7Version 2.2.7](https://github.com/Codeinwp/optimole-wp/compare/v2.2.6...v2.2.7](https://github.com/Codeinwp/optimole-wp/compare/v2.2.6...v2.2.7) (2019-12-17)
158
159 * **Bug Fixes**
160 * edge case lazyload replacement when noscript images are present ([](https://github.com/Codeinwp/optimole-wp/commit/c788c3fc788c3f](https://github.com/Codeinwp/optimole-wp/commit/c788c3f](https://github.com/Codeinwp/optimole-wp/commit/c788c3f))
161 * improve compatibility with Divi builder ([](https://github.com/Codeinwp/optimole-wp/commit/7d1c4697d1c469](https://github.com/Codeinwp/optimole-wp/commit/7d1c469](https://github.com/Codeinwp/optimole-wp/commit/7d1c469))
162 * improve compatibility with W3TC minification system ([](https://github.com/Codeinwp/optimole-wp/commit/bf9f058bf9f058](https://github.com/Codeinwp/optimole-wp/commit/bf9f058](https://github.com/Codeinwp/optimole-wp/commit/bf9f058))
163 * improve compatibility with WP Migrate DB ([](https://github.com/Codeinwp/optimole-wp/commit/02df07702df077](https://github.com/Codeinwp/optimole-wp/commit/02df077](https://github.com/Codeinwp/optimole-wp/commit/02df077))
164 * improve lazyload and replacement on json strings ([](https://github.com/Codeinwp/optimole-wp/commit/b7f67fdb7f67fd](https://github.com/Codeinwp/optimole-wp/commit/b7f67fd](https://github.com/Codeinwp/optimole-wp/commit/b7f67fd))
165 * removed blur from lazyload placeholders ([](https://github.com/Codeinwp/optimole-wp/commit/2c7d66d2c7d66d](https://github.com/Codeinwp/optimole-wp/commit/2c7d66d](https://github.com/Codeinwp/optimole-wp/commit/2c7d66d))
166
167 * **Features**
168 * adds compatibility for schemaless and relative image URLs ([](https://github.com/Codeinwp/optimole-wp/commit/e3886ebe3886eb](https://github.com/Codeinwp/optimole-wp/commit/e3886eb](https://github.com/Codeinwp/optimole-wp/commit/e3886eb))
169 * hide Optimole menu via constant [](https://github.com/Codeinwp/optimole-wp/issues/196#196](https://github.com/Codeinwp/optimole-wp/issues/196](https://github.com/Codeinwp/optimole-wp/issues/196) ([](https://github.com/Codeinwp/optimole-wp/commit/e0268fae0268fa](https://github.com/Codeinwp/optimole-wp/commit/e0268fa](https://github.com/Codeinwp/optimole-wp/commit/e0268fa))
170 * skip lazyload on images with skip-lazy flag ([](https://github.com/Codeinwp/optimole-wp/commit/4d9219f4d9219f](https://github.com/Codeinwp/optimole-wp/commit/4d9219f](https://github.com/Codeinwp/optimole-wp/commit/4d9219f))
171
172
173
174 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.5...v2.2.6Version 2.2.6](https://github.com/Codeinwp/optimole-wp/compare/v2.2.5...v2.2.6](https://github.com/Codeinwp/optimole-wp/compare/v2.2.5...v2.2.6) (2019-12-02)
175
176 * **Bug Fixes**
177 * compatibility with Edge 15 of js library, fix [](https://github.com/Codeinwp/optimole-wp/issues/187#187](https://github.com/Codeinwp/optimole-wp/issues/187](https://github.com/Codeinwp/optimole-wp/issues/187) ([](https://github.com/Codeinwp/optimole-wp/commit/8e736688e73668](https://github.com/Codeinwp/optimole-wp/commit/8e73668](https://github.com/Codeinwp/optimole-wp/commit/8e73668))
178 * compatibility with slider revolution ([](https://github.com/Codeinwp/optimole-wp/commit/05c21ce05c21ce](https://github.com/Codeinwp/optimole-wp/commit/05c21ce](https://github.com/Codeinwp/optimole-wp/commit/05c21ce))
179 * edge case for optimole failed to lazyload certain images ([](https://github.com/Codeinwp/optimole-wp/commit/0f8de690f8de69](https://github.com/Codeinwp/optimole-wp/commit/0f8de69](https://github.com/Codeinwp/optimole-wp/commit/0f8de69))
180 * edge cases cropping behaviour when two images sizes are using different cropping ([](https://github.com/Codeinwp/optimole-wp/commit/beb8c27beb8c27](https://github.com/Codeinwp/optimole-wp/commit/beb8c27](https://github.com/Codeinwp/optimole-wp/commit/beb8c27))
181 * improve compatibility with master slider ([](https://github.com/Codeinwp/optimole-wp/commit/cf57717cf57717](https://github.com/Codeinwp/optimole-wp/commit/cf57717](https://github.com/Codeinwp/optimole-wp/commit/cf57717))
182 * searching through multiple classes the right way, added tests ([](https://github.com/Codeinwp/optimole-wp/commit/4751edb4751edb](https://github.com/Codeinwp/optimole-wp/commit/4751edb](https://github.com/Codeinwp/optimole-wp/commit/4751edb))
183
184 * **Features**
185 * adds exclude by class filter for lazyload mechanism ([](https://github.com/Codeinwp/optimole-wp/commit/3ce87e23ce87e2](https://github.com/Codeinwp/optimole-wp/commit/3ce87e2](https://github.com/Codeinwp/optimole-wp/commit/3ce87e2))
186
187
188
189 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.4...v2.2.5Version 2.2.5](https://github.com/Codeinwp/optimole-wp/compare/v2.2.4...v2.2.5](https://github.com/Codeinwp/optimole-wp/compare/v2.2.4...v2.2.5) (2019-11-18)
190
191 * **Bug Fixes**
192 * inherit custom sizes desired cropping, adds enlarge compatibility ([](https://github.com/Codeinwp/optimole-wp/commit/84f705684f7056](https://github.com/Codeinwp/optimole-wp/commit/84f7056](https://github.com/Codeinwp/optimole-wp/commit/84f7056))
193
194 * **Features**
195 * adds compatibility with multiple slider plugins ([](https://github.com/Codeinwp/optimole-wp/commit/d78fd1bd78fd1b](https://github.com/Codeinwp/optimole-wp/commit/d78fd1b](https://github.com/Codeinwp/optimole-wp/commit/d78fd1b))
196 * improve compatibility with various page builders: Divi, Thrive, Elementor, Beaver ([](https://github.com/Codeinwp/optimole-wp/commit/a4391b4a4391b4](https://github.com/Codeinwp/optimole-wp/commit/a4391b4](https://github.com/Codeinwp/optimole-wp/commit/a4391b4))
197
198
199
200 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.3...v2.2.4Version 2.2.4](https://github.com/Codeinwp/optimole-wp/compare/v2.2.3...v2.2.4](https://github.com/Codeinwp/optimole-wp/compare/v2.2.3...v2.2.4) (2019-11-05)
201
202 * **Bug Fixes**
203 * conditions for close to limit notice ([](https://github.com/Codeinwp/optimole-wp/commit/e3530b8e3530b8](https://github.com/Codeinwp/optimole-wp/commit/e3530b8](https://github.com/Codeinwp/optimole-wp/commit/e3530b8))
204
205
206
207 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.2...v2.2.3Version 2.2.3](https://github.com/Codeinwp/optimole-wp/compare/v2.2.2...v2.2.3](https://github.com/Codeinwp/optimole-wp/compare/v2.2.2...v2.2.3) (2019-11-05)
208
209 * **Bug Fixes**
210 * change minimum slider range for compression to 50 instead of 0 ([](https://github.com/Codeinwp/optimole-wp/commit/592c3e2592c3e2](https://github.com/Codeinwp/optimole-wp/commit/592c3e2](https://github.com/Codeinwp/optimole-wp/commit/592c3e2))
211 * image quality setting description, fix [](https://github.com/Codeinwp/optimole-wp/issues/162#162](https://github.com/Codeinwp/optimole-wp/issues/162](https://github.com/Codeinwp/optimole-wp/issues/162) ([](https://github.com/Codeinwp/optimole-wp/commit/60cbe5e60cbe5e](https://github.com/Codeinwp/optimole-wp/commit/60cbe5e](https://github.com/Codeinwp/optimole-wp/commit/60cbe5e))
212 * improve description for background image lazyload fix [](https://github.com/Codeinwp/optimole-wp/issues/163#163](https://github.com/Codeinwp/optimole-wp/issues/163](https://github.com/Codeinwp/optimole-wp/issues/163) ([](https://github.com/Codeinwp/optimole-wp/commit/f0f190bf0f190b](https://github.com/Codeinwp/optimole-wp/commit/f0f190b](https://github.com/Codeinwp/optimole-wp/commit/f0f190b))
213 * upgrade notice when user is close to visits limit ([](https://github.com/Codeinwp/optimole-wp/commit/ff716f7ff716f7](https://github.com/Codeinwp/optimole-wp/commit/ff716f7](https://github.com/Codeinwp/optimole-wp/commit/ff716f7))
214
215
216
217 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.1...v2.2.2Version 2.2.2](https://github.com/Codeinwp/optimole-wp/compare/v2.2.1...v2.2.2](https://github.com/Codeinwp/optimole-wp/compare/v2.2.1...v2.2.2) (2019-11-04)
218
219 * **Bug Fixes**
220 * ignore rescale on GIF and SVG when lazyload is active ([](https://github.com/Codeinwp/optimole-wp/commit/d4e63b6d4e63b6](https://github.com/Codeinwp/optimole-wp/commit/d4e63b6](https://github.com/Codeinwp/optimole-wp/commit/d4e63b6))
221 * improve compatibility with Thrive Architect ([](https://github.com/Codeinwp/optimole-wp/commit/55a595255a5952](https://github.com/Codeinwp/optimole-wp/commit/55a5952](https://github.com/Codeinwp/optimole-wp/commit/55a5952))
222 * improve generic placeholder computed width/height when the source size is unknown ([](https://github.com/Codeinwp/optimole-wp/commit/0c3cc3f0c3cc3f](https://github.com/Codeinwp/optimole-wp/commit/0c3cc3f](https://github.com/Codeinwp/optimole-wp/commit/0c3cc3f))
223 * sign only URLs that don't use an whitelisted domain. ([](https://github.com/Codeinwp/optimole-wp/commit/7813bf97813bf9](https://github.com/Codeinwp/optimole-wp/commit/7813bf9](https://github.com/Codeinwp/optimole-wp/commit/7813bf9))
224 * strip retina based prefix to use original url ([](https://github.com/Codeinwp/optimole-wp/commit/948c667948c667](https://github.com/Codeinwp/optimole-wp/commit/948c667](https://github.com/Codeinwp/optimole-wp/commit/948c667))
225
226
227
228 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.2.0...v2.2.1Version 2.2.1](https://github.com/Codeinwp/optimole-wp/compare/v2.2.0...v2.2.1](https://github.com/Codeinwp/optimole-wp/compare/v2.2.0...v2.2.1) (2019-10-21)
229
230 * **Bug Fixes**
231 * gif to video setting description ([](https://github.com/Codeinwp/optimole-wp/commit/063d37b063d37b](https://github.com/Codeinwp/optimole-wp/commit/063d37b](https://github.com/Codeinwp/optimole-wp/commit/063d37b))
232
233
234
235 ### [](https://github.com/Codeinwp/optimole-wp/compare/v2.1.2...v2.2.0Version 2.2.0](https://github.com/Codeinwp/optimole-wp/compare/v2.1.2...v2.2.0](https://github.com/Codeinwp/optimole-wp/compare/v2.1.2...v2.2.0) (2019-10-21)
236
237 * #### Bug Fixes
238 * modified tests, checking if an url contains gif image ([](https://github.com/Codeinwp/optimole-wp/commit/f76f2c9f76f2c9](https://github.com/Codeinwp/optimole-wp/commit/f76f2c9](https://github.com/Codeinwp/optimole-wp/commit/f76f2c9))
239 * small typo on max sizes settings description ([](https://github.com/Codeinwp/optimole-wp/commit/4d83dbf4d83dbf](https://github.com/Codeinwp/optimole-wp/commit/4d83dbf](https://github.com/Codeinwp/optimole-wp/commit/4d83dbf))
240
241 * #### Features
242 * adds GIF compression and conversion to video files ( mp4 and WebM ) ([](https://github.com/Codeinwp/optimole-wp/commit/04d9f7d04d9f7d](https://github.com/Codeinwp/optimole-wp/commit/04d9f7d](https://github.com/Codeinwp/optimole-wp/commit/04d9f7d))
243 * adds gif to the exclusions list ([](https://github.com/Codeinwp/optimole-wp/commit/914cd11914cd11](https://github.com/Codeinwp/optimole-wp/commit/914cd11](https://github.com/Codeinwp/optimole-wp/commit/914cd11))
244 * adds option to lazyload images used as backgrounds ([](https://github.com/Codeinwp/optimole-wp/commit/c346244c346244](https://github.com/Codeinwp/optimole-wp/commit/c346244](https://github.com/Codeinwp/optimole-wp/commit/c346244))
245 * adds toggle to disable bg image replacement ([](https://github.com/Codeinwp/optimole-wp/commit/3c3997a3c3997a](https://github.com/Codeinwp/optimole-wp/commit/3c3997a](https://github.com/Codeinwp/optimole-wp/commit/3c3997a))
246
247
248
249 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.1.1...v2.1.2Version 2.1.2](https://github.com/Codeinwp/optimole-wp/compare/v2.1.1...v2.1.2](https://github.com/Codeinwp/optimole-wp/compare/v2.1.1...v2.1.2) (2019-09-25)
250
251 * **Bug Fixes**
252 * adds preconnect hint for image domain and js library domain ([](https://github.com/Codeinwp/optimole-wp/commit/11b697d11b697d](https://github.com/Codeinwp/optimole-wp/commit/11b697d](https://github.com/Codeinwp/optimole-wp/commit/11b697d))
253 * compatibility with cache_enabler [](https://github.com/Codeinwp/optimole-wp/issues/136#136](https://github.com/Codeinwp/optimole-wp/issues/136](https://github.com/Codeinwp/optimole-wp/issues/136) ([](https://github.com/Codeinwp/optimole-wp/commit/483262f483262f](https://github.com/Codeinwp/optimole-wp/commit/483262f](https://github.com/Codeinwp/optimole-wp/commit/483262f))
254 * improve checking for editing context when the replacement should be off ([](https://github.com/Codeinwp/optimole-wp/commit/e7510f6e7510f6](https://github.com/Codeinwp/optimole-wp/commit/e7510f6](https://github.com/Codeinwp/optimole-wp/commit/e7510f6))
255 * lazyload query urls part of [](https://github.com/Codeinwp/optimole-wp/issues/145#145](https://github.com/Codeinwp/optimole-wp/issues/145](https://github.com/Codeinwp/optimole-wp/issues/145) ([](https://github.com/Codeinwp/optimole-wp/commit/a048f68a048f68](https://github.com/Codeinwp/optimole-wp/commit/a048f68](https://github.com/Codeinwp/optimole-wp/commit/a048f68))
256 * preload lazyload js file when lazyload setting is active ([](https://github.com/Codeinwp/optimole-wp/commit/828e1de828e1de](https://github.com/Codeinwp/optimole-wp/commit/828e1de](https://github.com/Codeinwp/optimole-wp/commit/828e1de))
257 * remove replacement on Divi theme builder ([](https://github.com/Codeinwp/optimole-wp/commit/86ab6d286ab6d2](https://github.com/Codeinwp/optimole-wp/commit/86ab6d2](https://github.com/Codeinwp/optimole-wp/commit/86ab6d2))
258 * replacement was not working for urls with special chars ([](https://github.com/Codeinwp/optimole-wp/commit/48a496648a4966](https://github.com/Codeinwp/optimole-wp/commit/48a4966](https://github.com/Codeinwp/optimole-wp/commit/48a4966))
259 * replacing url's with query strings without the query in the modified url [](https://github.com/Codeinwp/optimole-wp/issues/141#141](https://github.com/Codeinwp/optimole-wp/issues/141](https://github.com/Codeinwp/optimole-wp/issues/141) ([](https://github.com/Codeinwp/optimole-wp/commit/00255590025559](https://github.com/Codeinwp/optimole-wp/commit/0025559](https://github.com/Codeinwp/optimole-wp/commit/0025559))
260 * replacing url's with regex in <a> tags [](https://github.com/Codeinwp/optimole-wp/issues/141#141](https://github.com/Codeinwp/optimole-wp/issues/141](https://github.com/Codeinwp/optimole-wp/issues/141) ([](https://github.com/Codeinwp/optimole-wp/commit/4b2264f4b2264f](https://github.com/Codeinwp/optimole-wp/commit/4b2264f](https://github.com/Codeinwp/optimole-wp/commit/4b2264f))
261 * resource hints condition check [skip release] ([](https://github.com/Codeinwp/optimole-wp/commit/a0f30e7a0f30e7](https://github.com/Codeinwp/optimole-wp/commit/a0f30e7](https://github.com/Codeinwp/optimole-wp/commit/a0f30e7))
262
263 * **Features**
264 * adds retina settings control which enable/disable serving of HiDPI images ([](https://github.com/Codeinwp/optimole-wp/commit/73c871273c8712](https://github.com/Codeinwp/optimole-wp/commit/73c8712](https://github.com/Codeinwp/optimole-wp/commit/73c8712))
265 * adds visitors based plan integration ([](https://github.com/Codeinwp/optimole-wp/commit/ea07a94ea07a94](https://github.com/Codeinwp/optimole-wp/commit/ea07a94](https://github.com/Codeinwp/optimole-wp/commit/ea07a94))
266
267
268
269 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1Version 2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1](https://github.com/Codeinwp/optimole-wp/compare/v2.1.0...v2.1.1) (2019-07-22)
270
271 * **Bug Fixes**
272 * clicking on advanced menu move the focus to the focus to the compression tab, fix [](https://github.com/Codeinwp/optimole-wp/issues/118#118](https://github.com/Codeinwp/optimole-wp/issues/118](https://github.com/Codeinwp/optimole-wp/issues/118) ([](https://github.com/Codeinwp/optimole-wp/commit/178d1fc178d1fc](https://github.com/Codeinwp/optimole-wp/commit/178d1fc](https://github.com/Codeinwp/optimole-wp/commit/178d1fc))
273 * improve generic lazyload setting description and behaviour, fix [](https://github.com/Codeinwp/optimole-wp/issues/119#119](https://github.com/Codeinwp/optimole-wp/issues/119](https://github.com/Codeinwp/optimole-wp/issues/119) ([](https://github.com/Codeinwp/optimole-wp/commit/13ce75813ce758](https://github.com/Codeinwp/optimole-wp/commit/13ce758](https://github.com/Codeinwp/optimole-wp/commit/13ce758))
274 * improve responsivness behaviour on small screens, fix [](https://github.com/Codeinwp/optimole-wp/issues/117#117](https://github.com/Codeinwp/optimole-wp/issues/117](https://github.com/Codeinwp/optimole-wp/issues/117) ([](https://github.com/Codeinwp/optimole-wp/commit/10484bb10484bb](https://github.com/Codeinwp/optimole-wp/commit/10484bb](https://github.com/Codeinwp/optimole-wp/commit/10484bb))
275 * when service update cron returns an error, we should use the old data ([](https://github.com/Codeinwp/optimole-wp/commit/4f80cc04f80cc0](https://github.com/Codeinwp/optimole-wp/commit/4f80cc0](https://github.com/Codeinwp/optimole-wp/commit/4f80cc0))
276
277
278
279 ### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.7...v2.1.0Version 2.1.0](https://github.com/Codeinwp/optimole-wp/compare/v2.0.7...v2.1.0](https://github.com/Codeinwp/optimole-wp/compare/v2.0.7...v2.1.0) (2019-07-16)
280
281 * #### Bug Fixes
282 * api request should return error message, if fails ([](https://github.com/Codeinwp/optimole-wp/commit/51e180e51e180e](https://github.com/Codeinwp/optimole-wp/commit/51e180e](https://github.com/Codeinwp/optimole-wp/commit/51e180e))
283 * compatibility with shortcode ultimate, adds more usecases to test ([](https://github.com/Codeinwp/optimole-wp/commit/c6673ebc6673eb](https://github.com/Codeinwp/optimole-wp/commit/c6673eb](https://github.com/Codeinwp/optimole-wp/commit/c6673eb))
284 * disable REST API image replacement when the user is logged in ([](https://github.com/Codeinwp/optimole-wp/commit/f577723f577723](https://github.com/Codeinwp/optimole-wp/commit/f577723](https://github.com/Codeinwp/optimole-wp/commit/f577723))
285 * disable rest api replacement when we are in the edit context ([](https://github.com/Codeinwp/optimole-wp/commit/58d83b058d83b0](https://github.com/Codeinwp/optimole-wp/commit/58d83b0](https://github.com/Codeinwp/optimole-wp/commit/58d83b0))
286 * duplicate requests when generating the lazyload placeholder, using an unified url for every source url, fix [](https://github.com/Codeinwp/optimole-wp/issues/103#103](https://github.com/Codeinwp/optimole-wp/issues/103](https://github.com/Codeinwp/optimole-wp/issues/103) ([](https://github.com/Codeinwp/optimole-wp/commit/1c00c0c1c00c0c](https://github.com/Codeinwp/optimole-wp/commit/1c00c0c](https://github.com/Codeinwp/optimole-wp/commit/1c00c0c))
287 * ignore lazyload tag on noscript list of images, improve compatibility with Envira ([](https://github.com/Codeinwp/optimole-wp/commit/74219b174219b1](https://github.com/Codeinwp/optimole-wp/commit/74219b1](https://github.com/Codeinwp/optimole-wp/commit/74219b1))
288 * improve compatibility with Envira, ignora optimole lazyload on them ([](https://github.com/Codeinwp/optimole-wp/commit/00b68fd00b68fd](https://github.com/Codeinwp/optimole-wp/commit/00b68fd](https://github.com/Codeinwp/optimole-wp/commit/00b68fd))
289 * possible issues when list of allowed domains is not an array ([](https://github.com/Codeinwp/optimole-wp/commit/2ee99972ee9997](https://github.com/Codeinwp/optimole-wp/commit/2ee9997](https://github.com/Codeinwp/optimole-wp/commit/2ee9997))
290 * prefetch custom domain instead of the assigned one, when custom domain is used ([](https://github.com/Codeinwp/optimole-wp/commit/cedbb79cedbb79](https://github.com/Codeinwp/optimole-wp/commit/cedbb79](https://github.com/Codeinwp/optimole-wp/commit/cedbb79))
291 * remove replacement on POST requests ([](https://github.com/Codeinwp/optimole-wp/commit/f4637baf4637ba](https://github.com/Codeinwp/optimole-wp/commit/f4637ba](https://github.com/Codeinwp/optimole-wp/commit/f4637ba))
292 * removes admin bar traffic node ([](https://github.com/Codeinwp/optimole-wp/commit/0e21fe80e21fe8](https://github.com/Codeinwp/optimole-wp/commit/0e21fe8](https://github.com/Codeinwp/optimole-wp/commit/0e21fe8))
293
294 * #### Features
295 * adds basic filter, smart cropping and network optimization dashboard settings, fix [](https://github.com/Codeinwp/optimole-wp/issues/105#105](https://github.com/Codeinwp/optimole-wp/issues/105](https://github.com/Codeinwp/optimole-wp/issues/105), [](https://github.com/Codeinwp/optimole-wp/issues/104#104](https://github.com/Codeinwp/optimole-wp/issues/104](https://github.com/Codeinwp/optimole-wp/issues/104), [](https://github.com/Codeinwp/optimole-wp/issues/96#96](https://github.com/Codeinwp/optimole-wp/issues/96](https://github.com/Codeinwp/optimole-wp/issues/96) ([](https://github.com/Codeinwp/optimole-wp/commit/aba242daba242d](https://github.com/Codeinwp/optimole-wp/commit/aba242d](https://github.com/Codeinwp/optimole-wp/commit/aba242d))
296 * adds compatibility with new optimization service, improving resizing and compression with up to 15% smaller images than before ([](https://github.com/Codeinwp/optimole-wp/commit/1f2528f1f2528f](https://github.com/Codeinwp/optimole-wp/commit/1f2528f](https://github.com/Codeinwp/optimole-wp/commit/1f2528f))
297 * adds generic lazyload placeholder option as a setting ([](https://github.com/Codeinwp/optimole-wp/commit/43b33fb43b33fb](https://github.com/Codeinwp/optimole-wp/commit/43b33fb](https://github.com/Codeinwp/optimole-wp/commit/43b33fb))
298
299
300
301 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.6...v2.0.7Version 2.0.7](https://github.com/Codeinwp/optimole-wp/compare/v2.0.6...v2.0.7](https://github.com/Codeinwp/optimole-wp/compare/v2.0.6...v2.0.7) (2019-05-29)
302
303 * **Bug Fixes**
304 * **rest:** WordPress core routes were called with double slashes ([](https://github.com/Codeinwp/optimole-wp/commit/2e47fe02e47fe0](https://github.com/Codeinwp/optimole-wp/commit/2e47fe0](https://github.com/Codeinwp/optimole-wp/commit/2e47fe0))
305 * better replacement for relative paths ([](https://github.com/Codeinwp/optimole-wp/commit/c18be2fc18be2f](https://github.com/Codeinwp/optimole-wp/commit/c18be2f](https://github.com/Codeinwp/optimole-wp/commit/c18be2f))
306 * image replacement was breaking non-image urls with query strings ([](https://github.com/Codeinwp/optimole-wp/commit/2ef22122ef2212](https://github.com/Codeinwp/optimole-wp/commit/2ef2212](https://github.com/Codeinwp/optimole-wp/commit/2ef2212))
307 * improve admin bar quota looking and copyright [](https://github.com/Codeinwp/optimole-wp/issues/99#99](https://github.com/Codeinwp/optimole-wp/issues/99](https://github.com/Codeinwp/optimole-wp/issues/99) ([](https://github.com/Codeinwp/optimole-wp/commit/200e746200e746](https://github.com/Codeinwp/optimole-wp/commit/200e746](https://github.com/Codeinwp/optimole-wp/commit/200e746))
308 * improve CDN domain label naming [](https://github.com/Codeinwp/optimole-wp/issues/97#97](https://github.com/Codeinwp/optimole-wp/issues/97](https://github.com/Codeinwp/optimole-wp/issues/97) ([](https://github.com/Codeinwp/optimole-wp/commit/8a2da718a2da71](https://github.com/Codeinwp/optimole-wp/commit/8a2da71](https://github.com/Codeinwp/optimole-wp/commit/8a2da71))
309 * improve error reporting on connection to the service ([](https://github.com/Codeinwp/optimole-wp/commit/11ee51411ee514](https://github.com/Codeinwp/optimole-wp/commit/11ee514](https://github.com/Codeinwp/optimole-wp/commit/11ee514))
310 * remove image replacement on Thrive Architect editor ([](https://github.com/Codeinwp/optimole-wp/commit/3a8c46b3a8c46b](https://github.com/Codeinwp/optimole-wp/commit/3a8c46b](https://github.com/Codeinwp/optimole-wp/commit/3a8c46b))
311 * removes redundant api request parameters ([](https://github.com/Codeinwp/optimole-wp/commit/4385f684385f68](https://github.com/Codeinwp/optimole-wp/commit/4385f68](https://github.com/Codeinwp/optimole-wp/commit/4385f68))
312
313 * **Documentation**
314 * improve readme description ([](https://github.com/Codeinwp/optimole-wp/commit/4134b054134b05](https://github.com/Codeinwp/optimole-wp/commit/4134b05](https://github.com/Codeinwp/optimole-wp/commit/4134b05))
315
316 * **Features**
317 * **api:** adds filter before url replacement, for individual image args ([](https://github.com/Codeinwp/optimole-wp/commit/d936944d936944](https://github.com/Codeinwp/optimole-wp/commit/d936944](https://github.com/Codeinwp/optimole-wp/commit/d936944))
318 * adds possible conflicts tab which reports the most common problems that Optimole might have with various plugins ([](https://github.com/Codeinwp/optimole-wp/commit/3b1ec3f3b1ec3f](https://github.com/Codeinwp/optimole-wp/commit/3b1ec3f](https://github.com/Codeinwp/optimole-wp/commit/3b1ec3f))
319
320
321
322 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.5...v2.0.6Version 2.0.6](https://github.com/Codeinwp/optimole-wp/compare/v2.0.5...v2.0.6](https://github.com/Codeinwp/optimole-wp/compare/v2.0.5...v2.0.6) (2019-03-29)
323
324 * **Bug Fixes**
325 * adds compatibility with background images lazyload on Essential Grid plugin ([](https://github.com/Codeinwp/optimole-wp/commit/a73d1cda73d1cd](https://github.com/Codeinwp/optimole-wp/commit/a73d1cd](https://github.com/Codeinwp/optimole-wp/commit/a73d1cd))
326 * compatibility with Oxygen builder, removes image replacement in the editor ([](https://github.com/Codeinwp/optimole-wp/commit/015698d015698d](https://github.com/Codeinwp/optimole-wp/commit/015698d](https://github.com/Codeinwp/optimole-wp/commit/015698d))
327 * compatibility with Woocommerce zoom image feature on product single pages ([](https://github.com/Codeinwp/optimole-wp/commit/4445d1e4445d1e](https://github.com/Codeinwp/optimole-wp/commit/4445d1e](https://github.com/Codeinwp/optimole-wp/commit/4445d1e))
328 * compatibility with YITH WooCommerce Quick View plugin, replacing images returned by the ajax request, fix [](https://github.com/Codeinwp/optimole-wp/issues/87#87](https://github.com/Codeinwp/optimole-wp/issues/87](https://github.com/Codeinwp/optimole-wp/issues/87) ([](https://github.com/Codeinwp/optimole-wp/commit/60169b260169b2](https://github.com/Codeinwp/optimole-wp/commit/60169b2](https://github.com/Codeinwp/optimole-wp/commit/60169b2))
329 * cropping behaviour being inconsistent with due to variable reset in image parsing loop ([](https://github.com/Codeinwp/optimole-wp/commit/2b14e7c2b14e7c](https://github.com/Codeinwp/optimole-wp/commit/2b14e7c](https://github.com/Codeinwp/optimole-wp/commit/2b14e7c))
330 * remove unnecessary variables in the rest request causing conflicts with redirection plugins ([](https://github.com/Codeinwp/optimole-wp/commit/68c04ee68c04ee](https://github.com/Codeinwp/optimole-wp/commit/68c04ee](https://github.com/Codeinwp/optimole-wp/commit/68c04ee))
331 * Woocommerce image archive ratio, preserving cropping with Optimole images, fixes [](https://github.com/Codeinwp/optimole-wp/issues/85#85](https://github.com/Codeinwp/optimole-wp/issues/85](https://github.com/Codeinwp/optimole-wp/issues/85) ([](https://github.com/Codeinwp/optimole-wp/commit/a3a8504a3a8504](https://github.com/Codeinwp/optimole-wp/commit/a3a8504](https://github.com/Codeinwp/optimole-wp/commit/a3a8504))
332
333 * **Features**
334 * adds refresh stats button, syncing user details with Optimole dashboard, fix [](https://github.com/Codeinwp/optimole-wp/issues/83#83](https://github.com/Codeinwp/optimole-wp/issues/83](https://github.com/Codeinwp/optimole-wp/issues/83) ([](https://github.com/Codeinwp/optimole-wp/commit/14614831461483](https://github.com/Codeinwp/optimole-wp/commit/1461483](https://github.com/Codeinwp/optimole-wp/commit/1461483))
335
336
337
338 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.4...v2.0.5Version 2.0.5](https://github.com/Codeinwp/optimole-wp/compare/v2.0.4...v2.0.5](https://github.com/Codeinwp/optimole-wp/compare/v2.0.4...v2.0.5) (2019-03-25)
339
340 * **Bug Fixes**
341 * adds compatibility with Jetelements Slider ([](https://github.com/Codeinwp/optimole-wp/commit/c9e518ec9e518e](https://github.com/Codeinwp/optimole-wp/commit/c9e518e](https://github.com/Codeinwp/optimole-wp/commit/c9e518e))
342 * compatibility with Metaslider, adds full support for all slider types available ([](https://github.com/Codeinwp/optimole-wp/commit/a09d1fda09d1fd](https://github.com/Codeinwp/optimole-wp/commit/a09d1fd](https://github.com/Codeinwp/optimole-wp/commit/a09d1fd))
343 * compatibility with various themes logo markup based on the image url, removes the hook to theme_mods image replace ([](https://github.com/Codeinwp/optimole-wp/commit/34e0d8534e0d85](https://github.com/Codeinwp/optimole-wp/commit/34e0d85](https://github.com/Codeinwp/optimole-wp/commit/34e0d85))
344 * disable image replacement when we are in the Beaver Builder editing mode ([](https://github.com/Codeinwp/optimole-wp/commit/239442f239442f](https://github.com/Codeinwp/optimole-wp/commit/239442f](https://github.com/Codeinwp/optimole-wp/commit/239442f))
345 * image replacement on header tags which uses relative urls ([](https://github.com/Codeinwp/optimole-wp/commit/2caae7f2caae7f](https://github.com/Codeinwp/optimole-wp/commit/2caae7f](https://github.com/Codeinwp/optimole-wp/commit/2caae7f))
346 * image replacement on json strings with html entities encoded, conflicting with variation form Woocommerce fixes [](https://github.com/Codeinwp/optimole-wp/issues/81#81](https://github.com/Codeinwp/optimole-wp/issues/81](https://github.com/Codeinwp/optimole-wp/issues/81) ([](https://github.com/Codeinwp/optimole-wp/commit/2bae7412bae741](https://github.com/Codeinwp/optimole-wp/commit/2bae741](https://github.com/Codeinwp/optimole-wp/commit/2bae741))
347 * lazyload animation conflict with initial image animation ([](https://github.com/Codeinwp/optimole-wp/commit/3a842503a84250](https://github.com/Codeinwp/optimole-wp/commit/3a84250](https://github.com/Codeinwp/optimole-wp/commit/3a84250))
348 * lazyload on image which uses relative urls ([](https://github.com/Codeinwp/optimole-wp/commit/46559944655994](https://github.com/Codeinwp/optimole-wp/commit/4655994](https://github.com/Codeinwp/optimole-wp/commit/4655994))
349 * lazyload placeholder replacement affecting non-src urls, improving compatibility with Woocommerce ([](https://github.com/Codeinwp/optimole-wp/commit/7e13a327e13a32](https://github.com/Codeinwp/optimole-wp/commit/7e13a32](https://github.com/Codeinwp/optimole-wp/commit/7e13a32))
350 * noscript image tag issue causing problems with too specific CSS selectors ([](https://github.com/Codeinwp/optimole-wp/commit/324effd324effd](https://github.com/Codeinwp/optimole-wp/commit/324effd](https://github.com/Codeinwp/optimole-wp/commit/324effd))
351 * relative url image replacement conflicting with plugins like WPML ([](https://github.com/Codeinwp/optimole-wp/commit/7a478277a47827](https://github.com/Codeinwp/optimole-wp/commit/7a47827](https://github.com/Codeinwp/optimole-wp/commit/7a47827))
352 * thumbnails cropping mode not affecting the resulting optimole images ([](https://github.com/Codeinwp/optimole-wp/commit/0f6dacb0f6dacb](https://github.com/Codeinwp/optimole-wp/commit/0f6dacb](https://github.com/Codeinwp/optimole-wp/commit/0f6dacb))
353
354 * **Features**
355 * adds constant to disable latest images area ([](https://github.com/Codeinwp/optimole-wp/commit/a5891b6a5891b6](https://github.com/Codeinwp/optimole-wp/commit/a5891b6](https://github.com/Codeinwp/optimole-wp/commit/a5891b6))
356 * adds constant to switch on/off network based optimization ([](https://github.com/Codeinwp/optimole-wp/commit/1accde51accde5](https://github.com/Codeinwp/optimole-wp/commit/1accde5](https://github.com/Codeinwp/optimole-wp/commit/1accde5))
357 * adds full compatibility with Beaver Builder, processing images from the generated css ([](https://github.com/Codeinwp/optimole-wp/commit/2a17f302a17f30](https://github.com/Codeinwp/optimole-wp/commit/2a17f30](https://github.com/Codeinwp/optimole-wp/commit/2a17f30))
358
359
360
361 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.3...v2.0.4Version 2.0.4](https://github.com/Codeinwp/optimole-wp/compare/v2.0.3...v2.0.4](https://github.com/Codeinwp/optimole-wp/compare/v2.0.3...v2.0.4) (2019-03-11)
362
363 * **Bug Fixes**
364 * adds full compatibility with Envira gallery ([](https://github.com/Codeinwp/optimole-wp/commit/7fd618f7fd618f](https://github.com/Codeinwp/optimole-wp/commit/7fd618f](https://github.com/Codeinwp/optimole-wp/commit/7fd618f))
365 * compatibility with Foogallery plugin when the gallery uses lazyload too ([](https://github.com/Codeinwp/optimole-wp/commit/67991dc67991dc](https://github.com/Codeinwp/optimole-wp/commit/67991dc](https://github.com/Codeinwp/optimole-wp/commit/67991dc))
366 * compatibility with images which contains query arguments, causing broken image urls ([](https://github.com/Codeinwp/optimole-wp/commit/56108be56108be](https://github.com/Codeinwp/optimole-wp/commit/56108be](https://github.com/Codeinwp/optimole-wp/commit/56108be))
367 * compatibility with relative image urls ([](https://github.com/Codeinwp/optimole-wp/commit/80896108089610](https://github.com/Codeinwp/optimole-wp/commit/8089610](https://github.com/Codeinwp/optimole-wp/commit/8089610))
368 * compatibility with Revolution slider, adds support for background images lazyload and exact match ([](https://github.com/Codeinwp/optimole-wp/commit/0bbd2540bbd254](https://github.com/Codeinwp/optimole-wp/commit/0bbd254](https://github.com/Codeinwp/optimole-wp/commit/0bbd254))
369 * compatibility with shortcode ultimate plugin ([](https://github.com/Codeinwp/optimole-wp/commit/164ba35164ba35](https://github.com/Codeinwp/optimole-wp/commit/164ba35](https://github.com/Codeinwp/optimole-wp/commit/164ba35))
370 * compatibility with Woocommerce, solving issue with zoom image on single product pages ([](https://github.com/Codeinwp/optimole-wp/commit/1692e2b1692e2b](https://github.com/Codeinwp/optimole-wp/commit/1692e2b](https://github.com/Codeinwp/optimole-wp/commit/1692e2b))
371 * image replacement on WordPress REST api responses ([](https://github.com/Codeinwp/optimole-wp/commit/24d191b24d191b](https://github.com/Codeinwp/optimole-wp/commit/24d191b](https://github.com/Codeinwp/optimole-wp/commit/24d191b))
372 * image url replacement on custom WordPress directory structure, fixes [](https://github.com/Codeinwp/optimole-wp/issues/79#79](https://github.com/Codeinwp/optimole-wp/issues/79](https://github.com/Codeinwp/optimole-wp/issues/79), thanks [](https://github.com/hackles@hackles](https://github.com/hackles](https://github.com/hackles) for reporting ([](https://github.com/Codeinwp/optimole-wp/commit/980fcef980fcef](https://github.com/Codeinwp/optimole-wp/commit/980fcef](https://github.com/Codeinwp/optimole-wp/commit/980fcef))
373
374 * **Features**
375 * tested up compatibility with WordPress 5.1 ([](https://github.com/Codeinwp/optimole-wp/commit/12726b612726b6](https://github.com/Codeinwp/optimole-wp/commit/12726b6](https://github.com/Codeinwp/optimole-wp/commit/12726b6))
376 * **api:** adds filter for restricting watermark based on image source urls ([](https://github.com/Codeinwp/optimole-wp/commit/337d7fa337d7fa](https://github.com/Codeinwp/optimole-wp/commit/337d7fa](https://github.com/Codeinwp/optimole-wp/commit/337d7fa))
377 * **api:** adds filter to disable image replacement on a specific page/ur ([](https://github.com/Codeinwp/optimole-wp/commit/3250a8d3250a8d](https://github.com/Codeinwp/optimole-wp/commit/3250a8d](https://github.com/Codeinwp/optimole-wp/commit/3250a8d))
378
379
380
381 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.2...v2.0.3Version 2.0.3](https://github.com/Codeinwp/optimole-wp/compare/v2.0.2...v2.0.3](https://github.com/Codeinwp/optimole-wp/compare/v2.0.2...v2.0.3) (2019-02-13)
382
383 * **Bug Fixes**
384 * adds whitelisted websites among the image urls to replace ([](https://github.com/Codeinwp/optimole-wp/commit/bfb016ebfb016e](https://github.com/Codeinwp/optimole-wp/commit/bfb016e](https://github.com/Codeinwp/optimole-wp/commit/bfb016e))
385 * allow image urls that does not contain scheme, either http or https ([](https://github.com/Codeinwp/optimole-wp/commit/2aae6642aae664](https://github.com/Codeinwp/optimole-wp/commit/2aae664](https://github.com/Codeinwp/optimole-wp/commit/2aae664))
386 * anchor tags image replacement, conflicting with gallery plugins ( NextGen ) ([](https://github.com/Codeinwp/optimole-wp/commit/824acdc824acdc](https://github.com/Codeinwp/optimole-wp/commit/824acdc](https://github.com/Codeinwp/optimole-wp/commit/824acdc))
387 * compatibility when jetpack photon is on, fetch directly the image source ([](https://github.com/Codeinwp/optimole-wp/commit/f339dbbf339dbb](https://github.com/Codeinwp/optimole-wp/commit/f339dbb](https://github.com/Codeinwp/optimole-wp/commit/f339dbb))
388 * cropping behaviour when lazyload is off for certain edge causing incorrect image resize ([](https://github.com/Codeinwp/optimole-wp/commit/8aca6dc8aca6dc](https://github.com/Codeinwp/optimole-wp/commit/8aca6dc](https://github.com/Codeinwp/optimole-wp/commit/8aca6dc))
389 * doubled image bug, detect if image tag has already lazyload applied and bail for Optimole lazyload ([](https://github.com/Codeinwp/optimole-wp/commit/bea5ac8bea5ac8](https://github.com/Codeinwp/optimole-wp/commit/bea5ac8](https://github.com/Codeinwp/optimole-wp/commit/bea5ac8))
390 * image replacement on admin ajax requests ([](https://github.com/Codeinwp/optimole-wp/commit/924cc49924cc49](https://github.com/Codeinwp/optimole-wp/commit/924cc49](https://github.com/Codeinwp/optimole-wp/commit/924cc49))
391 * image url replacement on non whitelisted urls ([](https://github.com/Codeinwp/optimole-wp/commit/8567f8b8567f8b](https://github.com/Codeinwp/optimole-wp/commit/8567f8b](https://github.com/Codeinwp/optimole-wp/commit/8567f8b))
392 * JSON strings url replacement, improves elementor's compatibility ([](https://github.com/Codeinwp/optimole-wp/commit/2ff9e9b2ff9e9b](https://github.com/Codeinwp/optimole-wp/commit/2ff9e9b](https://github.com/Codeinwp/optimole-wp/commit/2ff9e9b))
393 * lazyload replacement when image source is in data-src attributes, solving conflict with some gallery plugins ([](https://github.com/Codeinwp/optimole-wp/commit/c26cdabc26cdab](https://github.com/Codeinwp/optimole-wp/commit/c26cdab](https://github.com/Codeinwp/optimole-wp/commit/c26cdab))
394
395 * **Documentation**
396 * adds faq for ajax content, remove lqip and fixed typo for plugin tags ([](https://github.com/Codeinwp/optimole-wp/commit/104a17e104a17e](https://github.com/Codeinwp/optimole-wp/commit/104a17e](https://github.com/Codeinwp/optimole-wp/commit/104a17e))
397
398
399
400 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.1...v2.0.22.0.2](https://github.com/Codeinwp/optimole-wp/compare/v2.0.1...v2.0.2](https://github.com/Codeinwp/optimole-wp/compare/v2.0.1...v2.0.2) (2019-02-01)
401
402
403 **Bug Fixes**
404
405 * dashboard app loading issues for some wordpress environments ([](https://github.com/Codeinwp/optimole-wp/commit/293e277293e277](https://github.com/Codeinwp/optimole-wp/commit/293e277](https://github.com/Codeinwp/optimole-wp/commit/293e277))
406
407 * disable srcset attribute when the javascript resizer and lazyload is active, being redundant ([](https://github.com/Codeinwp/optimole-wp/commit/76c030776c0307](https://github.com/Codeinwp/optimole-wp/commit/76c0307](https://github.com/Codeinwp/optimole-wp/commit/76c0307))
408
409 * domain validation when www is present in the image urls, thanks [](https://github.com/wpriders@wpriders](https://github.com/wpriders](https://github.com/wpriders) team for reporting ([](https://github.com/Codeinwp/optimole-wp/commit/9559ce59559ce5](https://github.com/Codeinwp/optimole-wp/commit/9559ce5](https://github.com/Codeinwp/optimole-wp/commit/9559ce5))
410
411 * image resize when the size class is not available, get cropping based on the width/height of the resulting image ([](https://github.com/Codeinwp/optimole-wp/commit/e5c1aabe5c1aab](https://github.com/Codeinwp/optimole-wp/commit/e5c1aab](https://github.com/Codeinwp/optimole-wp/commit/e5c1aab))
412
413
414
415 **Documentation**
416
417 * improve readme description of the OptiMole service ([](https://github.com/Codeinwp/optimole-wp/commit/e020300e020300](https://github.com/Codeinwp/optimole-wp/commit/e020300](https://github.com/Codeinwp/optimole-wp/commit/e020300))
418
419
420
421 **Features**
422
423 * adds upgrade box and notice to upgrade when the user is close to the limit ([](https://github.com/Codeinwp/optimole-wp/commit/62b216a62b216a](https://github.com/Codeinwp/optimole-wp/commit/62b216a](https://github.com/Codeinwp/optimole-wp/commit/62b216a))
424
425
426 #### [](https://github.com/Codeinwp/optimole-wp/compare/v2.0.0...v2.0.12.0.1](https://github.com/Codeinwp/optimole-wp/compare/v2.0.0...v2.0.1](https://github.com/Codeinwp/optimole-wp/compare/v2.0.0...v2.0.1) (2019-01-21)
427
428
429 **Bug Fixes**
430
431 * fix javascript library production url ([](https://github.com/Codeinwp/optimole-wp/commit/aed9433aed9433](https://github.com/Codeinwp/optimole-wp/commit/aed9433](https://github.com/Codeinwp/optimole-wp/commit/aed9433))
432
433
434
435
436
437
438 ### [](https://github.com/Codeinwp/optimole-wp/compare/v1.1.2...v2.0.02.0.0](https://github.com/Codeinwp/optimole-wp/compare/v1.1.2...v2.0.0](https://github.com/Codeinwp/optimole-wp/compare/v1.1.2...v2.0.0) (2019-01-21)
439
440
441 #### Bug Fixes
442
443 * errors on low PHP environments when PHP_INT_MIN constant is not available ([](https://github.com/Codeinwp/optimole-wp/commit/44eb4af44eb4af](https://github.com/Codeinwp/optimole-wp/commit/44eb4af](https://github.com/Codeinwp/optimole-wp/commit/44eb4af))
444
445 * fix tag replacement on lazy load, preserve image size when found ([](https://github.com/Codeinwp/optimole-wp/commit/5c6ef705c6ef70](https://github.com/Codeinwp/optimole-wp/commit/5c6ef70](https://github.com/Codeinwp/optimole-wp/commit/5c6ef70))
446
447 * improve image size replacement mapping for custom image sizes ([](https://github.com/Codeinwp/optimole-wp/commit/d816ccbd816ccb](https://github.com/Codeinwp/optimole-wp/commit/d816ccb](https://github.com/Codeinwp/optimole-wp/commit/d816ccb))
448
449 * improve lazyload fade in effect, fixes [](https://github.com/Codeinwp/optimole-wp/issues/71#71](https://github.com/Codeinwp/optimole-wp/issues/71](https://github.com/Codeinwp/optimole-wp/issues/71) ([](https://github.com/Codeinwp/optimole-wp/commit/eb0f76ceb0f76c](https://github.com/Codeinwp/optimole-wp/commit/eb0f76c](https://github.com/Codeinwp/optimole-wp/commit/eb0f76c))
450
451 * possible issue with image replacement not taking place when other buffer handler is registered ([](https://github.com/Codeinwp/optimole-wp/commit/3ce600a3ce600a](https://github.com/Codeinwp/optimole-wp/commit/3ce600a](https://github.com/Codeinwp/optimole-wp/commit/3ce600a))
452
453 * resize behaviour for WordPress defined image sizes, preserve cropping for custom sizes ([](https://github.com/Codeinwp/optimole-wp/commit/a42f830a42f830](https://github.com/Codeinwp/optimole-wp/commit/a42f830](https://github.com/Codeinwp/optimole-wp/commit/a42f830))
454
455
456
457 #### Documentation
458
459 * add basic faq to readme file ([](https://github.com/Codeinwp/optimole-wp/commit/2c09d262c09d26](https://github.com/Codeinwp/optimole-wp/commit/2c09d26](https://github.com/Codeinwp/optimole-wp/commit/2c09d26))
460
461 * adds contributor related docs and github templates ([](https://github.com/Codeinwp/optimole-wp/commit/c7bbce2c7bbce2](https://github.com/Codeinwp/optimole-wp/commit/c7bbce2](https://github.com/Codeinwp/optimole-wp/commit/c7bbce2))
462
463
464
465 #### Features
466
467 * adds new service schema ([](https://github.com/Codeinwp/optimole-wp/commit/330fba0330fba0](https://github.com/Codeinwp/optimole-wp/commit/330fba0](https://github.com/Codeinwp/optimole-wp/commit/330fba0))
468
469 * adds watermark integration along with various options for watermark position ([](https://github.com/Codeinwp/optimole-wp/commit/6a4538a6a4538a](https://github.com/Codeinwp/optimole-wp/commit/6a4538a](https://github.com/Codeinwp/optimole-wp/commit/6a4538a))
470
471 * deactivate plugin on lower php versions, adds notice for PHP for upgrade ([](https://github.com/Codeinwp/optimole-wp/commit/58d260758d2607](https://github.com/Codeinwp/optimole-wp/commit/58d2607](https://github.com/Codeinwp/optimole-wp/commit/58d2607))
472
473
474
475 #### Performance Improvements
476
477 * improve srcset replacement, use attachement id when present ([](https://github.com/Codeinwp/optimole-wp/commit/55872215587221](https://github.com/Codeinwp/optimole-wp/commit/5587221](https://github.com/Codeinwp/optimole-wp/commit/5587221))
478
479 * improve type casting on size constrain ([](https://github.com/Codeinwp/optimole-wp/commit/589b046589b046](https://github.com/Codeinwp/optimole-wp/commit/589b046](https://github.com/Codeinwp/optimole-wp/commit/589b046))
480
481
482
483
484
485 ### 1.1.2 - 2018-12-24 ###
486
487 * Minor fixes to Optimole dashboard page.
488 * Fixes DNS prefetch call when lazyload is off.
489 * Enable lazyload and javascript replacement by default for new users.
490
491
492 ### 1.1.1 - 2018-12-10 ###
493
494 * Improve the lazy loading mechanism and adds compatibility with the new javascript library.
495 * Improve sample images and quality selector integration.
496 * Adds a notice when the Rest API is not available.
497 * Adds notice for new users on how the plugin works.
498 * Tested up with WordPress 5.0, all working smooth.
499 * Fix possible issues with thumbnails when the original image is available on a different url scheme.
500 * Ignore lazyload replacement on feed/amp pages.
501
502
503 ### 1.1.0 - 2018-11-16 ###
504
505 * Integrates lazy load feature with support for low-quality placeholders ( LQIP ).
506 * Integrates Javascript library which delivers images at the right size for each device, including Retina.
507 * Improve image replacement algorithm.
508 * Improves compatibility with Elementor and Gutenberg.
509 * Adds support for Custom CNAME and Client hints.
510 * Improves support for custom CDN.
511 * Improves AMP support.
512 * Improves compatibility with WordPress Multisites.
513
514
515 ### 1.0.5 - 2018-10-05 ###
516
517 * Adds max width/height option.
518 * Improves registration workflow.
519 * Adds image comparison slider ratio.
520 * Adds logo on link preload.
521
522
523 ### 1.0.4 - 2018-10-03 ###
524
525 * Adds in-plugin service registration.
526 * Adds image quality control.
527 * Adds slider for image comparison.
528 * Improvements to UX and workflow.
529
530
531 ### 1.0.3 - 2018-09-26 ###
532
533 * Adds redirect on first install.
534 * Improve elementor assets replacement.
535
536
537 ### 1.0.2 - 2018-09-25 ###
538
539 * Improve compatibility with elementor external css files.
540 * Adds generator tag.
541 * Improve replacer handler hook register.
542
543
544 ### 1.0.1 - 2018-09-23 ###
545
546 * Tag first stable version for wordpress.org.
547
548
549
550 ### 1.0.0 - 2018-09-22 ###
551 * First version of the plugin
552
553 ## Installation ##
554 The following are the steps to install the OptiMole plugin
555
556 1. In your WordPress Administration Panels, click on Add New option under Plugins from the menu.
557 Click on upload at the top.
558 2. Browse the location and select the OptiMole Plugin and click install now.
559 3. Go to Media -> OptiMole and follow in the instructions on how to enable the service.
560
561 ## Frequently Asked Questions ##
562
563 ### How many images I can optimize with each plan? ###
564
565 The number of images that you can optimize or store is unlimited, we care only about the number of visits you have per month.
566
567 ### What happens if I exceed plan limits? ###
568
569 Once you exceed these, we will contact you and kindly ask to upgrade to the plan that fits you best.
570
571 ### What Content Delivery Network (CDN) do you use? ###
572
573 For both FREE and Paid plans we use AWS CloudFront CDN with more than 200 locations around the globe.
574
575 ### I'm already using a CDN, can I use that instead of yours ? ###
576
577 Short answer, YES. We can help you integrate your default CDN but it will require some additional work from our side and is available to Enterprise plans.
578
579 ### I'm already using an image optimization plugin, why should I switch to OptiMole? ###
580
581 You don’t need to change your existing optimization plugin, image optimization is just a small part of what we do, if you are happy with ShortPixel for e.g, feel free to continue to use it, OptiMole would then take care only of serving your image at the RIGHT size, advanced cropping and smart lazy-loading.
582
583 ### Does Optimole handle images from Ajax content ? ###
584
585 Yes, we do. By default, Optimole handle images delivered from your ajax content from admin-ajax.php ( not logged in users ) as well as WordPress REST API routes.
586
587 ### Can I remove the blurry placeholder from the lazyload effect ? ###
588
589 Yes, you can. We have bundled this tweak into a plugin you can install while you have Optimole active. The blurry placeholder will be removed and the images will be still lazy-loaded. You can find the plugin tweak here -> http://bit.ly/optml-rm-lqip
590
591 ### Will the original images be deleted? ###
592
593 Absolutely No. We use your original images as sources when deliver the optimized images.
594
595 ### What is the difference between the Auto, High, Medium, Low compression levels? ###
596
597 A higher compression might result in a small loss of image quality. Selecting the auto level will let Optimole choose the minimum size with no loss in the quality of your picture.
598
599 ### I used Kraken, Shortpixel, Optimus, EWWW or WP Smush, Imagify will OptiMole further optimize my images? ###
600
601 Yes, Optimole will also take care of serving your image at the RIGHT size for your visitors and optimize them to the best possible format for their browser.
602
603 ### Which formats can be optimized ? ###
604
605 For now we support jpg, png and svg format.
606
607 ### Does Optimole automatically serve WebP for Chrome users ? ###
608
609 Yes. We automatically detect user browser and serve WebP if is supported, otherwise we optimize the image in the original format.
610
611 ### Can I disable lazyload for PNG images ? ###
612
613 Yes. You need to add `define("OPTML_DISABLE_PNG_LAZYLOAD",true);` to `your wp-config.php` file.
614
615 ### Can I disable optimization for a certain image ? ###
616
617 Yes, you can follow this code snippet and replace the sample image with the one you need:
618 <code>
619 add_filter('optml_dont_replace_url', function( $old, $url ) {
620 if ( $url === 'https://example.com/wp-content/uploads/2018/09/1.jpg' ) {
621 return true;
622 }
623 return $old;
624
625 }, 10, 2);
626 </code>
627