= 5.6 - Aug 1 2023 = * 🌱**Page Optimize** New JS Delay Includes option. (Mitchell Krog/Gerard Reches/Ignacy Hołoga) * **Crawler** Sitemap can use search for URL now. * **GUI** Restrict the scope of balloon CSS rules to avoid conflicts. (#567) * **Object Cache** Detect Memcached in more situations. (#568) * **API** Support `litespeed_purged_front` hook. (Umberto Fiorelli) = 5.5.1 - Jul 19 2023 = * 🐞**Image Optimization** Fixed a bug where WebP replacements couldn't be pulled without optimizing the original images. * 🐞**Image Optimization** Invalid images will now be removed when sending requests to the server. (#138993) * **Cloud** Added support for error codes `unpulled_images` and `blocklisted`. (Tynan) = 5.5 - Jun 20 2023 = * 🌱**Crawler** Can now use multiple sitemaps. (Tobolo/Tim Nolte) * 🌱**Crawler** Now runs asynchronously when manually invoked. * 🌱**Crawler** Now runs asynchronously when invoked from cron. * 🐞**Crawler** Fixed the realtime status bug when crawling. * **Crawler** Summary page now displays server load. (Ruikai) * 🐞**Page Optimize** Fixed an issue where UCSS could not be generated for error pages. (james58899) #556 * 🌱**Image Optimize** Now pulls images asynchronously. * **Image Optimize** Now prevents concurrent requests via a locking mechanism. * **Image Optimize** The process can now bypass invalid image records and continue. * 🐞**Image Optimize** Fixed an issue where images ready for optimization might have to wait for new images to be added before sending the request. * **Cloud** Replaced dashboard links with login/link to my.quic.cloud actions. * **GUI** Added indicators to show when certain options are passively enabled by Guest Mode. * **Htaccess** Added a noabort rule to support asynchronous crawling. * **Htaccess** The "Do Not Cache User Agents" option is now case-insensitive. (Ellen Dabo) * **General** The "Server IP" option now allows IPv4 format only. (Ruikai) * **Misc** Every page's closing HTML comments now displays UCSS/CCSS status. * **Object** Fixed a warning for null get_post_type_object. * **Object** Object_Cache::delete now always returns a boolean value. * **Cache** Fixed advanced-cache.php file warnings for WordPress versions less than 5.3. * **Debug** Added debug logging to record the plugin's total processing time. * **API** HTML minification can now be bypassed via the litespeed_html_min filter. = 5.4 - Apr 19 2023 = * **Image Optimize** Refactored DB storage for this feature. * **Image Optimize** Reduced DB table size. * **Image Optimize** Existing `img_optm` DB tables will have their data gradually transitioned to the new storage format with this update. Once an `img_optm` table is empty, it won't be used anymore. * **Page Optimize** Enabled WebP support for Googlebot User Agent. = 5.3.3 - Feb 22 2023 = * **Page Optimize** Excluded Jetpack stats JS. * **DB Optimize** Fixed DB Optm SQL for revision postmeta. * **Cache** Fixed an undefined array key warning. * **Purge** Prevented undefined array key warning when widgets are disabled. * **Object** Fixed dynamic property deprecation warnings. * **Admin** Safely redirect to homepage if referer is unknown. * **Activation** Check that item slug exists first. * **Cache** Prevented cache header to send globally if header part already closed. * **CSS** Improved string handling for CSS minifier. * **Debug** Fixed undefined array key warnings. * **Misc** Fixed implicit conversion in random string generation function `Str::rrand`. = 5.3.2 - Jan 10 2023 = * **Object** Fixed object cache lib incr, decr functions (thanks bdrbros/DANIEL) #516 * **Database Optimize** Database optimizer now handles postmeta when cleaning revisions #515 * **Cache** Made nocache the default for 4xx/5xx response codes. * **Cache** Default cache TTL settings removed for 403 response code, changed to 10 mins for 500 response code. * **GUI** Added a description for the redetect nodes function. * **GUI** Added a description for the refresh button sync function. = 5.3.1 - Dec 12 2022 = * **CLI** Presets feature is now usable from the CLI. (xLukii) * **CLI** Added 'import_remote' for litespeed-option to enable importing options from URLs. (xLukii) * **Cache** Added LiteSpeed headers to site health check for full page cache. * **Crawler* Fixed unauthorized crawler toggle operation. (#CVE-2022-46800) * **UCSS** Fixed a bug where items weren't added back to the UCSS queue after purging. * **Page Optimize** Fixed a bug where generated CSS would return 404 after upgrading via CLI. * **3rd** Fixed a bug where a WooCommerce session doesn't exist when checking cart, notices (Jason Levy/Gilles) * **GUI** Made LiteSpeed admin notice icon grayscale to avoid distraction. (martinsauter) * **GUI** Fixed RTL style for notification icon. * **API** Added a new hook `litespeed_optm_uri_exc` to exclude URI from page optimization. * **API** Excluded `.well-known` path from page optimization. = 5.3 - Oct 31 2022 = * 🌱**Presets** New `Presets` feature and menu item. * 🌱**UCSS** New option `UCSS File Excludes and Inline` to increase page score. (Ankit) * **UCSS** When UCSS is purged, automatically append URL to UCSS generation queue. (Ankit) * **Page Optimize** Removed a redundant `defer` attribute from Lazy Load image library usage. (#928019) * **Image Optimize** Dropped `Create WebP Versions` setting. Will automatically enable when `Image WebP Replacement` is activated. * **Cloud** Fixed a bug where internal updates were delayed for API keys. * **Cloud** Improved auto alias feature by waiting for second request from alias domain validation before removing a pending alias. * **Purge** Automatically Purge All when plugin auto update is done. * **Purge** Fixed a potential PHP8 error that occurred when removing unused widgets. (acsnaterse) * **Cache** Fixed an infinite 301 redirection caused by UTM-encoded link. * **CLI** Added syntax examples for values that include line breaks (xLukii) * **CLI** Purge requests will now be included with the original request to avoid potential CSS/JS 404 issues. * **ESI** Check all user roles for cache vary and page optimization excludes. * **GUI** Added a LiteSpeed icon to admin message banners to indicate the banners are from our plugin. (Michael D) * **Crawler** Fixed a cache-miss issue that occurred when Guest Mode was ON and WebP Replacement was OFF. * **3rd** Remove WooCommerce private cache. * **3rd** Removed LiteSpeed metabox from ACF field group edit page. (keepmovingdk) = 5.2.1 - Sep 7 2022 = * 🐞**Core** Fixed a fatal error that occurred when uninstalling. (#894556 Hostinger) * **Dash** Show partner info on the dashboard for partner-tier QC accounts. * **UCSS** Auto-purge UCSS on post update. (Ankit) * 🕸️**Crawler** Respect the `LITESPEED_CRAWLER_DISABLE_BLOCKLIST` constant for unexpected results too. (Abe) = 5.2 - Aug 17 2022 = * 🌱**UCSS** Added UCSS message queue to improve service quality and reliability * 🐞**VPI** Fixed conflict w/ image lazyload; used HTML before image lazyload to avoid invalid `data:base64` results. * **VPI** Changed VPI Cron default setting to OFF. * **VPI** Automatically resend requests when VPI result contains invalid `data:` image value. * **Conf** Fixed an issue with URI Excludes, where paths using both ^ and $ were not correctly excluded (Eric/Abe) * **Conf** Auto corrected `WP_CONTENT_URL` protocol if it was explicitly set to `http://`. * **Cloud** No longer sync the configuration to QUIC.cloud if configuration is unchanged. * **Cloud** Appended home_url value into synced configuration data for wp-content folder path correction. * 🕸️**Crawler** Improved compatibility with server `open_basedir` PHP setting limit when detecting load before crawling. (Tom Robak/mmieszalski) = 5.1 - Aug 1 2022 = * 🌱**Toolbox** Debug log can now show Purge/Crawler logs as well. (Tynan) * **UCSS** Prepared for future message queue. * **UCSS** Moved UCSS class to its own file. * **3rd** Added 3rd-party support for WC PDF Product Vouchers. (Tynan) * **Core** Fixed potential PHP warning when saving summary data. (Sarah Richardson) * **Purge** Purge can now clear the summary correctly. (Kevin) * **VPI** Added `queue_k` to API notification. = 5.0.1 - Jul 27 2022 = * 🐞**Cloud** Fixed a potential PHP error that could occur with the cloud service summary. (Bruno Cantuaria) * **3rd** Added Autoptimize back to compatibility list. = 5.0.0.1 - Jul 26 2022 = * 🔥🐞**Cloud** Fixed an issue with the cloud request timestamp update which causes a usage sync failure. (great thanks to Kevin) = 5.0 - Jul 25 2022 = * 🌱**VPI** Added Viewport Images feature to LiteSpeed Options metabox on Post Edit page. * 🌱**CDN** Added Auto CDN Setup feature for simple QUIC.cloud CDN setup. (Kevin) * 🌱**Page Optimize** Automatically cache remote CSS/JS files when fetching for optimization (Lauren) * 🌱**Cache** Added LiteSpeed Options for page-level cache control on Post Edit page. (denisgomesfranco) * 🌱**Cloud** Auto Alias feature. * 🌱**Debug** Added `Debug String Excludes` option. (Hanna) * 🌱**UCSS** Added `Purge this page - UCSS` option to Admin Bar dropdown menu. (Ankit) * 🌱**Guest** Added `litespeed_guest_off=1` URL query string parameter to bypass Guest Mode. (cbdfactum) * 🐞**Page Optimize** Fixed an issue where CSS anchors could be wrongly converted to a full path when minifying. (Tynan) * **Page Optimize** Bypass CCSS/UCSS generation when a self-crawled CSS resource returns a 404 code. (Abe) * **Object** Allow `LSCWP_OBJECT_CACHE` predefined to turn off Object Cache. (knutsp) * **Data** Fixed an issue where empty version tags in the database repeatedly toggled the upgrade banner and reset settings to default. * **Purge** Fixed an issue where the site's index page could be purged upon deletion of an unviewable post. (Kevin) * **Toolbox** Added `View site before optimization` button under `Debug` tab. (Ryan D) * **Admin** Switch to using the `DONOTCACHEPAGE` constant to indicated WP-Admin pages are not cacheable. * **Admin** Moved no-cache header to very beginning to avoid caching unexpected exits. * **Cloud** Added message queue service for VPI. (Abe) * **Cloud** Bypassed 503 error nodes from node redetection process. (Abe) * **Cloud** Fixed a failure to detect `out_of_quota`. (Lauren) * **Cloud** Added ability to display dismissable banners generated by QUIC.cloud. * 🕸️**Crawler** Added realtime load detection before crawl. * 🕸️**Crawler** Adjusted crawler behavior for Divi pages to allow for Divi's CCSS generation process. (miketemby) * 🕸️**API** PHP constant `LITESPEED_CRAWLER_DISABLE_BLOCKLIST` and filter `litespeed_crawler_disable_blocklist` to disable blocklist. (Tobolo) * **CDN** Automatically add a trailing slash to `CDN URL` and `Original URLs` if user didn't provide one. (Lucas) * **Cache** When a URL redirects to a URL with a query string, consider these as different for caching purposes. (Shivam) * **Media** Added ability to disable lazyload from the LiteSpeed Options metabox on Post Edit page. * **Media** Added new default values to `WebP Attribute to Replace` setting for WPBakery and Slider Revolution. (JibsouX) * **Image Optimize** Dropped redundant `Page Speed` user agent when serving WebP images. (serpentdriver) * **GUI** Fixed an issue where manually dismissable admin messages were instead being treated as one-time messages. (Tynan Beatty) * **GUI** Fixed an issue where subsequent admin alerts would overwrite existing alerts in the queue. (Kevin/Tynan) * **GUI** Updated time offset in log. (Ruikai #PR444 #PR445) * **GUI** Added `litespeed_media_ignore_remote_missing_sizes` API description. * **CCSS** Fixed an issue where CCSS was unexpectedly bypassed if `CSS Combine` was OFF and `UCSS Inline` was ON. (Ruikai) * **Debug** Added response headers to debug log. (Kevin) = 4.6 - Mar 29 2022 = * **Page Optimize** Improved compatibility for JS Delay. * 🐞**Page Optimize** Fixed an issue for network subsites that occurred when only CSS/JS Minify are enabled. * **Localization** Added query string compatibility for Resource URLs. * **Vary** Fixed a potential PHP warning when server variable `REQUEST_METHOD` is not detected. * **Cache** Guest Mode now respects Cache Excludes settings. * **GUI** Added warning notice when enabling `Localize Resources` feature; each localized JS resource requires thorough testing! * **GUI** Fixed a PHP Deprecated warning that occurred with the Mobile Cache User Agent setting on PHP v8.1+. (jrmora) * **Conf** Removed Google related scripts from default `Localization Files` value. * **Media** WordPress core Lazy Load feature is now automatically disabled when LiteSpeed Lazy Load Images option is enabled. (VR51 #Issue440) * 🐞**API** Filter `litespeed_ucss_per_pagetype` for UCSS now also applies to CSS Combine to avoid UCSS failure. (Ankit) * **API** Added a filter `litespeed_media_ignore_remote_missing_sizes` to disable auto detection for remote images that are missing dimensions. (Lucas) = 4.5.0.1 - Feb 24 2022 = * 🔥🐞**Media** Fixed an issue where lazy-loaded images would disappear when using custom CSS image loading effects. = 4.5 - Feb 23 2022 = * 🌱**Page Optimize** Localization is back. * **Guest** Fixed organic traffic issue as different browsers may fail to set `document.referrer`. * **Image Optimize** Improved wp_postmeta table compatibility when gathering images. (Thanks to Thomas Stroemme) * 🐞**Page Optimize** Fixed a potential CSS/JS 404 issue for existing records that have been marked as expired. * **ESI** `LITESPEED_ESI_OFF` now affects `litespeed_esi_url` API filter too. * **Guest** Added a check to determine if Guest Mode is blocked by a third-party, and display warning if it is (Ruikai) * **Guest** To support WP sites with multiple domains, Guest Mode detection URL no longer uses domain. * **Report** Network now shows Toolbox page when having a large number of subsites. * **DB Optimize** Reduced default subsites count from 10 to 3 under Network Admin -> DB Optimize page to avoid timeout. * **Cloud** Fixed potential `lack_of_token` error when requesting domain key for cases where local summary value was not historically included in the array. * **Cloud** Fixed a PHP fatal error that occurred when encountering a frequency issue under CLI. (Dean Taylor #Issue410) * **Avatar** Force gravatar cache refresh in browsers and on CDN (rafaucau #PR430) * **API** New filter `litespeed_purge_ucss` to purge a single page UCSS. (#376681) * **API** New filter `litespeed_ucss_per_pagetype` for UCSS per page type generation. (Ankit) * **GUI** Replaced some GUI text and settings with more inclusive language (kebbet #PR437 #PR435) * **3rd** Excluded `WP Statistics` from inline JS optimize. (Ryan D) * **3rd** Added API filter `litespeed_3rd_aelia_cookies` for Aelia CurrencySwitcher. * **Media** Updated image lazyload library to 17.5.0. = 4.4.7 - Jan 11 2022 = * **Page Optimize** Dropped `Inline Lazy Load Images Library` option. Now will always inline lazyload library. (Ankit) * **3rd** Prevented JavaScript files from being appended to Rank Math SEO sitemap. * **Purge** Dropped default stale purge when purging a post. * **Cloud** Dropped unused API calls. * **Cloud** Dropped redundant IP validation in API calls. = 4.4.6 - Dec 27 2022 = * **Guest** Restored `document.referrer` for organic traffic purposes when Guest Mode is enabled. (michelefns) * **Image Optimize** Fixed a potential PHP notice when uploading images in WP w/ PHP7.4+. (titsmaker) * **ESI** Fixed an issue where ESI settings were not updated on customized widgets(#422 Abe) * **3rd** Reverted ESI Adminbar change on Elementor front pages for backward compatibility (#423 Abe) * **3rd** Fixed an issue where disabling ESI potential caused a PHP warning when using `Perfmatters`. (Jeffrey Zhang) * **Misc** Check whether HTTP_REFERER is set or not before using it in Router class. (#425 Abe) = 4.4.5 - Dec 1 2021 = * **Data** Fixed potential PHP notice when generating CSS/JS optimized files w/ PHP v7.4+. (Sarah Richardson/silencedgd/slr1979) * **API** Added `LITESPEED_ESI_OFF` constant to disable ESI, when defined before the WP `init` hook. * **API** Added `LSCWP_DEBUG_PATH` constant to specify debug log path. (khanh-nt) * 🐞**GUI** Fixed an issue where admin messages were not displayed. (Daniel McD) * **CDN** Used WP remote function to communicate w/ Cloudflare per WP guidance. * **3rd** Added compatibility for Perfmatters plugin's script manager (#417 Abe) * **3rd** Added compatibility for Elementor's Editor button when ESI is on (#418 Abe) = 4.4.4 - Nov 23 2021 = * **Page Optimize** Delay deletion of outdated CSS/JS files for a default of 20 days to avoid 404 errors with cached search engine copies. * **Cache** When caching, no longer send a purge request for CSS/JS removal to avoid cache engine conflicts. * 🐞**Core** Optimized SQL queries while autoloading if expected options are missing; reduced by 7 and 3 queries on backend and frontend respectively. (#396425 Jackson) * **Page Optimize** Fixed a 404 issue that occurred when upgrading the plugin manually, with a package upload or through the plugin manager. (Tobolo/Małgorzata/Abe) * **API** Added `litespeed_ccss_url` and `litespeed_ucss_url` API to manipulate the request URL for CCSS and UCSS. * **REST** Fixed a potential warning when detecting cacheable status on REST call. (rafaucau) * **OLS** Fixed an issue where the `COOKIEHASH` constant was undefined when used with OpenLiteSpeed as an MU plugin or with network activation. * **3rd** Sanitized POST data for nextgengallery. * **Cloud** Sanitized GET data when linking to QUIC.cloud. (#591762 WPScan) = 4.4.3 - Oct 13 2021 = * 🐞**Media** Fixed an issue where WebP is served erroneously under Guest Mode on older versions of Safari. (hash73) * 🐞**Media** Reverted regex change to fix `Lazy Load Image Parent Class Name Excludes` failure. (thpstock) * **Purge** Disabled `Purge Delay` in the optimization process by default. * **Conf** Dropped `.htaccess Path Settings` options for security concern. (WP) * **Conf** Dropped `CSS HTTP/2 Push`/`JS HTTP/2 Push` options. (Kevin) * **Conf** Set `Guest Optimization` default to OFF. * **Conf** Set `CCSS Per URL` default to OFF to avoid consuming more quota than intended after upgrade to v4. (n111) * **Object** Fixed an issue with Object Cache warnings during upgrade, when Guest Mode is enabled. * ☁️**Cloud** Fixed an issue with PHP notices when inquiring about quota usage for a service not currently in use. * **GUI** Added GO detail warning. (n111) * **GUI** Moved "quota will be still in use" warning from Guest Mode to Guest Optimization section. * **API** Added `LITESPEED_CFG_HTACCESS` PHP Constant to specify .htaccess path. * **API** Added `litespeed_qs_forbidden` hook to bypass `?LSCWP_CTRL=` query string. (minhduc) * **API** Added `litespeed_delay_purge` hook to delay the following Purge header until the next request. * **API** Added `litespeed_wpconfig_readonly` hook to disable `WP_CACHE` constant update based on the wp-config.php file. (#633545) = 4.4.2 - Sep 23 2021 = * **Purge** In order to clear pages containing 404 CSS/JS, the purge header will always be sent even in cases where purge must be delayed. * 🐞**Purge** Fixed a potential PHP warning caused when generating different optimized filenames. * **Cron** Dropped unnecessary HTML response in cron which sometimes resulted in wp-cron report email. (Gilles) * **Page Optimize** Purge caused by CSS/JS file deletion will now be silent. * **Page Optimize** Fixed an issue where the homepage failed to purge when addressing the 404 CSS/JS issue. * **Avatar** Fixed potential localized Avatar folder creation warning. (mattk0220/josebab) * **API** Added filter `litespeed_optm_html_after_head` to move all optimized code(UCSS/CCSS/Combined CSS/Combined JS) to be right before the `` tag. (ducpl/Kris Regmi) * **Debug** Under debug mode, cache/purge tags will be plaintext. = 4.4.1 - Sep 16 2021 = * 🐞**ESI** Fixed ESI failure on non-cached pages caused by `DONOTCACHEPAGE` constant. * 🐞**Page Optimize** Fixed an issue where the minified CSS/JS file failed to update when the file was changed. (ceap80) * 🐞**Page Optimize** Fixed an issue where the combined CSS/JS file randomly returned a 404 error when visiting the same URL with different query strings. (Abe) * **API** Added `litespeed_const_DONOTCACHEPAGE` hook to control the cache-or-not result of the `DONOTCACHEPAGE` constant. = 4.4 - Sep 8 2021 = * 🌱**Crawler** Added the ability to enable or disable specific crawlers. (⭐ Contributed by Astrid Wang #PR390) * 🌱**UCSS** Added `UCSS Inline` option. (Ankit). * 🌱**UCSS** Added `UCSS URI Excludes` option. (RC Verma). * 🐞**Page Optimize** Fixed an issue where combined CSS/JS files would potentially return 404 errors after a Purge All. (Special thanks to Abe & Ruikai) * **Page Optimize** Minimized the potential for 404 errors by query string when Purging All. * **Page Optimize** Dropped redundant query strings for minified CSS/JS files. * **Conf** Ugrade configuration safely to avoid the issue of new functions not being found in old codebase. * **Conf** Configuration upgrade process now adds a notification to admin pages and disables configuration save until upgrade is complete. (Lisa) * **JS** Fixed an issue where JS Defer caused a `litespeed_var_1_ is not defined` error when enabled w/ ESI options. (Tobolo) * 🐞**JS** Fixed an issue where `JS Delay` doesn't work for combined JS when `JS Combine` is enabled. (Special thanks to Joshua & Ankit) * **JS** `JS Delay` now will continue loading JS, even if there is an error in the current JS loading process. * 🐞**CCSS** If CCSS fails to generate, Load CSS Asynchronously will now be disabled. (Stars #54074166) * 🐞**UCSS** If UCSS generation fails the generated error will no longer be served inside the file. (Ryan D) * **Log** Updated the Debug log to use less code for prefix. * **3rd** Always respect `DONOTCACHEPAGE` constant definition to fix DIVI dynamic css calculation process. = 4.3 - Aug 16 2021 = * **UCSS** Separated UCSS Purge from CCSS Purge. (⭐ Contributed by Alice Tang #PR388) * 🐞**Cloud** Fixed an issue where CCSS/UCSS quota data failed to update locally. * **Cloud** Added server load as a factor when detecting node availability. * **Cloud** Improved the speed of checking daily quota and showing the related error message. * **Cloud** Added ability to re-detect node availability if the current node is responding w/ a heavy load code. * **Cloud** CCSS/UCSS/LQIP queue now exits immediately when quota is depleted. * **Cloud** Replaced separate `d/regionnodes` with a single `d/nodes` in the node list API for image optimization. * **LQIP** Fixed an issue with LQIP network compatibility. (⭐ Contributed by Alice Tang #PR387) * **GUEST** JS no longer preloads for Guest Optimization. (Ankit) * 🐞**Data** Fixed an issue where deleting the `cssjs` data folder causes a failure in the upgrade process. (Joshua #PR391) * **GUI** Fixed a potential dashboard PHP warning when no queue existed. (jrmora) * **GUI** Added daily quota on dashboard. * **GUI** Added downgrade warning to Toolbox -> Beta Test. * **GUI** Tuned `.litespeed-desc` class to full width in CSS. * **Conf** `Preserve EXIF/XMP data` now defaults to ON due to copyright concerns. (Tobolo) * 🐞**3rd** Fixed a PHP warning when using Google AMP w/ /amp as structure. (thanhstran98) = 4.2 - Jul 29 2021 = * **Cloud** Auto redirect to a new node if the current node is not available anymore. * **Cloud** Combined CCSS/UCSS to sub services of Page Optimization. * **Cloud** Added a daily quota rate limit to help mitigate the heavy service load at the beginning of the month. * **Cloud** Cached the node IP list in order to speed up security check. (Lucas) * 🐞**GUEST** Fixed an issue where Guest Mode remained enabled even when the UA setting is empty. (Stars) * **GUEST** Guest Mode will no longer cache POST requests. * **UCSS** Purging CSS/JS now purges the UCSS queue as well, to avoid failure when generating UCSS. * **UCSS** Separated service entry `UCSS` from `CCSS`. * **CCSS** Simplified `load_queue/save_queue/build_filepath_prefix` functions. (⭐ Contributed by Alice Tang #PR373) * **CCSS** If CCSS request fails, details are now saved in the CSS file. * **CCSS** Renamed CCSS ID in inline HTML from `litespeed-optm-css-rules` to `litespeed-ccss`. (Alice) * **Page Optimize** CCSS/UCSS now supports Cloud queue/notify for asynchronous generation. * **Page Optimize** Simplified CCSS/UCSS generation function. * **Page Optimize** Added the ability to cancel CCSS/UCSS Cloud requests. * **Page Optimize** Unnecessary quesry strings will now be dropped from CSS/JS combined files. * **Crawler** Reset position now resets crawler running status too. * **REST** Cloud request to REST will now detect whether an IP in in the Cloud IP list for security reasons. * **Object** Enhanced Object Cache compatibility for `CONF_FILE` constant detection. * **API** Added shorter alias `litespeed_tag` and other similar aliases for Cache Tag API. * **API** Renamed `LITESPEED_BYPASS_OPTM` to `LITESPEED_NO_OPTM` for Page Optimization. * **Toolbox** Dropped v3.6.4- versions in Beta Test as they will cause a fatal error in downgrade. * **GUI** Added shortcut links to each section on the Dashboard. * **GUI** Added UCSS whitelist usage description. (wyb) * **GUI** Showed the default recommended values for Guest Mode UA/IPs. * **3rd** Fixed AMP plugin compatibility. (⭐ Contributed by Alice Tang #PR368) * **3rd** Bypassed all page optimization including CDN/WebP for AMP pages. * **3rd** Improved compatibility with All in One SEO plugin sitemap. (arnaudbroes/flschaves #Issue372) * **3rd** Added wsform nonce. (#365 cstrouse) * **3rd** Added Easy Digital Download (EDD) & WP Menu Cart nonce. (#PR366 AkramiPro) * **3rd** Improved compatibility w/ Restrict Content Pro. (Abe #PR370) * **3rd** Improved compatibility w/ Gravity Forms. (Ruikai #371) = 4.1 - Jun 25 2021 = * 🌱**UCSS/CCSS/LQIP** Moved queue storage to file system from database wp-options table to lessen the IO load. (#633504) * 🌱**3rd** Added an option to disable ESI for the WooCommerce Cart. (#358 Anna Feng/Astrid Wang) * **ESI** Fixed an ESI nonce issue introduced in v4.0. (Andrew Choi) * **Object** Used new `.litespeed_conf.dat` instead of `.object-cache.ini` for object cache configuration storage. * **Conf** Now updating related files after plugin upgrade and not just after activation. * 🌱**Guest** Added a Guest Mode JS Excludes option. (Ankit/Mamac/Rcverma) * **Guest** Guest Mode now uses a lightweight script to update guest vary for reduced server load. * **Guest** Guest Mode now adds missing image dimensions. * **Guest** Guest vary will no longer update if there's already a vary in place to address the infinite loop caused by CloudFlare's incorrect cache control setting for PHP. * **Guest** Guest vary update request will no longer be sent if `lscache_vary` is already set. * **Guest** Added a Configurable Guest Mode UA/IP under the Tuning tab in the General menu. * **Guest** Guest Mode now allows cron to be hooked, even when UCSS/CCSS options are off. (#338437 Stars) * **Guest** Simplified the vary generation process under Guest Mode. * **Guest** Added a Guest Mode HTML comment for easier debugging. (Ruikai) * **Guest** Guest vary update ajax now bypasses potential POST cache. * **CCSS** Added back the options `Separate CCSS Cache Post Types` and `Separate CCSS Cache URIs`. (Joshua/Ankit) * **CCSS** CCSS/UCSS queue is now limited to a maximum of 500 entries. * **Control** The cache control constant `LSCACHE_NO_CACHE` will now have a higher priority than the Forced Public Cache setting. * **Crawler** The Crawler can now crawl Guest Mode pages. * **Crawler** Fixed a potential XSS vulnerability in the Crawler settings. (#927355) * **Crawler** The Crawler now supports a cookie value of `_null`. (Tobolo) * **Media** Updated the default value for the Responsive Placeholder SVG to be transparent. * **Media** WebP images in the background may now be served in Guest Mode. * **Media** WebP images in CSS may now be bypassed if the requesting Guest Mode client doesn't support WebP. * **Media** Fixed empty default image placeholder under Guest Mode. * 🐞**Image Optimize** Changed the missing `$_POST` to `$post_data` so the database status is properly updated. (#345 Lucas) * **Import** Export file is now readable to allow importing of partial configurations. (Ryan D/Joshua) * **Page Optimize** Fixed W3 validator errors in Guest Mode. (#61393817) * **3rd** A fatal WooCommerce error is no longer triggered by a custom theme reusing a previous LSCWP cache detection tag. * **3rd** AMP may now bypass Guest Mode automatically. * **Localize** Dropped the `Localize Resources` option as Guest Mode is a sufficient replacement. (Note: Due to user feedback during the development period, we have decided to reinstate this option in a future version.) * **Cloud** Changed the WP API url. * **Lang** Corrected a missing language folder. * **GUI** Added a CCSS/UCSS loading page visualization. (⭐ Contributed by Astrid Wang & Anna Feng #PR360) * **GUI** Added a warning to indicate when Guest Mode CCSS/UCSS quota is in use. (Contributed by Astrid Wang & Anna Feng #PR361) * **GUI** Added a `litespeed-info` text color. (Astrid Wang) * **GUI** Implemented various UI/UX improvements. (Joshua/Lisa) * **GUI** Duplicate cloud service messages with the same content will only display once now. (Marc Dahl) * **GUI** Added a WebP replacement warning for Guest Mode Optimization if WebP replacement is off. * **Misc** Dropped `wp_assets` from distribution to reduce the package size. (lowwebtech) * **Misc** Increased the new version and score detection intervals. * **Misc** Optimized WP Assets images. (#352 lowwebtech) * **Debug** Dropped the redundant error_log debug info. = 4.0 - Apr 30 2021 = * 🌱🌱🌱**Guest** Introduced `Guest Mode` for instantly cacheable content on the first visit. * 🌱**UCSS** Added a new service: `Unique CSS`, to drop unused CSS from elements from combined CSS * 🌱**CCSS** Added `HTML Lazyload` option. (Ankit) * 🌱**CCSS** Added `CCSS Per URL` option to allow Critical CSS to be generated for each page instead of for each Post Type. * 🌱**Media** Added `Add Missing Sizes` setting for improving Cumulative Layout Shift. (Fahim) * 🌱**JS** Switched to new JS minification library for better compression and compatibility w/ template literals. (LuminSol) * **Media** WebP may now be replaced in CSS. * **Media** Can now drop image tags in noscript to avoid lazyload. (Abe #314 /mattthomas-photography) * **Media** Bypass optimization if a page is not cacheable. * **Image Optimize** Auto hook to `wp_update_attachment_metadata` to automate image gathering process, and to handle the new thumbnail generation after images are uploaded. (smerriman). * **Image Optimize** Repeated image thumbnails won't be gathered anymore. * **Image Optimize** Simplified the rescan/gather/upload_hook for existing image detection. * **Image Optimize** Fixed the duplicated optimize size records in the postmeta table. (Abe #315) * **Image Optimize** Allow either JSON POST request or normal form request in `notify_img`. (Lucas #313) * **Image Optimize** Optimized SQL query for better efficiency. (lucas/Lauren) * **Image Optimize** Fixed issue where rescan mass created duplicate images. (#954399) * **Image Optimize** Image optimization pie will not show 100% anymore if there is still a small amount in the unfinished queue. * **Image Optimize** WebP generation defaults to ON for Guest Mode. * **Image Optimize** `Priority Line` package now can have smaller request interval. * **ESI** Disable ESI when page is not cacheable. (titsmaker) * **ESI** Fixed an issue where Divi was disabling all in edit mode, but couldn't disable ESI. (Abe) * **ESI** ESI init moved under `init` hook from `plugin_loaded` hook. * **CDN** Add basic support for CloudFlare API Tokens (Abe #320) * **CSS** Simplified `Font Display Optimization` option. * **CSS** Fixed manual cron timeout issue. (jesse Distad) * **CSS** Inline CSS may now use `data-no-optimize` to be excluded from optimization. (popaionut) * **JS** Combined `Load JS Defer` and `Load Inline JS Defer` options. * **JS** Forced async to defer. * **JS** Moved Google Analytics JS from constant default to setting default for removal. * **JS** Fixed potential JS parsing issue caused by JS src being changed to data-src by other plugins. (ankit) * **JS** Excluded spotlight from JS optimize. (tobolo) * **CCSS** Fixed CCSS/UCSS manual cron timeout issue. * **CCSS** Only 10 items will be kept for CCSS history. * **CCSS** The appearance of CCSS Purge in the topbar menu will be determined by the existence of CCSS cache, and not the setting only. * **CCSS** To avoid stuck queues when the current request keeps failing, the CCSS queue will always drop once requested. * **CCSS** CCSS will no longer hide adminbar. * **CCSS** CCSS may now be separate for network subsites. (Joshua) * **CCSS** Gave CCSS a unique filename per URL per user role per subsite. * **CCSS** Dropped `Separate CCSS Cache Post Types` option. * **CCSS** Dropped `Separate CCSS Cache URIs` option. * **CCSS** Subsites purge Avatar/CSS/JS/CCSS will not affect the whole network anymore. * **CCSS** Implemented a better queue list for CCSS that auto collapses if there are more than 20 entries, and shows the total on top. * **CSSJS** Now using separate CSS and JS folders instead of `cssjs`. * **CSSJS** Automatically purge cache after CCSS is generated. * **Network** Dropped network CSS/JS rewrite rules. * **Cache** Send cache tag header whenever adding a tag to make it effective in the page optimization process. * **Core** Used hook for buffer optimization; Used `init()` instead of `constructor`. * **Object** Used `cls` instead of `get_instance` for init. * **Cloud** Replaced one-time message with a dismissible-only message when the domain key has been automatically cleared due to domain/key dismatch. * **API** Dropped function `hook_vary_add()`. * **API** Dropped function `vary_add()`. * **API** Dropped function `filter_vary_cookies()`. * **API** Dropped function `hook_vary()`. * **API** Dropped action `litespeed_vary_add`. * **API** Dropped filter `litespeed_api_vary`. * **API** Use `litespeed_vary_curr_cookies` and `litespeed_vary_cookies` for Vary cookie operations instead. * **API** Dropped action `litespeed_vary_append`. * **Vary** 3rd party vary cookies will not append into .htaccess anymore but only present in response vary header if in use. * **Vary** Dropped function `append()`. * **Vary** Commenter cookie is now considered cacheable. * **Crawler** Minor update to crawler user agent to accommodate mobile_detect.php (Abe #304) * **Data** Added a table truncate function. * **Data** Added new tables url & url_file. * **Data** Dropped cssjs table. * **Data** Options/Summary data is now stored in JSON format to speed up backend visit. (#233250) * **Data** Default `CSS Combine External and Inline` and `JS Combine External and Inline` to On for new installations for better compatibility. * **Purge** Fixed potential purge warning for certain themes. * **Purge** Purge will be stored for next valid visit to trigger if it is initially generated by CLI. * **Page Optimize** `CSS Combine`/`JS Combine` will now share the same file if the contents are the same. Limited disk usage for better file usage and fewer issues with random string problems. * **Page Optimize** Dropped option CSS/JS Cache TTL. * **Page Optimize** Bypass optimization if page not cacheable. * **Page Optimize** Purge CSS/JS will purge the `url_file` table too. * **Page Optimize** Optionally store a vary with a shorter value. * **Page Optimize** Removing query strings will no longer affect external assets. (ankit) * **Page Optimize** Better regex for optimization parsing. * **Page Optimize** Eliminated w3 validator for DNS prefetch and duplicated ID errors. (sumit Pandey) * **Page Optimize** New Optimization for Guest Only option under Tuning. * **Page Optimize** Now forbidding external link redirection for localization. * **Debug** Implemented a better debug format for the 2nd parameter in the log. * **GUI** Bypass page score banner when score is not detected (both 0). (ankit) * **GUI** Fixed deprecated JQuery function warning in WP-Admin. (krzxsiek) = 3.6.4 - Mar 15 2021 = * **Toolbox** Fixed Beta Test upgrade error when upgrading to v3.7+. = 3.6.3 - Mar 10 2021 = * **Core** Fixed potential upgrade failure when new versions have changes in activation related functions. * **Core** Upgrade process won't get deactivated anymore on Network setup. = 3.6.2 - Feb 1 2021 = * **Page Optimize** Fixed an issue where network purge CSS/JS caused 404 errors for subsites. * **Page Optimize** Fixed an issue where purge CSS/JS only caused 404 errors. * **Page Optimize** Added a notice for CSS/JS data detection and potential random string issue. * **Page Optimize** Limited localization resources to specified .js only. (closte #292/ormonk) * **JS** Data src may now be bypassed from JS Combine. (ankit) * **CLI** Fixed a message typo in Purge. (flixwatchsupport) * **Browser** Added font/otf to Browser Cache expire list. (ruikai) * **Data** Updated data files to accept PR from dev branch only. * **3rd** Add data-view-breakpoint-pointer to js_excludes.txt for the Events Calendar plugin. (therealgilles) * **Cloud** Bypassed invalid requests. * **Doc** CDN Mapping description improvement. (mihai A.) = 3.6.1 - Dec 21 2020 = * **WP** Tested up to WP v5.6. * **WebP** Reverted WebP support on Safari Big Sur and Safari v14.0.1+ due to an inability to detect MacOS versions from UA. (@antomal) * **CDN** Dropped the option `Load JQuery Remotely`. * **CDN** Fixed CDN URL replacement issue in optimized CSS files. (@ankit) * **CDN** Fixed an issue where CDN CLI wouldn't set mapping image/CSS/JS to OFF when `false` was the value. * **CDN** Started using React for CDN Mapping settings. * **GUI** Secured Server IP setting from potential XSS issues. (@WonTae Jang) * **Toolbox** Supported both dev and master branches for Beta Test. Latest version updated to v3.6.1. * **Purge** Purge Pages now can purge non-archive pages too. * **Admin** Simplified the admin JS. * **Admin** Limited crawler-related react JS to crawler page only. = 3.6 - Dec 14 2020 = * 🌱**WebP** Added WebP support on Safari Big Sur or Safari v14.0.1+. (@ruikai) * 🐞**Config** Fixed an issue where new installations were not getting the correct default .htaccess content. * **Crawler** Will auto bypass empty sub-sitemap instead of throwing an exception. (@nanoprobes @Tobolo) * **Crawler** Now using React for Cookie Simulation settings instead of Vue.js. Dropped Vue.js. * **Crawler** Dropped `Sitemap Generation` (will only use 3rd party sitemap for crawler). * **CSS** Added `CSS Combine External and Inline` option for backward compatibility. (@lisa) * **Object** Forbid .object-cache.ini visits. (@Tarik) * **Page Optimize** Dropped `Remove Comments` option to avoid combine error. * **CSS** Added a predefined CSS exclude file `data/css_excludes.txt`. * **CSS** Excluded Flatsome theme random inline CSS from combine. * **CSS** Excluded WoodMart theme from combine. (@moemauphie) * **Page Optimize** Excluded tagDiv.com Newspaper theme dynamic CSS/JS from CSS/JS Combine. * **CSS** Added predefined JS defer excludes list. (@Shivam) * **JS** `data-no-defer` option now supports inline JS. (@rafaucau) * **Media** Lazyload inline library is now bypassed by JS Combine. * **Admin** Fixed WP-Admin console ID duplicate warnings. * **Cloud** Dropped QUIC.cloud sync options that have long been unused. * **CSS** Dropped `Unique CSS File` option (UCSS will always generate unique file, will use whitelist to group post type to one CSS). * **GUI** Dropped Help tab. * **Toolbox** Added 3.5.2 to version list. = 3.5.2 - Oct 27 2020 = * **CSS** `CSS Combine` is now compatible w/ inline noscript CSS. (@galbaras) * **GUI** Added ability to manually dismiss the JS option reset message in v3.5.1 upgrade process. (#473917) * 🐞**CSS** `CSS Excludes` setting will no longer lose items beginning w/ `#`. (@ankit) * **API** New `litespeed_media_reset` API function for image editing purposes. (@Andro) = 3.5.1 - Oct 20 2020 = * **JS** Inline JS containing nonces can now be combined. * **JS** Reset JS Combine/Defer to OFF when upgrading to avoid breaking sites. * **JS** Added new option JS Combine External and Inline to allow backwards compatibility. * **JS** Added Inline JS Defer option back. (@ankit) * **Page Optimize** Dropped Inline JS Minify option and merged the feature into JS Minify. * **JS** Pre-added jQuery to the default JS excludes/defer list for better layout compatibility for new users. * **JS** Excluded Stripe/PayPal/Google Map from JS optimization. (@FPCSJames) * **JS** Allowed excluded JS to still be HTTP2 pushed. (@joshua) * **CCSS** Critical CSS now can avoid network pollution from other sites. (@ankit) * **Toolbox** Beta Test now displays recent public versions so it is easier to revert to an older version * **Vary** Server environment variable Vary can now be passed to original server from QUIC.cloud for non-LiteSpeed servers. * **ESI** Improved backward compatibility for ESI nonce list. (@zach E) * 🐞**Misc** Fixed failure of upgrade button on plugin news banner and made cosmetic improvements. * **Doc** Added note that LSCWP works with ClassicPress. = 3.5.0.2 - Sep 30 2020 = * This is a temporary revert fix. Code is SAME as v3.4.2. = 3.5.0.1 - Sep 29 2020 = * 🔥🐞**CSS** Fixed print media query issue when having CSS Combine. (@paddy-duncan) = 3.5 - Sep 29 2020 = * **Page Optimize** Refactored CSS/JS optimization. * **Page Optimize** CSS and JS Combine now each save to a single file without memory usage issues. * **CSS** Inline CSS Minify is now a part of CSS Minify, and will respect the original priorities. (thanks to @galbaras) * **JS** JS Combine now generates a single JS file in the footer. (Special thanks to @ankit) * **JS** JS Combine now combines external JS files, too. (Thanks to @ankit) * **JS** JS Deferred Excludes now uses the original path/filename as keywords instead of the minified path/filename, when JS Minify is enabled. * **JS** JS Combine now combines inline JS, too. * **JS** JS Excludes may now be used for inline JS snippet. * **Page Optimize** Inline CSS Minify and Max Combined File Size retired due to changes listed above. * **CSS** Combined CSS Priority retired due to changes listed above. * **JS** Exclude JQuery, Combined JS Priority, Load Inline JS Deferred, and Inline JS Deferred Excludes retired due to changes listed above. * **JS** Predefined data file data/js_excludes.txt now available for JS Excludes. * **ESI** Predefined data file data/esi.nonces.txt now available for ESI Nonces. * **ESI** Remote Fetch ESI Nonces functionality retired. * **API** Added support for new litespeed_esi_nonces filter. * **Object** Object Cache will not try to reconnect after failure to connect in a single process. * **CCSS** Remote read CSS will add the scheme if it is missing from the URL. * **CCSS** CSS will no longer be prepared for a URL if 404 result is detected. * **CCSS** Fixed most failures caused by third party CSS syntax errors. * **CCSS** Remote read CSS will fix the scheme if the URL doesn't have it. * **CCSS** Excluded 404 when preparing CSS before request. * **CCSS** Adjusted CCSS timeout from 180 seconds to 30 seconds. * **Image Optimize** Fixed the delete attachment database error that occurred when not using the image optimization service yet. * **Media** Added iOS 14 WebP support. * **Data** Fixed database creation failure for MySQL v8. * **Cloud** Error code err_key will clear the domain key in order to avoid duplicate invalid requests. * **Network** Fixed issue with object cache password file storage that occurred when resaving the settings. (#302358) * **Misc** Fixed IP detect compatibility w/ Apache. * **GUI** Fixed the description for Do Not Cache Categories. * **Preload** Upgraded Instant Click to a new stable preload library. (@stasonua0) = 3.4.2 - Sep 8 2020 = * **CCSS** Corrected the issue that wrongly appended non-CSS files to CSS in links before sending request. * **3rd** YITH wishlist now sends a combined single sub request for all widgets contained in one page. (LSWS v5.4.9 build 3+ required) * **ESI** Added support for ESI combine feature. * **GUI** Dropped banner notification for missing domain key when domain key is not initialized. * **Log** When QC whitelist check fails, a detailed failure log is now appended. = 3.4.1 - Sep 2 2020 = * 🐞**CCSS** Fixed an issue where dynamically generated CSS failed with `TypeError: Cannot read property type of undefined`. * 🐞**Page Optimize** Fixed CSS optimization compatibility for CSS dynamically generated with PHP. * **Page Optimize** Added the ability to defer JS even when the resource is excluded from other JS optimizations. (@slr1979) * **ESI** Added support for ESI last parameter inline value. * **3rd** YITH Wishlist, when cached for the first time, will no longer send sub requests. = 3.4 - Aug 26 2020 = * 🌱**LQIP** New setting **LQIP Excludes**. * 🌱**LQIP** Added a Clear LQIP Queue button. * 🌱**CCSS** Added a Clear CCSS Queue button. * **CCSS** Fixed an issue which wrongly included preloaded images in CCSS. (@pixtweaks) * **Network** Primary site and subsite settings now display correctly. * **Page Optimize** Noscript tags generated by LSCWP will only be dropped when the corresponding option is enabled. (@ankit) * **DB Optimize** Fixed database optimizer conflicts w/ object cache transient setting. (#752931) * **3rd** Fixed an issue with WooCommerce product purge when order is placed. * **3rd** Improved WooCommerce product comment compatibility with **WooCommerce Photo Reviews Premium** plugin when using ESI. * **CDN** Fixed Remote jQuery compatibility with WordPress v5.5. (@pixtweaks) * **API** New API `litespeed_purge_all_object` and `litespeed_purged_all_object` action hooks. = 3.3.1 - Aug 12 2020 = * 🌱**Page Optimize** New option to Remove Noscript Tags. (@phuc88bmt) * 🐞**LQIP** Fixed a critical bug that bypassed all requests in v3.3. * **LQIP** Requests are now bypassed if domain has no credit left. * **Page Optimize** Inline defer will be bypassed if document listener is detected in the code. (@ssurfer) * **CCSS** Print-only styles will no longer be included in Critical CSS. * **API** Added hooks to Purge action to handle file deletions. (@biati) * **Cloud** Plain permalinks are no longer required for use of cloud services. * **Data** Added an access denial to work with OpenLiteSpeed. (@spenweb #PR228) * **GUI** Spelling and grammar adjustments. (@blastoise186 #PR253) = 3.3 - Aug 6 2020 = * 🌱**Page Optimize** Added a new setting, Inline JS Deferred Excludes. (@ankit) * **Page Optimize** CSS/JS Combine/Minify file versions will be differentiated by query string hash instead of new filename to reduce DB/file system storage. * **Page Optimize** Added the ability to use local copies of external JS files for better control over page score impacts. * **Page Optimize** Improved combination of CSS media queries. (@galbaras) * **Page Optimize** Reprioritized Inline JS Defer to be optimized before encoding, for a significantly smaller result. * **LQIP** Detect if the file exists before sending LQIP request to QUIC.cloud. * **CCSS** Sped up CCSS process significantly by sending HTML and CSS in request. * **CCSS** Improvements to mobile CSS support in CCSS. * **CCSS** Minimize CCSS failures by attempting to automatically fix CSS syntax errors. * **Cloud** Domain Key will be deleted after QUIC.cloud site_not_registered error to avoid endless repeated requests. * **CDN** CDN Original URL will default to WP Site URL if not set. (@ruikai) * **CLI** Global output format `--format=json/yaml/dump` and `--json` support in CLI. (@alya1992) * **CDN** Improved handling of non-image CSS `url()` sources in CDN. (@daniel McD) * 🐞**CDN** Fixed CDN replacement conflict w/ JS/CSS Optimize. (@ankit) * **Crawler** Only reset Crawler waiting queues when crawling begins. (@ruikai) * **Network** Network Enable Cache is no longer reset to ON Use Network Settings in enabled. (@RavanH) * 🐞**Activation** Fixed a PHP warning that appeared during uninstall. (@RavanH) * **Debug** Automatically omit long strings when dumping an array to debug log. * **Report** Subsites report now shows overwritten values along w/ original values. (#52593959) * **REST** Improved WP5.5 REST compatibility. (@oldrup) * **GUI** Server IP setting moved from Crawler menu to General menu. * **GUI** Localize resources moved to Localization tab. * **Config** News option now defaults to ON. = 3.2.4 - Jul 8 2020 = * **Object** New installations no longer get custom data.ini reset, as this could cause lost configuration. (@Eric) * **ESI** Now using `svar` to load nonces more quickly. (@Lauren) * **ESI** Fixed the conflicts between nonces in inline JS and ESI Nonces when Inline JS Deferred is enabled. (@JesseDistad) * 🐞**ESI** Fixed Fetch Latest Predefined Nonce button. * 🐞**Cache** Fixed an issue where mobile visits were not being cached when Cache Mobile was disabled. * **CDN** Bypass CDN constant `LITESPEED_BYPASS_CDN` now will apply to all CDN replacements. * **Router** Dropped `Router::get_uid()` function. * **Crawler** Updated role simulator function for future UCSS usage. * **GUI** Textarea will now automatically adjust the height based on the number of rows input. * **CLI** Fixed an issue that caused WP-Cron to exit when a task errored out. (@DovidLevine @MatthewJohnson) * **Cloud** No longer communcate with QUIC.cloud when Domain Key is not set and Debug is enabled. * **Cloud** Score banner no longer automatically fetches a new score. (@LucasRolff) = 3.2.3.2 - Jun 19 2020 = * 🔥🐞**Page Optimize** Hotfix for CSS/JS minify/combine. (@jdelgadoesteban @martin_bailey) = 3.2.3.1 - Jun 18 2020 = * **API** New filter `litespeed_buffer_before` and `litespeed_buffer_after`. (#PR243 @joejordanbrown) = 3.2.3 - Jun 18 2020 = * 🌱**Page Optimize** Added Unique CSS option for future removal of unused CSS per page. (@moongear) * **Page Optimize** Fixed an issue where Font Optimization could fail when having Load JS Deferred and Load Inline JS Deferred. (#PR241 @joejordanbrown) * 🐞**Page Optimize** Fixed an issue with Font Display Optimization which caused Google Fonts to load incorrectly. (#PR240 @joejordanbrown @haidan) * 🐞**Network** Use Primary Site Configuration setting for network sites now works properly with Object Cache and Browser Cache. (#56175101) * **API** Added filter `litespeed_is_from_cloud` to detect if the current request is from QC or not. (@lechon) * **ESI** ESI Nonce now can fetch latest list with one click. * **GUI** Updated remaining documentation links & some minor UI tweaks. (@Joshua Reynolds) = 3.2.2 - Jun 10 2020 = * 🌱**Purge** Scheduled Purge URLs now supports wildcard. (#427338) * 🌱**ESI** ESI Nonce supports wildcard match now. * **Network** Use Primary Site Settings now can support Domain Key, and override mechanism improved. (@alican532 #96266273) * **Cloud** Debug mode will now have no interval limit for most cloud requests. (@ruikai) * **Conf** Default Purge Stale to OFF. * **GUI** Purge Stale renamed to Serve Stale. * **Data** Predefined nonce list located in `/litespeed-cache/data/esi.nonce.txt`. Pull requests welcome. * **Debug** Limited parameter log length. * 🐞**CDN** Fixed an issue where upgrading lost value of CDN switch setting. (#888668) * **3rd** Caldera Forms ESI Nonce enhancement. (@paconarud16 @marketingsweet) * **3rd** Elementor now purges correctly after post/page updates. * **3rd** Disabled Page Optimization features on AMP to avoid webfont JS inject. (@rahulgupta1985) = 3.2.1 - Jun 1 2020 = * **Cloud** LQIP/CCSS rate limit tweaks. (@ianpegg) * **Admin** Improved frontend Admin Bar menu functionality. (#708642) * **Crawler** Fixed an issue where cleaning up a crawler map with a leftover page number would cause a MySQL error. (@saowp) * **Image Optimize** Added WP default thumbnails to image optimization summary list. (@johnny Nguyen) * **REST** Improved REST compatibility w/ WP4.4-. (#767203) * **GUI** Moved Use Primary Site Configuration to General menu. (@joshua) = 3.2 - May 27 2020 = * **Image Optimize** Major improvements in queue management, scalability, and speed. (@LucasRolff) * **Cloud** Implemented a series of communication enhancements. (@Lucas Rolff) * **Crawler** Enhanced PHP 5.3 compatibility. (@JTS-FIN #230) * **Page Optimize** Appended image template in wpDiscuz script into default lazyload image exclude list. (@philipfaster @szmigieldesign) * **Page Optimize** Eliminated the 404 issue for CSS/JS in server environments with missing SCRIPT_URI. (@ankit) * **Data** ENhanced summary data storage typecasting. = 3.1 - May 20 2020 = * 🌱**Network** Added Debug settings to network level when on network. * 🐞**Purge** Network now can purge all. * 🐞**Network** Fixed issue where saving the network primary site settings failed. * **Network** Moved Beta Test to network level when on network. * 🐞**Cache** Fixed issue in admin where new post editor was wrongly cached for non-admin roles. (@TEKFused) * 🐞**Data** Fixed issue with crawler & img_optm table creation failure. (@berdini @piercand) * 🐞**Core** Improved plugin activation compatibility on Windows 10 #224 (@greenphp) * **Core** Improved compatibility for .htaccess path search. * **Object** Catch RedisException. (@elparts) * Fixed Script URI issue in 3.0.9 #223 (@aonsyed) * **Image Optimize** Show thumbnail size set list in image optimization summary. (@Johnny Nguyen) * **Debug** Parameters will now be logged. = 3.0.9 - May 13 2020 = * **Purge** Comment cache can be successfully purged now. * **Data** Better MySQL charset support for crawler/image optimize table creation. (@Roshan Jonah) * **API** New hook to fire after Purge All. (@salvatorefresta) * **Crawler** Resolve IP for crawler. * **Task** PHP5.3 Cron compatibility fix. * **3rd** Elementor edit mode compatibility. * **Page Optimize** Fixed an issue where Purge Stale returned 404 for next visitor on CSS/JS. * **Page Optimize** Fixed the PHP warning when srcset doesn't have size info inside. (@gvidano) * **Cloud** Fixed the potential PHP warning when applying for the domain key. * **Core** PHP __DIR__ const replacement. (@MathiasReker) = 3.0.8.6 - May 4 2020 = * **CCSS** Bypassed CCSS functionality on frontend when domain key isn't setup yet. * **Cloud** Fixed WP node redetection bug when node expired. (@Joshua Reynolds) * **Crawler** Fixed an issue where URL is wrongly blacklisted when using ADC. = 3.0.8.5 - May 1 2020 = * 🔥🐞**3rd** Hotfix for WPLister critical error due to v3.0.8.4 changes. * **Image Optimize** Unfinished queue now will get more detailed info to indicate the proceeding status on node. * **CLI** Options can now use true/false as value for bool. (@gavin) * **CLI** Detect error if the ID does not exist when get/set an option value. * **Doc** An API comment typo for `litespeed_esi_load-` is fixed. = 3.0.8.4 - Apr 30 2020 = * 🌱**Crawler** New setting: Sitemap timeout. (#364607) * **Image Optimize** Images that fail to optimize are now counted to increase next request limit. * **Cloud** Redetect fastest node every 3 days. * **Cloud** Suppressed auto upgrade version detection error. (@marc Dahl) * **3rd** 3rd party namespace compatibility. (#366352) = 3.0.8.3 - Apr 28 2020 = * **Cloud** Better compatibility for the Link to QUIC.cloud operation. (@Ronei de Sousa Almeida) * **Image Optimize** Automatically clear invalid image sources before sending requests. (@Richard Hordern) = 3.0.8.2 - Apr 27 2020 = * **GUI** Corrected the Request Domain Key wording. = 3.0.8.1 - Apr 27 2020 = * **Object** Object cache compatibility for upgrade from v2.9.9- versions. = 3.0.8 - Apr 27 2020 = * Released v3 on WordPress officially. = 3.0.4 - Apr 23 2020 = * **Cloud** Apply Domain Key now receives error info in next apply action if failed to generate. * **GUI** Apply Domain Key timeout now displays troubleshooting guidance. * **REST** Added /ping and /token to REST GET for easier debug. * **Cache** Dropped `advanced-cache.php` file detection and usage. = 3.0.3 - Apr 21 2020 = * **Conf** Settings from all options (data ini, defined constant, and forced) will be filtered and cast to expected type. * **Upgrade** CDN mapping and other multiple line settings will now migrate correctly when upgrading from v2 to v3. = 3.0.2 - Apr 17 2020 = * **GUI** More guidance on domain key setting page. * **Cloud** Now Apply Domain Key will append the server IP if it exists in Crawler Server IP setting. = 3.0.1 - Apr 16 2020 = * **Data** Increased timeout for database upgrade related to version upgrade. Display a banner while update in progress. * **Page Optimize** All appended HTML attributes now will use double quotes to reduce the conflicts when the optimized resources are in JS snippets. = 3.0 - Apr 15 2020 = * 🌱**Media** LQIP (Low Quality Image Placeholder). * 🌱**Page Optimize** Load Inline JS Deferred Compatibility Mode. (Special thanks to @joe B - AppsON) * 🌱**Cloud** New QUIC.cloud API key setting. * 🌱**ESI** New ESI nonce setting. * 🌱**Media** JPG quality control. (@geckomist) * 🌱**Media** Responsive local SVG placeholder. * 🌱**Discussion** Gravatar warmup cron. * 🌱**DB** Table Engine Converter tool. (@johnny Nguyen) * 🌱**DB** Database summary: Autoload size. (@JohnnyNguyen) * 🌱**DB** Database summary: Autoload entries list. * 🌱**DB** Revisions older than. (@thememasterguru) * 🌱**Cache** Forced public cache setting. (#308207) * 🌱**Crawler** New timeout setting to avoid incorrect blacklist addition. (#900171) * 🌱**Htaccess** Frontend & backend .htaccess path customize. (@jon81) * 🌱**Toolbox** Detailed Heartbeat Control (@K9Heaven) * 🌱**Purge** Purge Stale setting. * 🌱**Page Optimize** Font display optimization. (@Joeee) * 🌱**Page Optimize** Google font URL display optimization. * 🌱**Page Optimize** Load Inline JS deferred. * 🌱**Page Optimize** Store gravatar locally. (@zzTaLaNo1zz @JohnnyNguyen) * 🌱**Page Optimize** DNS prefetch control setting. * 🌱**Page Optimize** Lazy Load Image Parent Class Name Excludes. (@pako69) * 🌱**Page Optimize** Lazy load iframe class excludes. (@vnnloser) * 🌱**Page Optimize** Lazy load exclude URIs. (@wordpress_fan1 @aminaz) * 🌱**GUI** New Dashboard and new menus. * 🌱**Image Optimize** Supported GIF WebP optimization. (@Lucas Rolff) * 🌱**Image Optimize** New workflow for image optimization (Gather first, request second). * 🌱**Image Optimize** The return of Rescan. * 🌱**CLI** Get single option cmd. * 🌱**CLI** QUIC.cloud cmd supported. * 🌱**CLI** CLI can send report now. * 🌱**Health** Page speed and page score now are in dashboard. * 🌱**Conf** Supported consts overwritten of `LITESPEED_CONF__` for all settings. (@menathor) * 🌱**REST** New REST TTL setting. (@thekendog) * 🌱**CDN** New setting `HTML Attribute To Replace`. CDN can now support any HTML attribute to be replaced. (@danushkaj91) * 🌱**Debug** Debug URI includes/excludes settings. * 🌱**Crawler** 🐞 Support for multiple domains in custom sitemap. (@alchem) * 🌱**Crawler** New Crawler dashboard. New sitemap w/ crawler status. New blacklist w/ reason. * 🌱**Media** LQIP minimum dimensions setting. (@Lukasz Szmigiel) * **Crawler** Able to add single rows to blacklist. * **Crawler** Crawler data now saved into database instead of creating new files. * **Crawler** Larger timeout to avoid wrongly added to blacklist. * **Crawler** Manually changed the priority of mobile and WebP. (@rafaucau) * **Browser** Larger Browser Cache TTL for Google Page Score improvement. (@max2348) * **Task** Task refactored. Disabled cron will not show in cron list anymore. * **Task** Speed up task load speed. * **ESI** Added Bloom nonce to ESI for Elegant Themes. * **Cloud** Able to redetect cloud nodes now. * **Img_optm** Fixed stale data in redirected links. * **Lazyload** CSS class `litespeed_lazyloaded` is now appended to HTML body after lazyload is finished. (@Adam Wilson) * **Cache** Default drop qs values. (@gijo Varghese) * **LQIP** Show all LQIP images in Media column. * **CDN** Can now support custom REST API prefix other than wp-json. (#174 @therealgilles) * **IAPI** Used REST for notify/destroy/check_img; Removed callback passive/aggreesive IAPI func * **CSSJS** Saved all static files to litespeed folder; Uninstallation will remove static cache folder too; Reduced .htaccess rules by serving CSS/JS directly. * **Object** Fixed override different ports issue. (@timofeycom #ISSUE178) * **Conf** DB Tables will now only create when activating/upgrading/changing settings. * **DB** Simplified table operation funcs. * **CSSJS** Bypassed CSS/JS generation to return 404 if file is empty (@grubyy) * **CSSJS** Inline JS defer will not conflict with JS inline optm anymore. * **CDN** settings will not be overwritten by primary settings in network anymore. (@rudi Khoury) * **OPcache** Purged all opcache when updating cache file. (@closte #170) * **CLI** CLI cmd renamed. * **CLI** Well-formatted table to show all options. * **Purge** Only purge related posts that have a status of "published" to avoid unnecessary "draft" purges. (@Jakub Knytl) * **GUI** Removed basic/adv mode for settings. Moved non-cache settings to its own menu. * **Htaccess** Protected .htaccess.bk file. Only kept one backup. (@teflonmann) * **Crawler** Crawler cookie now support `_null` as empty value. * **Crawler** Avoid crawler PHP fatal error on Windows OS. (@technisolutions) * **Admin** Simplified admin setting logic. * **Conf** Multi values settings now uniformed to multi lines for easier setting. * **Conf** New preset default data file `data/consts.default.ini`. * **Conf** Config setting renamed and uniformed. * **Conf** Dropped `Conf::option()`. Used `Conf::val()` instead. * **Conf** Improved conf initialization and upgrade conversion workflow. * **Core** Code base refactored. New namespace LiteSpeed. * **API** New API: iframe lazyload exclude filter. * **GUI** human readable seconds. (@MarkCanada) * **API** API refactored. * NOTE: All 3rd party plugins that are using previous APIs, especially `LiteSpeed_Cache_API`, need to be adjusted to the latest one. Same for ESI blocks.* ESI shortcode doesn't change. * **API** New hook `litespeed_update_confs` to settings update. * **API** New Hooks `litespeed_frontend_shortcut` and `litespeed_backend_shortcut` for dropdown menu. (@callaloo) * **API** Removed `litespeed_option_*` hooks. Use `litespeed_force_option` hook insteadly * **API** Renamed `litespeed_force_option` to `litespeed_conf_force`. * **API** Removed function `litespeed_purge_single_post`. * **REST** New rest API to fetch public IP. * **GUI** Hiding Cloudflare/Object Cache/Cloud API key credentials. (@menathor) * **GUI** Renamed all backend link tag from lscache to litespeed. * **GUI** fixed duplicated form tag. * **GUI** Fix cron doc link. (@arnab Mohapatra) * **GUI** Frontend adminbar menu added `Purge All` actions. (@Monarobase) * **GUI** Localized vue.js to avoid CloudFlare cookie. (@politicske) * **GUI** Always show optm column in Media Library for future single row optm operation. (@mikeyhash) * **GUI** Displayed TTL range below the corresponding setting. * **GUI** GUI refactored. * **Debug** Report can now append notes. * **3rd** Default added parallax-image to webp replacement for BB. * **3rd** User Switching plugin compatibility. (@robert Staddon) * **3rd** Beaver Builder plugin compatibility with v3.0. * **3rd** Avada plugin compatibility w/ BBPress. (@pimg) * **3rd** WooCommerce PayPal Checkout Gateway compatibility. (#960642 @Glen Cabusas) * **Network** Fixed potential timeout issue when containing a large volume of sites. (@alican532) * **Debug** `Disable All Features` now will see the warning banner if ON. * **Debug** Dropped `log filters` section. * **Debug** Debug and Tools sections combined into new `Toolbox` section. * 🐞**Crawler** Multi sites will now use separate sitemap even when `Use Primary Site` is ON. (@mrhuynhanh) * 🐞**Img_optm** Fixed large volume image table storage issue. (#328956) * 🐞 **Cloud** Cloud callback hash validation fixed OC conflict. (@pbpiotr) * 🎊 Any user that had the contribution to our WP community or changelog (even just bug report/feedback/suggestion) can apply for extra credits in QUIC.cloud. = 2.9.9.2 - Nov 24 2019 = * 🌱**GUI** New settings to limit News Feed to plugin page only. = 2.9.9.1 - Nov 18 2019 = * 🌱**Env** Environment Report can now append a passwordless link for support access without wp-admin password. * **Admin** The latest v3.0 beta test link may now be shown on the admin page when it's available. * **3rd** Compatibility with [DoLogin Security](https://wordpress.org/plugins/dologin/). * 🐞**ESI** Fixed a failure issue with Vary Group save. (@rafasshop) * 🐞**3rd** In browsers where WebP is not supported, Divi image picker will no longer serve WebP. (@Austin Tinius) = 2.9.9 - Oct 28 2019 = * Core: Preload all classes to avoid getting error for upcoming v3.0 upgrade. * Object: Improved compatibility with upcoming v3.0 release. * ESI: Unlocked ESI for OLS in case OLS is using QUIC.cloud CDN which supports ESI. * 3rd: Elementor Edit button will now show when ESI enabled. (#PR149 #335322 @maxgorky) * 🐞Media: Fixed missing Media optimization column when Admin role is excluded from optimization in settings. (@mikeyhash @pako69 @dgilfillan) = 2.9.8.7 - Oct 11 2019 = * 3rd: Enhanced WP stateless compatibility. (#PR143) * 3rd: Fixed a PHP warning caused by previous PR for AMP. (#PR176) = 2.9.8.6 - Sep 24 2019 = * 3rd: Bypassed page optimizations for AMP. (#359748 #PR169) * GUI: Firefox compatibility with radio button state when reloading pages. (#288940 #PR162) * GUI: Updated Slack invitation link. (#PR173) = 2.9.8.5 - Aug 21 2019 = * CCSS: Removed potential PHP notice when getting post_type. (@amcgiffert) * CDN: Bypassed CDN replacement on admin page when adding media to page/post. (@martin_bailey) * 🐞Media: Fixed inability to update or destroy postmeta data for child images. (#167713) = 2.9.8.4 - Jul 25 2019 = * Object: Increased compatibility with phpredis 5.0. * Object: Appended `wc_session_id` to default Do Not Cache Groups setting to avoid issue where WooCommerce cart items were missing when Object Cache is used. NOTE: Existing users must add `wc_session_id` manually! (#895333) * CSS: Added null onload handler for CSS async loading. (@joejordanbrown) * 🕷️: Increased crawler timeout to avoid wrongly adding a URL to the blacklist. * 3rd: WooCommerce Advanced Bulk Edit can now purge cache automatically. = 2.9.8.3 - Jul 9 2019 = * CSS: Enhanced the CSS Minify compatibility for CSS with missing closing bracket syntax errors. (@fa508210020) * 🕷️: Crawler now supports both cookie and no-cookie cases. (@tabare) * CCSS: Enhanced compatibility with requested pages where meta info size exceeds 8k. (@Joe B) * CCSS: No longer processing "font" or "import" directives as they are not considered critical. (@Ankit @Joe B) * IAPI: Removed IPv6 from all servers to avoid invalid firewall whitelist. = 2.9.8.2 - Jun 17 2019 = * 🔥🐞 3rd: Fixed PHP 5.3 compatibility issue with Facetwp. = 2.9.8.1 - Jun 17 2019 = * 3rd: Set ESI template hook priority to highest number to prevent ESI conflict with Enfold theme. (#289354) * 3rd: Improved Facetwp reset button compatibility with ESI. (@emilyel) * 3rd: Enabled user role change to fix duplicate login issue for plugins that use alternative login processes. (#114165 #717223 @sergiom87) * GUI: Wrapped static text with translate function. (@halilemreozen) = 2.9.8 - May 22 2019 = * Core: Refactored loading priority so user related functions & optimization features are set after user initialization. (#717223 #114165 #413338) * Media: Improved backup file calculation query to prevent out-of-memory issue. * Conf: Feed cache now defaults to ON. * API: Fully remote attachment compatibility API of image optimization now supported. * 🕷️: Bypassed vary change for crawler; crawler can now simulate default vary cookie. * ESI: Refactored ESI widget. Removed `widget_load_get_options()` function. * ESI: Changed the input name of widget fields in form. * 3rd: Elementor can now save ESI widget settings in frontend builder. * 3rd: WP-Stateless compatibility. * IAPI: Image optimization can now successfully finish the destroy process with large volume images with automatic continual mode. * 🐞CDN: Fixed issue with Load JQuery Remotely setting where WP 5.2.1 provided an unexpected jQuery version. * 🐞3rd: Login process now gets the correct role; fixed double login issue. = 2.9.7.2 - May 2 2019 = * Conf: Enhanced compatibility when an option is not properly initialized. * Conf: Prevent non-array instance in widget from causing 500 error. (#210407) * CCSS: Increase CCSS generation timeout to 60s. * Media: Renamed lazyload CSS class to avoid conflicts with other plugins. (@DynamoProd) * JS: Improved W3 validator. (@istanbulantik) * QUIC: Synced cache tag prefix for static files cache. * ESI: Restored query strings to ESI admin bar for accurate rendering. (#977284) * ESI: Tweaked ESI init priority to honor LITESPEED_DISABLE_ALL const. ESI will now init after plugin loaded. * 🐞ESI: No longer initialize ESI if ESI option is OFF. * API: New "Disable All" API function. * API: New "Force public cache" API function. * 🐞Vary: Fixed an issue with saving vary groups. * 🐞IAPI: Fixed an issue where image md5 validation failed due to whitespace in the image path. * 🐞3rd: Bypass all optimization/ESI/Cache features when entering Divi Theme Builder frontend editor. * 🐞3rd: Fixed an issue where DIVI admin bar exit button didn't work when ESI was ON. = 2.9.7.1 - Apr 9 2019 = * Purge: Purge All no longer includes Purge CCSS/Placeholder. * 3rd: Divi Theme Builder no longer experiences nonce expiration issues in the contact form widget. (#475461) = 2.9.7 - Apr 1 2019 = * 🌱🌱🌱 QUIC.cloud CDN feature. Now Apache/Nginx can use LiteSpeed cache freely. = 2.9.6 - Mar 27 2019 = * 🌱IAPI: Appended XMP to `Preserve EXIF data` setting. WebP will now honor this setting. (#902219) * Object: Fixed SASL connection with LSMCD. * ESI: Converted ESI URI parameters to JSON; Added ESI validation. * Import: Import/Export will now use JSON format. Please re-export any backed up settings. Previous backup format is no longer recognized. * Media: WebP replacement will honor `Role Excludes` setting now. (@mfazio26) * Data: Forbid direct visit to const.default.ini. * Utility: Can handle WHM passed in `LITESPEED_ERR` constant now. * IAPI: Communicate via JSON encoding. * IAPI: IAPI v2.9.6. = 2.9.5 - Mar 14 2019 = * 🌱 Auto convert default WordPress nonce to ESI to avoid expiration. * 🌱 API: Ability to easily convert custom nonce to ESI by registering `LiteSpeed_Cache_API::nonce_action`. * OPTM: Tweaked redundant attr `data-no-optimize` in func `_analyse_links` to `data-ignore-optimize` to offer the API to bypass optimization but still move src to top of source code. * API: Renamed default nonce ESI ID from `lscwp_nonce_esi` to `nonce`. * API: Added WebP generation & validation hook API. (@alim #wp-stateless) * API: Added hook to bypass vary commenter check. (#wpdiscuz) * Doc: Clarified Cache Mobile description. (@JohnnyNguyen) * Doc: Replaced incorrect link in description. (@JohnnyNguyen) * 3rd: Improved wpDiscuz compatibility. * 🐞3rd: Fixed Divi Theme Builder comment compatibility on non-builder pages. (#410919) * 3rd: Added YITH ESI adjustment. = 2.9.4.1 - Feb 28 2019 = * 🔥🐞Tag: Fixed issue where unnecessary warning potentially displayed after upgrade process when object cache is enabled. = 2.9.4 - Feb 27 2019 = * 🐞REST: New REST class with better WP5 Gutenberg and internal REST call support when ESI is embedded. * ESI: ESI block ID is now in plain text in ESI URL parameters. * 🐞ESI: Fixed a redundant ESI 301 redirect when comma is in ESI URL. * ESI: REST call can now parse shortcodes in ESI. * API: Changed ESI `parse_esi_param()` function to private and `load_esi_block` function to non-static. * API: Added `litespeed_is_json` hook for buffer JSON conversion. * GUI: Prepended plugin name to new version notification banner. * 3rd: WPML multi domains can now be handled in optimization without CDN tricks. = 2.9.3 - Feb 20 2019 = * ESI: ESI shortcodes can now be saved in Gutenberg editor. * ESI: ESI now honors the parent page JSON data type to avoid breaking REST calls (LSWS 5.3.6+). * ESI: Added is_json parameter support for admin_bar. * ESI: Simplified comment form code. * 3rd: Better page builder plugin compatibility within AJAX calls. * 3rd: Compatibility with FacetWP (LSWS 5.3.6+). * 3rd: Compatibility with Beaver Builder. * Debug: Added ESI buffer content to log. * Tag: Only append blog ID to cache tags when site is part of a network. * IAPI: Optimized database query for pulling images. * GUI: Added more plugin version checking for better feature compatibility. * GUI: Ability to bypass non-critical banners with the file .litespeed_no_banner. * Media: Background image WebP replacement now supports quotes around src. = 2.9.2 - Feb 5 2019 = * API: Add a hook `litespeed_esi_shortcode-*` for ESI shortcodes. * 3rd: WooCommerce can purge products now when variation stock is changed. * 🐞🕷️: Forced HTTP1.1 for crawler due to a CURL HTTP2 bug. = 2.9.1 - Jan 25 2019 = * Compatibility: Fixed fatal error for PHP 5.3. * Compatibility: Fixed PHP warning in htmlspecialchars when building URLs. (@souljahn2) * Media: Excluded invalid image src from lazyload. (@andrew55) * Optm: Improved URL compatibility when detecting closest cloud server. * ESI: Supported JSON format comment format in ESI with `is_json` parameter. * API: Added filters to CCSS/CSS/JS content. (@lhoucine) * 3rd: Improved comment compatibility with Elegant Divi Builder. * IAPI: New Europe Image Optimization server (EU5). Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips). * GUI: No longer show banners when `Disable All` in `Debug` is ON. (@rabbitwordpress) * GUI: Fixed button style for RTL languages. * GUI: Removed unnecessary translation in report. * GUI: Updated readme wiki links. * GUI: Fixed pie styles in image optimization page. = 2.9 - Dec 31 2018 = * 🌱Media: Lazy Load Image Classname Excludes. (@thinkmedia) * 🌱: New EU/AS cloud servers for faster image optimization handling. * 🌱: New EU/AS cloud servers for faster CCSS generation. * 🌱: New EU/AS cloud servers for faster responsive placeholder generation. * 🌱Conf: Ability to set single options via link. * 🌱Cache: Ability to add custom TTLs to Force Cache URIs. * Purge: Added post type to Purge tags. * Purge: Redefined CCSS page types. * Core: Using Exception for .htaccess R/W. * IAPI: New cloud servers added. Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips). * Optm: Trim BOM when detecting if the page is HTML. * GUI: Added PageSpeed Score comparison into promotion banner. * GUI: Refactored promotion banner logic. * GUI: Removed page optimized comment when ESI Silence is requested. * GUI: WHM transient changed to option instead of transient when storing. * GUI: Appending more descriptions to CDN filetype setting. * IAPI: Removed duplicate messages. * IAPI: Removed taken_failed/client_pull(duplicated) status. * Debug: Environment report no longer generates hash for validation. * 3rd: Non-cacheable pages no longer punch ESI holes for Divi compatibility. * 🐞Network: Added slashes for mobile rules when activating plugin. * 🐞CCSS: Eliminated a PHP notice when appending CCSS. = 2.8.1 - Dec 5 2018 = * 🐞🕷️: Fixed an activation warning related to cookie crawler. (@kacper3355 @rastel72) * 🐞Media: Replace safely by checking if pulled images is empty or not first. (@Monarobase) * 3rd: Shortcode ESI compatibility with Elementor. = 2.8 - Nov 30 2018 = * 🌱: ESI shortcodes. * 🌱: Mobile crawler. * 🌱: Cookie crawler. * API: Can now add `_litespeed_rm_qs=0` to bypass Remove Query Strings. * Optm: Removed error log when minify JS failed. * 🐞Core: Fixed a bug that caused network activation PHP warning. * Media: Removed canvas checking for WebP to support TOR. (@odeskumair) * Media: Eliminated potential image placeholder PHP warning. * 3rd: Bypassed Google recaptcha from Remove Query Strings for better compatibility. * IAPI: Showed destroy timeout details. * Debug: Moved Google Fonts log to advanced level. * GUI: Replaced all Learn More links for functions. * GUI: Cosmetic updates including Emoji. * 🕷️: Removed duplicated data in sitemap and blacklist. = 2.7.3 - Nov 26 2018 = * Optm: Improved page render speed with Web Font Loader JS library for Load Google Fonts Asynchronously. * Optm: Directly used JS library files in plugin folder instead of short links `/min/`. * Optm: Handled exceptions in JS optimization when meeting badly formatted JS. * 3rd: Added Adobe Lightroom support for NextGen Gallery. * 3rd: Improved Postman app support for POST JSON requests. * IAPI: US3 server IP changed to 68.183.60.185. = 2.7.2 - Nov 19 2018 = * 🌱: Auto Upgrade feature. * CDN: Bypass CDN for cron to avoid WP jQuery deregister warning. = 2.7.1 - Nov 15 2018 = * 🌱CLI: Ability to set CDN mapping by `set_option litespeed-cache-cdn_mapping[url][0] https://url`. * 🌱CDN: Ability to customize default CDN mapping data in default.ini. * 🌱API: Default.ini now supports both text-area items and on/off options. * Vary: Refactored Vary and related API. * Vary: New hook to manipulate vary cookies value. * Core: Activation now can generate Object Cache file. * Core: Unified Object Cache/rewrite rules generation process across activation/import/reset/CLI. * Core: Always hook activation to make activation available through the front end. * 🐞IAPI: Fixed a bug where environment report gave incorrect image optimization data. * 🐞OLS: Fixed a bug where login cookie kept showing a warning on OpenLiteSpeed. * 🐞Core: Fixed a bug where Import/Activation/CLI was missing CDN mapping settings. * API: Filters `litespeed_cache_media_lazy_img_excludes/litespeed_optm_js_defer_exc` passed-in parameter is changed from string to array. = 2.7 - Nov 2 2018 = * 🌱: Separate Purge log for better debugging. * 3rd: Now fully compatible with WPML. * IAPI: Sped up Image Optimization workflow. * GUI: Current IP now shows in Debug settings. * GUI: Space separated placeholder queue list for better look. * IAPI: EU3 server IP changed to 165.227.131.98. = 2.6.4.1 - Oct 25 2018 = * 🔥🐞Media: Fixed a bug where the wrong table was used in the Image Optimization process. * IAPI: IAPI v2.6.4.1. = 2.6.4 - Oct 24 2018 = * 🌱: Ability to create custom default config options per hosting company. * 🌱: Ability to generate mobile Critical CSS. * 🐞Media: Fixed a bug where Network sites could incorrectly override optimized images. * 🐞CDN: Fixed a bug where image URLs containing backslashes were matched. * Cache: Added default Mobile UA config setting. * GUI: Fixed unknown shortcut characters for non-English languages Setting tabs. = 2.6.3 - Oct 18 2018 = * 🌱: Ability to Reset All Options. * 🌱CLI: Added new `lscache-admin reset_options` command. * GUI: Added shortcuts for more of the Settings tabs. * Media: Updated Lazy Load JS library to the most recent version. * There is no longer any need to explicitly Save Settings upon Import. * Remove Query String now will remove *all* query strings in JS/CSS static files. * IAPI: Added summary info to debug log. = 2.6.2 - Oct 11 2018 = * Setting: Automatically correct invalid numeric values in configuration settings upon submit. * 🐞Media: Fixed the issue where iframe lazy load was broken by latest Chrome release. (@ofmarconi) * 🐞: Fixed an issue with Multisite where subsites failed to purge when only primary site has WooCommerce . (@kierancalv) = 2.6.1 - Oct 4 2018 = * 🌱: Ability to generate separate Critical CSS Cache for Post Types & URIs. * API: Filter `litespeed_frontend_htaccess` for frontend htaccess path. * Media: Removed responsive placeholder generation history to save space. = 2.6.0.1 - Sep 24 2018 = * 🔥🐞: Fixed an issue in responsive placeholder generation where redundant history data was being saved and using a lot of space. = 2.6 - Sep 22 2018 = * Vary: Moved `litespeed_cache_api_vary` hook outside of OLS condition for .htaccess generation. * CDN: Trim spaces in original URL of CDN setting. * API: New filter `litespeed_option_` to change all options dynamically. * API: New `LiteSpeed_Cache_API::force_option()` to change all options dynamically. * API: New `LiteSpeed_Cache_API::vary()` to set default vary directly for easier compaitiblity with WPML WooCommerce Multilingual. * API: New `LiteSpeed_Cache_API::nonce()` to safely and easily allow caching of wp-nonce. * API: New `LiteSpeed_Cache_API::hook_vary_add()` to add new vary. * Optm: Changed HTML/JS/CSS optimization options assignment position from constructor to `finalize()`. * Doc: Added nonce to FAQ and mentioned nonce in 3rd Party Compatibility section. * GUI: Moved inline minify to under html minify due to the dependency. * 3rd: Cached Aelia CurrencySwitcher by default. * 🐞: Fixed issue where enabling remote JQuery caused missing jquery-migrate library error. = 2.5.1 - Sep 11 2018 = * 🌱 Responsive placeholder. (@szmigieldesign) * Changed CSS::ccss_realpath function scope to private. * 🐞 Detected JS filetype before optimizing to avoid PHP source conflict. (@closte #50) = 2.5 - Sep 6 2018 = * [IMPROVEMENT] CLI can now execute Remove Original Image Backups. (@Shon) * [UPDATE] Fixed issue where WP-PostViews documentation contained extra slashes. (#545638) * [UPDATE] Check LITESPEED_SERVER_TYPE for more accurate LSCache Disabled messaging. * [IAPI] Fixed a bug where optimize/fetch error notification was not being received. (@LucasRolff) = 2.4.4 - Aug 31 2018 = * [NEW] CLI can now support image optimization. (@Shon) * [IMPROVEMENT] GUI Cron/CLI will not create admin message anymore. * [UPDATE] Media Fixed a PHP notice that appeared when pulling optimized images. * [UPDATE] Fixed a PHP notice when detecting origin of ajax call. (@iosoft) * [DEBUG] Debug log can now log referer URL. * [DEBUG] Changes to options will now be logged. = 2.4.3 - Aug 27 2018 = * [NEW] Media Ability to inline image lazyload JS library. (@Music47ell) * [IMPROVEMENT] Media Deleting images will now clear related optimization file & info too. * [IMPROVEMENT] Media Non-image postfix data will now be bypassed before sending image optimization request. * [BUGFIX] CDN CDN URL will no longer be replaced during admin ajax call. (@pankaj) * [BUGFIX] CLI WPCLI can now save options without incorrectly clearing textarea items. (@Shon) * [GUI] Moved Settings above Manage on the main menu. = 2.4.2 - Aug 21 2018 = * [IMPROVEMENT] Media Sped up Image Optimization process by replacing IAPI server pull communication. * [IMPROVEMENT] Media Ability to delete optimized WebP/original image by item in Media Library. (@redgoodapple) * [IMPROVEMENT] CSS Optimize Generate new optimized CSS name based on purge timestamp. Allows CSS cache to be cleared for visitors. (@bradbrownmagic) * [IMPROVEMENT] API added litespeed_img_optm_options_per_image. (@gintsg) * [UPDATE] Stopped showing "No Image Found" message when all images have finished optimization. (@knutsp) * [UPDATE] Improved a PHP warning when saving settings. (@sergialarconrecio) * [UPDATE] Changed backend adminbar icon default behavior from Purge All to Purge LSCache. * [UPDATE] Clearing CCSS cache will clear unfinished queue too. * [UPDATE] Added "$" exact match when adding URL by frontend adminbar dropdown menu, to avoid affecting any sub-URLs. * [UPDATE] Fixed IAPI error message showing array bug. (@thiomas) * [UPDATE] Debug Disable All will do a Purge All. * [UPDATE] Critical CSS server IP changed to 142.93.3.57. * [GUI] Showed plugin update link for IAPI version message. * [GUI] Bypassed null IAPI response message. * [GUI] Grouped related settings with indent. * [IAPI] Added 503 handler for IAPI response. * [IAPI] IAPI v2.4.2. * [IAPI] Center Server IP Changed from 34.198.229.186 to 142.93.112.87. = 2.4.1 - Jul 19 2018 = * [NEW FEATURE] Media Auto Level Up. Auto refill credit. * [NEW FEATURE] Media Auto delete original backups after pulled. (@borisov87 @JMCA2) * [NEW FEATURE] Media Auto request image optimization. (@ericsondr) * [IMPROVEMENT] Media Fetch 404 error will notify client as other errors. * [IMPROVEMENT] Media Support WebP for PageSpeed Insights. (@LucasRolff) * [BUGFIX] CLI Fixed the issue where CLI import/export caused certain textarea settings to be lost. (#767519) * [BUGFIX] CSS Optimize Fixed the issue that duplicated optimized CSS and caused rapid expansion of CSS cache folder. * [GUI] Media Refactored operation workflow and interface. * [UPDATE] Media Set timeout seconds to avoid pulling timeout. (@Jose) * [UPDATE] CDNFixed the notice when no path is in URL. (@sabitkamera) * [UPDATE] Media Auto correct credits when pulling. * [UPDATE] GUI Removed redundant double quote in gui.cls. (@DaveyJake) * [IAPI] IAPI v2.4.1. * [IAPI] Allow new error status notification and success message from IAPI. = 2.4 - Jul 2 2018 = * [NEW FEATURE] Media Added lossless optimization. * [NEW FEATURE] Media Added Request Original Images ON/OFF. * [NEW FEATURE] Media Added Request WebP ON/OFF. (@JMCA2) * [IMPROVEMENT] Media Improved optimization tools to archive maximum compression and score. * [IMPROVEMENT] Media Improved speed of image pull. * [IMPROVEMENT] Media Automatically recover credit after pulled. * [REFACTOR] Config Separated configure const class. * [BUGFIX] Report Report can be sent successfully with emoji now. (@music47ell) * [IAPI] New Europe Image Optimization server (EU3/EU4). * [IAPI] New America Image Optimization server (US3/US4/US5/US6). * [IAPI] New Asian Image Optimization server (AS3). * [IAPI] Refactored optimization process. * [IAPI] Increased credit limit. * [IAPI] Removed request interval limit. * [IAPI] IAPI v2.4. * We strongly recommended that you re-optimize your image library to get a better compression result. = 2.3.1 - Jun 18 2018 = * [IMPROVEMENT] New setting to disable Generate Critical CSS. (@cybmeta) * [IMPROVEMENT] Added filter to can_cdn/can_optm check. (@Jacob) * [UPDATE] *Critical CSS* Added 404 css. Limit cron interval. * [UPDATE] AJAX will not bypass CDN anymore by default. (@Jacob) * [GUI] Show Disable All Features warning if it is on in Debug tab. = 2.3 - Jun 13 2018 = * [NEW FEATURE] Automatically generate critical CSS. (@joeee @ivan_ivanov @3dseo) * [BUGFIX] "Mark this page as..." from dropdown menu will not reset settings anymore. (@cbratschi) = 2.2.7 - Jun 4 2018 = * [IMPROVEMENT] Improved redirection for manual image pull to avoid too many redirections warning. * [IAPI] Increased credit limit. * [BUGFIX] Fixed 503 error when enabling log filters in Debug tab. (#525206) * [UPDATE] Improve compatibility when using sitemap url on servers with allow_url_open off. * [UPDATE] Removed Crawler HTTP2 option due to causing no-cache blacklist issue for certain environments. * [UPDATE] Privacy policy can be now translated. (@Josemi) * [UPDATE] IAPI Increased default img request max to 3000. = 2.2.6 - May 24 2018 = * [NEW FEATURE] Original image backups can be removed now. (@borisov87 @JMCA2) * [BUGFIX] Role Excludes in Tuning tab can save now. (@pako69) * [UPDATE] Added privacy policy support. = 2.2.5 - May 14 2018 = * [IAPI] Image Optimization New Asian Image Optimization server (AS2). * [INTEGRATION] Removed wpForo 3rd party file. (@massimod) = 2.2.4 - May 7 2018 = * [IMPROVEMENT] Improved compatibility with themes using the same js_min library. (#129093 @Darren) * [BUGFIX] Fixed a bug when checking image path for dynamic files. (@miladk) * [INTEGRATION] Compatibility with Universal Star Rating. (@miladk) = 2.2.3 - Apr 27 2018 = * [NEW FEATURE] WebP For Extra srcset setting in Media tab. (@vengen) * [REFACTOR] Removed redundant LS consts. * [REFACTOR] Refactored adv_cache generation flow. * [BUGFIX] Fixed issue where inline JS minify exception caused a blank page. (@oomskaap @kenb1978) * [UPDATE] Changed HTTP/2 Crawl default value to OFF. * [UPDATE] Added img.data-src to default WebP replacement value for WooCommerce WebP support. * [UPDATE] Detached crawler from LSCache LITESPEED_ON status. * [API] Improved ESI API to honor the cache control in ESI wrapper. * [API] Added LITESPEED_PURGE_SILENT const to bypass the notification when purging * [INTEGRATION] Fixed issue with nonce expiration when using ESI API. (#923505 @Dan) * [INTEGRATION] Improved compatibility with Ninja Forms by bypassing non-javascript JS from inline JS minify. * [INTEGRATION] Added a hook for plugins that change the CSS/JS path e.g. Hide My WordPress. = 2.2.2 - Apr 16 2018 = * [NEW FEATURE] WebP Attribute To Replace setting in Media tab. (@vengen) * [IMPROVEMENT] Generate adv_cache file automatically when it is lost. * [IMPROVEMENT] Improved compatibility with ajax login. (@veganostomy) * [UPDATE] Added object cache lib check in case user downgrades LSCWP to non-object-cache versions. * [UPDATE] Avoided infinite loop when users enter invalid hook values in Purge All Hooks settings. * [UPDATE] Updated log format in media&cdn class. * [UPDATE] Added more items to Report. = 2.2.1 - Apr 10 2018 = * [NEW FEATURE] Included Directories setting in CDN tab. (@Dave) * [NEW FEATURE] Purge All Hooks setting in Advanced tab. * [UPDATE] Added background-image WebP replacement support. (@vengen) * [UPDATE] Show recommended values for textarea items in settings. * [UPDATE] Moved CSS/JS optimizer log to Advanced level. * [INTEGRATION] Added WebP support for Avada Fusion Sliders. (@vengen) = 2.2.0.2 - Apr 3 2018 = * [HOTFIX] Object Cache Fixed the PHP warning caused by previous improvement to Object Cache. = 2.2.0.1 - Apr 3 2018 = * [HOTFIX] Object parameter will no longer cause warnings to be logged for Purge and Cache classes. (@kelltech @khrifat) * [UPDATE] Removed duplicated del_file func from Object Cache class. * [BUGFIX] `CLI` no longer shows 400 error upon successful result. = 2.2 - Apr 2 2018 = * [NEW FEATURE] Debug Disable All Features setting in Debug tab. (@monarobase) * [NEW FEATURE] Cache Force Cacheable URIs setting in Excludes tab. * [NEW FEATURE] Purge Purge all LSCache and other caches in one link. * [REFACTOR] Purge Refactored Purge class. * [BUGFIX] Query strings in DoNotCacheURI setting now works. * [BUGFIX] Cache Mobile cache compatibility with WebP vary. (@Shivam #987121) * [UPDATE] Purge Moved purge_all to Purge class from core class. * [API] Set cacheable/Set force cacheable. (@Jacob) = 2.1.2 - Mar 28 2018 = * [NEW FEATURE] Image Optimization Clean Up Unfinished Data feature. * [IAPI] IAPI v2.1.2. * [IMPROVEMENT] CSS/JS Minify Reduced loading time significantly by improving CSS/JS minify loading process. (@kokers) * [IMPROVEMENT] CSS/JS Minify Cache empty JS Minify content. (@kokers) * [IMPROVEMENT] Cache Cache 301 redirect when scheme/host are same. * [BUGFIX] Media Lazy load now can support WebP. (@relle) * [UPDATE] CSS/JS Optimize Serve static files for CSS async & lazy load JS library. * [UPDATE] Report Appended Basic/Advanced View setting to Report. * [UPDATE] CSS/JS Minify Removed zero-width space from CSS/JS content. * [GUI] Added Purge CSS/JS Cache link in Admin. = 2.1.1.1 - Mar 21 2018 = * [BUGFIX] Fixed issue where activation failed to add rules to .htaccess. * [BUGFIX] Fixed issue where 304 header was blank on feed page refresh. = 2.1.1 - Mar 20 2018 = * [NEW FEATURE] Browser Cache Unlocked for non-LiteSpeed users. * [IMPROVEMENT] Image Optimization Fixed issue where images with bad postmeta value continued to show in not-yet-requested queue. = 2.1 - Mar 15 2018 = * [NEW FEATURE] Image Optimization Unlocked for non-LiteSpeed users. * [NEW FEATURE] Object Cache Unlocked for non-LiteSpeed users. * [NEW FEATURE] Crawler Unlocked for non-LiteSpeed users. * [NEW FEATURE] Database Cleaner and Optimizer Unlocked for non-LiteSpeed users. * [NEW FEATURE] Lazy Load Images Unlocked for non-LiteSpeed users. * [NEW FEATURE] CSS/JS/HTML Minify/Combine Optimize Unlocked for non-LiteSpeed users. * [IAPI] IAPI v2.0. * [IAPI] Increased max rows prefetch when client has additional credit. * [IMPROVEMENT] CDN Multiple domains may now be used. * [IMPROVEMENT] Report Added WP environment constants for better debugging. * [REFACTOR] Separated Cloudflare CDN class. * [BUGFIX] Image Optimization Fixed issue where certain MySQL version failed to create img_optm table. (@philippwidmer) * [BUGFIX] Image Optimization Fixed issue where callback validation failed when pulling and sending request simultaneously. * [GUI] Added Slack community banner. * [INTEGRATION] CDN compatibility with WPML multiple domains. (@egemensarica) = 2.0 - Mar 7 2018 = * [NEW FEATURE] Image Optimization Added level up guidance. * [REFACTOR] Image Optimization Refactored Image Optimization class. * [IAPI] Image Optimization New European Image Optimization server (EU2). * [IMPROVEMENT] Image Optimization Manual pull action continues pulling until complete. * [IMPROVEMENT] CDN Multiple CDNs can now be randomized for a single resource. * [IMPROVEMENT] Image Optimization Improved compatibility of long src images. * [IMPROVEMENT] Image Optimization Reduced runtime load. * [IMPROVEMENT] Image Optimization Avoid potential loss/reset of notified images status when pulling. * [IMPROVEMENT] Image Optimization Avoid duplicated optimization for multiple records in Media that have the same image source. * [IMPROVEMENT] Image Optimization Fixed issue where phantom images continued to show in not-yet-requested queue. * [BUGFIX] Core Improved compatibility when upgrading outside of WP Admin. (@jikatal @TylorB) * [BUGFIX] Crawler Improved HTTP/2 compatibility to avoid erroneous blacklisting. * [BUGFIX] Crawler Changing Delay setting will use server variable for min value validation if set. * [UPDATE] Crawler Added HTTP/2 protocol switch in the Crawler settings. * [UPDATE] Removed unnecessary translation strings. * [GUI] Display translated role group name string instead of English values. (@Richard Hordern) * [GUI] Added Join LiteSpeed Slack link. * [GUI] Import / Export Cosmetic changes to Import Settings file field. * [INTEGRATION] Improved compatibility with WPML Media for Image Optimization. (@szmigieldesign) = 1.9.1.1 - February 20 2018 = * [Hotfix] Removed empty crawler when no role simulation is set. = 1.9.1 - February 20 2018 = * [NEW FEATURE] Role Simulation crawler. * [NEW FEATURE] WebP multiple crawler. * [NEW FEATURE] HTTP/2 support for crawler. * [BUGFIX] Fixed a js bug with the auto complete mobile user agents field when cache mobile is turned on. * [BUGFIX] Fixed a constant undefined warning after activation. * [GUI] Sitemap generation settings are no longer hidden when using a custom sitemap. = 1.9 - February 12 2018 = * [NEW FEATURE] Inline CSS/JS Minify. * [IMPROVEMENT] Removed Composer vendor to thin the plugin folder. * [UPDATE] Tweaked H2 to H1 in Admin headings for accessibility. (@steverep) * [GUI] Added Mobile User Agents to basic view. * [GUI] Moved Object Cache & Browser Cache from Cache tab to Advanced tab. * [GUI] Moved LSCache Purge All from Adminbar to dropdown menu. = 1.8.3 - February 2 2018 = * [NEW FEATURE] Crawler server variable limitation support. * [IMPROVEMENT] Added Store Transients option to fix transients missing issue when Cache Wp-Admin setting is OFF. * [IMPROVEMENT] Tweaked ARIA support. (@steverep) * [IMPROVEMENT] Used strpos instead of strncmp for performance. (@Zach E) * [BUGFIX] Transient cache can now be removed when the Cache Wp-Admin setting is ON in Object Cache. * [BUGFIX] Network sites can now save Advanced settings. * [BUGFIX] Media list now shows in network sites. * [BUGFIX] Show Crawler Status button is working again. * [UPDATE] Fixed a couple of potential PHP notices in the Network cache tab and when no vary group is set. * [GUI] Added Learn More link to all setting pages. = 1.8.2 - January 29 2018 = * [NEW FEATURE] Instant Click in the Advanced tab. * [NEW FEATURE] Import/Export settings. * [NEW FEATURE] Opcode Cache support. * [NEW FEATURE] Basic/Advanced setting view. * [IMPROVEMENT] Added ARIA support in widget settings. * [BUGFIX] Multiple WordPress instances with same Object Cache address will no longer see shared data. * [BUGFIX] WebP Replacement may now be set at the Network level. * [BUGFIX] Object Cache file can now be removed at the Network level uninstall. = 1.8.1 - January 22 2018 = * [NEW FEATURE] Object Cache now supports Redis. * [IMPROVEMENT] Memcached Object Cache now supports authorization. * [IMPROVEMENT] A 500 error will no longer be encountered when turning on Object Cache without the proper PHP extension installed. * [BUGFIX] Object Cache settings can now be saved at the Network level. * [BUGFIX] Mu-plugin now supports Network setting. * [BUGFIX] Fixed admin bar showing inaccurate Edit Page link. * [UPDATE] Removed warning information when no Memcached server is available. = 1.8 - January 17 2018 = * [NEW FEATURE] Object Cache. * [REFACTOR] Refactored Log class. * [REFACTOR] Refactored LSCWP basic const initialization. * [BUGFIX] Fixed Cloudflare domain search breaking when saving more than 50 domains under a single account. * [UPDATE] Log filter settings are now their own item in the wp-option table. = 1.7.2 - January 5 2018 = * [NEW FEATURE] Cloudflare API support. * [IMPROVEMENT] IAPI key can now be reset to avoid issues when domain is changed. * [BUGFIX] Fixed JS optimizer breaking certain plugins JS. * [UPDATE] Added cdn settings to environment report. * [GUI] Added more shortcuts to backend adminbar. * [INTEGRATION] WooCommerce visitors are now served from public cache when cart is empty. = 1.7.1.1 - December 29 2017 = * [BUGFIX] Fixed an extra trailing underscore issue when saving multiple lines with DNS Prefetch. * [UPDATE] Cleaned up unused dependency vendor files. = 1.7.1 - December 28 2017 = * [NEW FEATURE] Added DNS Prefetch setting on the Optimize page. * [NEW FEATURE] Added Combined File Max Size setting on the Tuning page. * [IMPROVEMENT] Improved JS/CSS minify to achieve higher page scores. * [IMPROVEMENT] Optimized JS/CSS files will not be served from private cache for OLS or with ESI off. * [UPDATE] Fixed a potential warning for new installations on the Settings page. * [UPDATE] Fixed an issue with guest users occasionally receiving PHP warnings. * [BUGFIX] Fixed a bug with the Improve HTTPS Compatibility setting failing to save. * Thanks to all of our users for your encouragement and support! Happy New Year! * PS: Lookout 2018, we're back! = 1.7 - December 22 2017 = * [NEW FEATURE] Drop Query Strings setting in the Cache tab. * [NEW FEATURE] Multiple CDN Mapping in the CDN tab. * [IMPROVEMENT] Improve HTTP/HTTPS Compatibility setting in the Advanced tab. * [IMPROVEMENT] Keep JS/CSS original position in HTML when excluded in setting. * [IAPI] Reset client level credit after Image Optimization data is destroyed. * [REFACTOR] Refactored build_input/textarea functions in admin_display class. * [REFACTOR] Refactored CDN class. * [GUI] Added a notice to Image Optimization and Crawler to warn when cache is disabled. * [GUI] Improved image optimization indicator styles in Media Library List. = 1.6.7 - December 15 2017 = * [IAPI] Added ability to scan for new image thumbnail sizes and auto-resend image optimization requests. * [IAPI] Added ability to destroy all optimization data. * [IAPI] Updated IAPI to v1.6.7. * [INTEGRATION] Fixed certain 3rd party plugins calling REST without user nonce causing logged in users to be served as guest. = 1.6.6.1 - December 8 2017 = * [IAPI] Limit first-time submission to one image group for test-run purposes. * [BUGFIX] Fixed vary group generation issue associated with custom user role plugins. * [BUGFIX] Fixed WooCommerce issue where logged-in users were erroneously purged when ESI is off. * [BUGFIX] Fixed WooCommerce cache miss issue when ESI is off. = 1.6.6 - December 6 2017 = * [NEW FEATURE] Preserve EXIF in Media setting. * [NEW FEATURE] Clear log button in Debug Log Viewer. * [IAPI] Fixed notified images resetting to previous status when pulling. * [IAPI] Fixed HTTPS compatibility for image optimization initialization. * [IAPI] An error message is now displayed when image optimization request submission is bypassed due to a lack of credit. * [IAPI] IAPI v1.6.6. * [IMPROVEMENT] Support JS data-no-optimize attribute to bypass optimization. * [GUI] Added image group wiki link. * [INTEGRATION] Improved compatibility with Login With Ajax. * [INTEGRATION] Added function_exists check for WooCommerce to avoid 500 errors. = 1.6.5.1 - December 1 2017 = * [HOTFIX] Fixed warning message on Edit .htaccess page. = 1.6.5 - November 30 2017 = * [IAPI] Manually pull image optimization action button. * [IAPI] Automatic credit system for image optimization to bypass unfinished image optimization error. * [IAPI] Notify failed images from LiteSpeed's Image Server. * [IAPI] Reset/Clear failed images feature. * [IAPI] Redesigned report page. * [REFACTOR] Moved pull_img logic from admin_api to media. * [BUGFIX] Fixed a compatibility issue for clients who have allow_url_open setting off. * [BUGFIX] Fixed logged in users sometimes being served from guest cache. * [UPDATE] Environment report is no longer saved to a file. * [UPDATE] Removed crawler reset notification. * [GUI] Added more details on image optimization. * [GUI] Removed info page from admin menu. * [GUI] Moved environment report from network level to single site level. * [GUI] Crawler time added in a user friendly format. * [INTEGRATION] Improved compatibility with FacetWP json call. = 1.6.4 - November 22 2017 = * [NEW FEATURE] Send env reports privately with a new built-in report number referral system. * [IAPI] Increased request timeout to fix a cUrl 28 timeout issue. * [BUGFIX] Fixed a TTL max value validation bug. * [INTEGRATION] Improved Contact Form 7 REST call compatibility for logged in users. * Thanks for all your ratings. That encouraged us to be more diligent. Happy Thanksgiving. = 1.6.3 - November 17 2017 = * [NEW FEATURE] Only async Google Fonts setting. * [NEW FEATURE] Only create WebP images when optimizing setting. * [NEW FEATURE] Batch switch images to original/optimized versions in Image Optimization. * [NEW FEATURE] Browser Cache TTL setting. * [NEW FEATURE] Cache WooCommerce Cart setting. * [IMPROVEMENT] Moved optimized JS/CSS snippet in header html to after meta charset. * [IMPROVEMENT] Added a constant for better JS/CSS optimization compatibility for different dir WordPress installation. * [IAPI] Take over failed callback check instead of bypassing it. * [IAPI] Image optimization requests are now limited to 500 images per request. * [BUGFIX] Fixed a parsing failure bug not using attributes in html elements with dash. * [BUGFIX] Fixed a bug causing non-script code to move to the top of a page when not using combination. * [UPDATE] Added detailed logs for external link detection. * [UPDATE] Added new lines in footer comment to avoid Firefox crash when enabled HTML minify. * [API] `Purge private` / `Purge private all` / `Add private tag` functions. * [GUI] Redesigned image optimization operation links in Media Lib list. * [GUI] Tweaked wp-admin form save button position. * [GUI] Added "learn more" link for image optimization. = 1.6.2.1 - November 6 2017 = * [INTEGRATION] Improved compatibility with old WooCommerce versions to avoid unknown 500 errors. * [BUGFIX] Fixed WebP images sometimes being used in non-supported browsers. * [BUGFIX] Kept query strings for HTTP/2 push to avoid re-fetching pushed sources. * [BUGFIX] Excluded JS/CSS from HTTP/2 push when using CDN. * [GUI] Fixed a typo in Media list. * [GUI] Made more image optimization strings translatable. * [GUI] Updated Tuning description to include API documentation. = 1.6.2 - November 3 2017 = * [NEW FEATURE] Do Not Cache Roles. * [NEW FEATURE] Use WebP Images for supported browsers. * [NEW FEATURE] Disable Optimization Poll ON/OFF Switch in Media tab. * [NEW FEATURE] Revert image optimization per image in Media list. * [NEW FEATURE] Disable/Enable image WebP per image in Media list. * [IAPI] Limit optimized images fetching cron to a single process. * [IAPI] Updated IAPI to v1.6.2. * [IAPI] Fixed repeating image request issue by adding a failure status to local images. * [REFACTOR] Refactored login vary logic. = 1.6.1 - October 29 2017 = * [IAPI] Updated LiteSpeed Image Optimization Server API to v1.6.1. = 1.6 - October 27 2017 = * [NEW FEATURE] Image Optimization. * [NEW FEATURE] Role Excludes for Optimization. * [NEW FEATURE] Combined CSS/JS Priority. * [IMPROVEMENT] Bypass CDN for login/register page. * [UPDATE] Expanded ExpiresByType rules to include new font types. ( Thanks to JMCA2 ) * [UPDATE] Removed duplicated type param in admin action link. * [BUGFIX] Fixed CDN wrongly replacing img base64 and "fake" src in JS. * [BUGFIX] Fixed image lazy load replacing base64 src. * [BUGFIX] Fixed a typo in Optimize class exception. * [GUI] New Tuning tab in admin settings panel. * [REFACTOR] Simplified router by reducing actions and adding types. * [REFACTOR] Renamed `run()` to `finalize()` in buffer process. = 1.5 - October 17 2017 = * [NEW FEATURE] Exclude JQuery (to fix inline JS error when using JS Combine). * [NEW FEATURE] Load JQuery Remotely. * [NEW FEATURE] JS Deferred Excludes. * [NEW FEATURE] Lazy Load Images Excludes. * [NEW FEATURE] Lazy Load Image Placeholder. * [IMPROVEMENT] Improved Lazy Load size attribute for w3c validator. * [UPDATE] Added basic caching info and LSCWP version to HTML comment. * [UPDATE] Added debug log to HTML detection. * [BUGFIX] Fixed potential font CORS issue when using CDN. * [GUI] Added API docs to setting description. * [REFACTOR] Relocated all classes under includes with backwards compatibility. * [REFACTOR] Relocated admin templates. = 1.4 - October 11 2017 = * [NEW FEATURE] Lazy load images/iframes. * [NEW FEATURE] Clean CSS/JS optimizer data functionality in DB Optimizer panel. * [NEW FEATURE] Exclude certain URIs from optimizer. * [IMPROVEMENT] Improved optimizer HTML check compatibility to avoid conflicts with ESI functions. * [IMPROVEMENT] Added support for using ^ when matching the start of a path in matching settings. * [IMPROVEMENT] Added wildcard support in CDN original URL. * [IMPROVEMENT] Moved optimizer table initialization to admin setting panel with failure warning. * [UPDATE] Added a one-time welcome banner. * [UPDATE] Partly relocated class: 'api'. * [API] Added API wrapper for removing wrapped HTML output. * [INTEGRATION] Fixed WooCommerce conflict with optimizer. * [INTEGRATION] Private cache support for WooCommerce v3.2.0+. * [GUI] Added No Optimization menu to frontend. = 1.3.1.1 - October 6 2017 = * [BUGFIX] Improved optimizer table creating process in certain database charset to avoid css/js minify/combination failure. = 1.3.1 - October 5 2017 = * [NEW FEATURE] Remove WP Emoji Option. * [IMPROVEMENT] Separated optimizer data from wp_options to improve compatibility with backup plugins. * [IMPROVEMENT] Enhanced crawler cron hook to prevent de-scheduling in some cases. * [IMPROVEMENT] Enhanced Remove Query Strings to also remove Emoji query strings. * [IMPROVEMENT] Enhanced HTML detection when extra spaces are present at the beginning. * [UPDATE] Added private cache support for OLS. * [BUGFIX] Self-redirects are no longer cached. * [BUGFIX] Fixed css async lib warning when loading in HTTP/2 push. = 1.3 - October 1 2017 = * [NEW FEATURE] Added Browser Cache support. * [NEW FEATURE] Added Remove Query Strings support. * [NEW FEATURE] Added Remove Google Fonts support. * [NEW FEATURE] Added Load CSS Asynchronously support. * [NEW FEATURE] Added Load JS Deferred support. * [NEW FEATURE] Added Critical CSS Rules support. * [NEW FEATURE] Added Private Cached URIs support. * [NEW FEATURE] Added Do Not Cache Query Strings support. * [NEW FEATURE] Added frontend adminbar shortcuts ( Purge this page/Do Not Cache/Private cache ). * [IMPROVEMENT] Do Not Cache URIs now supports full URLs. * [IMPROVEMENT] Improved performance of Do Not Cache settings. * [IMPROVEMENT] Encrypted vary cookie. * [IMPROVEMENT] Enhanced HTML optimizer. * [IMPROVEMENT] Limited combined file size to avoid heavy memory usage. * [IMPROVEMENT] CDN supports custom upload folder for media files. * [API] Added purge single post API. * [API] Added version compare API. * [API] Enhanced ESI API for third party plugins. * [INTEGRATION] Compatibility with NextGEN Gallery v2.2.14. * [INTEGRATION] Compatibility with Caldera Forms v1.5.6.2+. * [BUGFIX] Fixed CDN&Minify compatibility with css url links. * [BUGFIX] Fixed .htaccess being regenerated despite there being no changes. * [BUGFIX] Fixed CDN path bug for subfolder WP instance. * [BUGFIX] Fixed crawler path bug for subfolder WP instance with different site url and home url. * [BUGFIX] Fixed a potential Optimizer generating redundant duplicated JS in HTML bug. * [GUI] Added a more easily accessed submit button in admin settings. * [GUI] Admin settings page cosmetic changes. * [GUI] Reorganized GUI css/img folder structure. * [REFACTOR] Refactored configuration init. * [REFACTOR] Refactored admin setting save. * [REFACTOR] Refactored .htaccess operator and rewrite rule generation. = 1.2.3.1 - September 20 2017 = * [UPDATE] Improved PHP5.3 compatibility. = 1.2.3 - September 20 2017 = * [NEW FEATURE] Added CDN support. * [IMPROVEMENT] Improved compatibility when upgrading by fixing a possible fatal error. * [IMPROVEMENT] Added support for custom wp-content paths. * [BUGFIX] Fixed non-primary network blogs not being able to minify. * [BUGFIX] Fixed HTML Minify preventing Facebook from being able to parse og tags. * [BUGFIX] Preview page is no longer cacheable. * [BUGFIX] Corrected log and crawler timezone to match set WP timezone. * [GUI] Revamp of plugin GUI. = 1.2.2 - September 15 2017 = * [NEW FEATURE] Added CSS/JS minification. * [NEW FEATURE] Added CSS/JS combining. * [NEW FEATURE] Added CSS/JS HTTP/2 server push. * [NEW FEATURE] Added HTML minification. * [NEW FEATURE] Added CSS/JS cache purge button in management. * [UPDATE] Improved debug log formatting. * [UPDATE] Fixed some description typos. = 1.2.1 - September 7 2017 = * [NEW FEATURE] Added Database Optimizer. * [NEW FEATURE] Added Tab switch shortcut. * [IMPROVEMENT] Added cache disabled check for management pages. * [IMPROVEMENT] Renamed .htaccess backup for security. * [BUGFIX] Fixed woocommerce default ESI setting bug. * [REFACTOR] Show ESI page for OLS with notice. * [REFACTOR] Management Purge GUI updated. = 1.2.0.1 - September 1 2017 = * [BUGFIX] Fixed a naming bug for network constant ON2. = 1.2.0 - September 1 2017 = * [NEW FEATURE] Added ESI support. * [NEW FEATURE] Added a private cache TTL setting. * [NEW FEATURE] Debug level can now be set to either 'Basic' or 'Advanced'. * [REFACTOR] Renamed const 'NOTSET' to 'ON2' in class config. = 1.1.6 - August 23 2017 = * [NEW FEATURE] Added option to privately cache logged-in users. * [NEW FEATURE] Added option to privately cache commenters. * [NEW FEATURE] Added option to cache requests made through WordPress REST API. * [BUGFIX] Fixed network 3rd-party full-page cache detection bug. * [GUI] New Cache and Purge menus in Settings. = 1.1.5.1 - August 16 2017 = * [IMPROVEMENT] Improved compatibility of frontend&backend .htaccess path detection when site url is different than installation path. * [UPDATE] Removed unused format string from header tags. * [BUGFIX] 'showheader' Admin Query String now works. * [REFACTOR] Cache tags will no longer output if not needed. = 1.1.5 - August 10 2017 = * [NEW FEATURE] Scheduled Purge URLs feature. * [NEW FEATURE] Added buffer callback to improve compatibility with some plugins that force buffer cleaning. * [NEW FEATURE] Hide purge_all admin bar quick link if cache is disabled. * [NEW FEATURE] Required htaccess rules are now displayed when .htaccess is not writable. * [NEW FEATURE] Debug log features: filter log support; heartbeat control; log file size limit; log viewer. * [IMPROVEMENT] Separate crawler access log. * [IMPROVEMENT] Lazy PURGE requests made after output are now queued and working. * [IMPROVEMENT] Improved readme.txt with keywords relating to our compatible plugins list. * [UPDATE] 'ExpiresDefault' conflict msg is now closeable and only appears in the .htaccess edit screen. * [UPDATE] Improved debug log formatting. * [INTEGRATION] Compatibility with MainWP plugin. * [BUGFIX] Fixed WooCommerce order not purging product stock quantity. * [BUGFIX] Fixed WooCommerce scheduled sale price not updating issue. * [REFACTOR] Combined cache_enable functions into a single function. = 1.1.4 - August 1 2017 = * [IMPROVEMENT] Unexpected rewrite rules will now show an error message. * [IMPROVEMENT] Added Cache Tag Prefix setting info in the Env Report and Info page. * [IMPROVEMENT] LSCWP setting link is now displayed in the plugin list. * [IMPROVEMENT] Improved performance when setting cache control. * [UPDATE] Added backward compatibility for v1.1.2.2 API calls. (used by 3rd-party plugins) * [BUGFIX] Fixed WPCLI purge tag/category never succeeding. = 1.1.3 - July 31 2017 = * [NEW FEATURE] New LiteSpeed_Cache_API class and documentation for 3rd party integration. * [NEW FEATURE] New API function litespeed_purge_single_post($post_id). * [NEW FEATURE] PHP CLI support for crawler. * [IMPROVEMENT] Set 'no cache' for same location 301 redirects. * [IMPROVEMENT] Improved LiteSpeed footer comment compatibility. * [UPDATE] Removed 'cache tag prefix' setting. * [BUGFIX] Fixed a bug involving CLI purge all. * [BUGFIX] Crawler now honors X-LiteSpeed-Cache-Control for the 'no-cache' header. * [BUGFIX] Cache/rewrite rules are now cleared when the plugin is uninstalled. * [BUGFIX] Prevent incorrect removal of the advanced-cache.php on deactivation if it was added by another plugin. * [BUGFIX] Fixed subfolder WP installations being unable to Purge By URL using a full URL path. * [REFACTOR] Reorganized existing code for an upcoming ESI release. = 1.1.2.2 - July 13 2017 = * [BUGFIX] Fixed blank page in Hebrew language post editor by removing unused font-awesome and jquery-ui css libraries. = 1.1.2.1 - July 5 2017 = * [UPDATE] Improved compatibility with WooCommerce v3.1.0. = 1.1.2 - June 20 2017 = * [BUGFIX] Fixed missing form close tag. * [UPDATE] Added a wiki link for enabling the crawler. * [UPDATE] Improved Site IP description. * [UPDATE] Added an introduction to the crawler on the Information page. * [REFACTOR] Added more detailed error messages for Site IP and Custom Sitemap settings. = 1.1.1.1 - June 15 2017 = * [BUGFIX] Hotfix for insufficient validation of site IP value in crawler settings. = 1.1.1 - June 15 2017 = * [NEW] As of LiteSpeed Web Server v.5.1.16, the crawler can now be enabled/disabled at the server level. * [NEW] Added the ability to provide a custom sitemap for crawling. * [NEW] Added ability to use site IP address directly in crawler settings. * [NEW] Crawler performance improved with the use of new custom user agent 'lsrunner'. * [NEW] "Purge By URLs" now supports full URL paths. * [NEW] Added thirdparty WP-PostRatings compatibility. * [BUGFIX] Cache is now cleared when changing post status from published to draft. * [BUGFIX] WHM activation message no longer continues to reappear after being dismissed. * [COSMETIC] Display recommended values for settings. = 1.1.0.1 - June 8 2017 = * [UPDATE] Improved default crawler interval setting. * [UPDATE] Tested up to WP 4.8. * [BUGFIX] Fixed compatibility with plugins that output json data. * [BUGFIX] Fixed tab switching bug. * [BUGFIX] Removed occasional duplicated messages on save. * [COSMETIC] Improved crawler tooltips and descriptions. = 1.1.0 - June 6 2017 = * [NEW] Added a crawler - this includes configuration options and a dedicated admin page. Uses wp-cron * [NEW] Added integration for WPLister * [NEW] Added integration for Avada * [UPDATE] General structure of the plugin revamped * [UPDATE] Improved look of admin pages * [BUGFIX] Fix any/all wp-content path retrieval issues * [BUGFIX] Use realpath to clear symbolic link when determining .htaccess paths * [BUGFIX] Fixed a bug where upgrading multiple plugins did not trigger a purge all * [BUGFIX] Fixed a bug where cli import_options did not actually update the options. * [REFACTOR] Most of the files in the code were split into more, smaller files = 1.0.15 - April 20 2017 = * [NEW] Added Purge Pages and Purge Recent Posts Widget pages options. * [NEW] Added wp-cli command for setting and getting options. * [NEW] Added an import/export options cli command. * [NEW] Added wpForo integration. * [NEW] Added Theme My Login integration. * [UPDATE] Purge adjacent posts when publish a new post. * [UPDATE] Change environment report file to .php and increase security. * [UPDATE] Added new purgeby option to wp-cli. * [UPDATE] Remove nag for multiple sites. * [UPDATE] Only inject LiteSpeed javascripts in LiteSpeed pages. * [REFACTOR] Properly check for zero in ttl settings. * [BUGFIX] Fixed the 404 issue that can be caused by some certain plugins when save the settings. * [BUGFIX] Fixed mu-plugin compatibility. * [BUGFIX] Fixed problem with creating zip backup. * [BUGFIX] Fixed conflict with jetpack. = 1.0.14.1 - January 31 2017 = * [UPDATE] Removed Freemius integration due to feedback. = 1.0.14 - January 30 2017 = * [NEW] Added error page caching. Currently supports 403, 404, 500s. * [NEW] Added a purge errors action. * [NEW] Added wp-cli integration. * [UPDATE] Added support for multiple varies. * [UPDATE] Reorganize the admin interface to be less cluttered. * [UPDATE] Add support for LiteSpeed Web ADC. * [UPDATE] Add Freemius integration. * [REFACTOR] Made some changes so that the rewrite rules are a little more consistent. * [BUGFIX] Check member type before adding purge all button. * [BUGFIX] Fixed a bug where activating/deactivating the plugin quickly caused the WP_CACHE error to show up. * [BUGFIX] Handle more characters in the rewrite parser. * [BUGFIX] Correctly purge posts when they are made public/private. = 1.0.13.1 - November 30 2016 = * [BUGFIX] Fixed a bug where a global was being used without checking existence first, causing unnecessary log entries. = 1.0.13 - November 28 2016 = * [NEW] Add an Empty Entire Cache button. * [NEW] Add stale logic to certain purge actions. * [NEW] Add option to use primary site settings for all subsites in a multisite environment. * [NEW] Add support for Aelia CurrencySwitcher * [UPDATE] Add logic to allow third party vary headers * [UPDATE] Handle password protected pages differently. * [BUGFIX] Fixed bug caused by saving settings. * [BUGFIX] FIxed bug when searching for advanced-cache.php = 1.0.12 - November 14 2016 = * [NEW] Added logic to generate environment reports. * [NEW] Created a notice that will be triggered when the WHM Plugin installs this plugin. This will notify users when the plugin is installed by their server admin. * [NEW] Added the option to cache 404 pages via 404 Page TTL setting. * [NEW] Reworked log system to be based on selection of yes or no instead of log level. * [NEW] Added support for Autoptimize. * [NEW] Added Better WP Minify integration. * [UPDATE] On plugin disable, clear .htaccess. * [UPDATE] Introduced URL tag. Changed Purge by URL to use this new tag. * [BUGFIX] Fixed a bug triggered when .htaccess files were empty. * [BUGFIX] Correctly determine when to clear files in multisite environments (wp-config, advanced-cache, etc.). * [BUGFIX] When disabling the cache, settings changed in the same save will now be saved. * [BUGFIX] Various bugs from setting changes and multisite fixed. * [BUGFIX] Fixed two bugs with the .htaccess path search. * [BUGFIX] Do not alter $_GET in add_quick_purge. This may cause issues for functionality occurring later in the same request. * [BUGFIX] Right to left radio settings were incorrectly displayed. The radio buttons themselves were the opposite direction of the associated text. = 1.0.11 - October 11 2016 = * [NEW] The plugin will now set cachelookup public on. * [NEW] New option - check advanced-cache.php. This enables users to have two caching plugins enabled at the same time as long as the other plugin is not used for caching purposes. For example, using another cache plugin for css/js minification. * [UPDATE] Rules added by the plugin will now be inserted into an LSCACHE START/END PLUGIN comment block. * [UPDATE] For woocommerce pages, if a user visits a non-cached page with a non-empty cart, do not cache the page. * [UPDATE] If woocommerce needs to display any notice, do not cache the page. * [UPDATE] Single site settings are now in both the litespeed cache submenu and the settings submenu. * [BUGFIX] Multisite network options were not updated on upgrade. This is now corrected. = 1.0.10 - September 16 2016 = * Added a check for LSCACHE_NO_CACHE definition. * Added a Purge All button to the admin bar. * Added logic to purge the cache when upgrading a plugin or theme. By default this is enabled on single site installations and disabled on multisite installations. * Added support for WooCommerce Versions < 2.5.0. * Added .htaccess backup rotation. Every 10 backups, an .htaccess archive will be created. If one already exists, it will be overwritten. * Moved some settings to the new Specific Pages tab to reduce clutter in the General tab. * The .htaccess editor is now disabled if DISALLOW_FILE_EDIT is set. * After saving the Cache Tag Prefix setting, all cache will be purged. = 1.0.9.1 - August 26 2016 = * Fixed a bug where an error displayed on the configuration screen despite not being an error. * Change logic to check .htaccess file less often. = 1.0.9 - August 25 2016 = * [NEW] Added functionality to cache and purge feeds. * [NEW] Added cache tag prefix setting to avoid conflicts when using LiteSpeed Cache for WordPress with LiteSpeed Cache for XenForo and LiteMage. * [NEW] Added hooks to allow third party plugins to create config options. * [NEW] Added WooCommerce config options. * The plugin now also checks for wp-config in the parent directory. * Improved WooCommerce support. * Changed .htaccess backup process. Will create a .htaccess_lscachebak_orig file if one does not exist. If it does already exist, creates a backup using the date and timestamp. * Fixed a bug where get_home_path() sometimes returned an invalid path. * Fixed a bug where if the .htaccess was removed from a WordPress subdirectory, it was not handled properly. = 1.0.8.1 - July 28 2016 = * Fixed a bug where check cacheable was sometimes not hit. * Fixed a bug where extra slashes in clear rules were stripped. = 1.0.8 - July 25 2016 = * Added purge all on update check to purge by post id logic. * Added uninstall logic. * Added configuration for caching favicons. * Added configuration for caching the login page. * Added configuration for caching php resources (scripts/stylesheets accessed as .php). * Set login cookie if user is logged in and it isn’t set. * Improved NextGenGallery support to include new actions. * Now displays a notice on the network admin if WP_CACHE is not set. * Fixed a few php syntax issues. * Fixed a bug where purge by pid didn’t work. * Fixed a bug where the Network Admin settings were shown when the plugin was active in a subsite, but not network active. * Fixed a bug where the Advanced Cache check would sometimes not work. = 1.0.7.1 - May 26 2016 = * Fixed a bug where enabling purge all in the auto purge on update settings page did not purge the correct blogs. * Fixed a bug reported by user wpc on our forums where enabling purge all in the auto purge on update settings page caused nothing to be cached. = 1.0.7 - May 24 2016 = * Added login cookie configuration to the Advanced Settings page. * Added support for WPTouch plugin. * Added support for WP-Polls plugin. * Added Like Dislike Counter third party integration. * Added support for Admin IP Query String Actions. * Added confirmation pop up for purge all. * Refactor: LiteSpeed_Cache_Admin is now split into LiteSpeed_Cache_Admin, LiteSpeed_Cache_Admin_Display, and LiteSpeed_Cache_Admin_Rules * Refactor: Rename functions to accurately represent their functionality * Fixed a bug that sometimes caused a “no valid header” error message. = 1.0.6 - May 5 2016 = * Fixed a bug reported by Knut Sparhell that prevented dashboard widgets from being opened or closed. * Fixed a bug reported by Knut Sparhell that caused problems with https support for admin pages. = 1.0.5 - April 26 2016 = * [BETA] Added NextGen Gallery plugin support. * Added third party plugin integration. * Improved cache tag system. * Improved formatting for admin settings pages. * Converted bbPress to use the new third party integration system. * Converted WooCommerce to use the new third party integration system. * If .htaccess is not writable, disable separate mobile view and do not cache cookies/user agents. * Cache is now automatically purged when disabled. * Fixed a bug where .htaccess was not checked properly when adding common rules. * Fixed a bug where multisite setups would be completely purged when one site requested a purge all. = 1.0.4 - April 7 2016 = * Added logic to cache commenters. * Added htaccess backup to the install script. * Added an htaccess editor in the wp-admin dashboard. * Added do not cache user agents. * Added do not cache cookies. * Created new LiteSpeed Cache Settings submenu entries. * Implemented Separate Mobile View. * Modified WP_CACHE not defined message to only show up for users who can manage options. * Moved enabled all/disable all from network management to network settings. * Fixed a bug where WP_CACHE was not defined on activation if it was commented out. = 1.0.3 - March 23 2016 = * Added a Purge Front Page button to the LiteSpeed Cache Management page. * Added a Default Front Page TTL option to the general settings. * Added ability to define web application specific cookie names through rewrite rules to handle logged-in cookie conflicts when using multiple web applications. [Requires LSWS 5.0.15+] * Improved WooCommerce handling. * Fixed a bug where activating lscwp sets the “enable cache” radio button to enabled, but the cache was not enabled by default. * Refactored code to make it cleaner. * Updated readme.txt. = 1.0.2 - March 11 2016 = * Added a "Use Network Admin Setting" option for "Enable LiteSpeed Cache". For single sites, this choice will default to enabled. * Added enable/disable all buttons for network admin. This controls the setting of all managed sites with "Use Network Admin Setting" selected for "Enable LiteSpeed Cache". * Exclude by Category/Tag are now text areas to avoid slow load times on the LiteSpeed Cache Settings page for sites with a large number of categories/tags. * Added a new line to advanced-cache.php to allow identification as a LiteSpeed Cache file. * Activation/Deactivation are now better handled in multi-site environments. * Enable LiteSpeed Cache setting is now a radio button selection instead of a single checkbox. * Can now add '$' to the end of a URL in Exclude URI to perform an exact match. * The _lscache_vary cookie will now be deleted upon logout. * Fixed a bug in multi-site setups that would cause a "function already defined" error. = 1.0.1 - March 8 2016 = * Added Do Not Cache by URI, by Category, and by Tag. URI is a prefix/string equals match. * Added a help tab for plugin compatibilities. * Created logic for other plugins to purge a single post if updated. * Fixed a bug where woocommerce pages that display the cart were cached. * Fixed a bug where admin menus in multi-site setups were not correctly displayed. * Fixed a bug where logged in users were served public cached pages. * Fixed a compatibility bug with bbPress. If there is a new forum/topic/reply, the parent pages will now be purged as well. * Fixed a bug that didn't allow cron job to update scheduled posts. = 1.0.0 - January 20 2016 = * Initial Release. Welcome To – Frugalinnovationhub.com

Blog

  • My insights on delivering actionable feedback

    Key takeaways:

    • Actionable feedback is specific and provides clear steps for improvement, fostering growth instead of confusion.
    • Creating a safe space for feedback encourages open dialogue and enhances the learning experience.
    • Effective feedback is timely and balanced, combining praise with constructive criticism to inspire resilience and growth.
    • Challenges in feedback delivery include emotional stakes, individual reactions, and time constraints; understanding these can improve conversations.

    Understanding actionable feedback

    Understanding actionable feedback

    When I think of actionable feedback, I picture it as a powerful tool for growth rather than just criticism. It’s not just about telling someone what they did wrong; it’s about guiding them toward improvement. Have you ever received feedback that left you more confused than motivated? I know I have, and that’s where the clarity in actionability becomes vital.

    Consider this: actionable feedback should be specific, so the recipient knows exactly what steps to take next. For instance, I once participated in a workshop where a mentor pointed out that my presentation style felt too rushed. Instead of just saying “slow down,” they suggested specific pacing techniques and even shared a breathing exercise. That simple shift made all the difference in my delivery.

    It’s also essential to create a safe space for feedback, where honesty can thrive without fear of judgment. Remember an instance when you hesitated to share your thoughts because you anticipated backlash? I’ve felt that too, and it’s such a barrier to real growth. When we foster openness, the feedback exchanged transforms from a chore into a valuable conversation that nurtures confidence and skills.

    Importance of feedback in learning

    Importance of feedback in learning

    Feedback plays a crucial role in the learning process, serving as a bridge between where we are and where we want to be. I recall a time in college when I submitted an essay that didn’t quite hit the mark. The feedback I received wasn’t just a letter grade; it highlighted areas for improvement. That guidance made me rethink my approach and ultimately helped me develop a more analytical writing style.

    Moreover, timely feedback can significantly enhance motivation. Have you ever felt invigorated after receiving praise for your efforts? I remember leading a group project where our instructor pointed out the strengths in our teamwork. That recognition fueled our drive to achieve even better results in future assignments. It made the learning experience not just about results, but also about the journey we took together.

    In addition to motivation, feedback cultivates self-awareness, helping learners identify their strengths and weaknesses. I once participated in a peer review session where we exchanged feedback on our project presentations. Listening to the perspectives of my peers opened my eyes to aspects I hadn’t considered, allowing me to refine my skills. Such experiences demonstrate how feedback is not merely a evaluative tool but a vital component of personal and academic growth.

    Characteristics of effective feedback

    Characteristics of effective feedback

    Effective feedback is clear and specific. I remember a time during a workshop where my facilitator highlighted not just what I did wrong in my presentation but also gave actionable steps to improve. Instead of vague comments, he broke down my performance into manageable parts, making it easier for me to grasp what needed change. Have you ever received feedback that left you confused? Clarity is key to ensuring that learners know exactly what they need to work on.

    Additionally, constructive feedback should be balanced. When I was critiqued on my teaching methods, I felt a mix of anxiety and hope. My mentor emphasized not only my shortcomings but also acknowledged my strengths, creating a safe environment for growth. This combination of praise and critique can inspire resilience. It’s a gentle reminder that progress often comes from a blend of encouragement and honest assessment.

    Lastly, timely feedback makes a world of difference. I vividly recall receiving a quick response to an art project I submitted. The immediate insights helped me make adjustments while my ideas were still fresh in my mind. Can you think of a situation where prompt feedback changed your perspective or approach? I’ve learned that timely input prevents small issues from becoming larger problems down the road, allowing learners to make real-time adjustments and learn more effectively.

    Strategies for delivering feedback

    Strategies for delivering feedback

    One effective strategy for delivering feedback is to use the “sandwich” approach. I once had a colleague who would start with something positive, followed by areas for improvement, and then end on another encouraging note. This method not only softened the blow of criticism but also made me feel valued and motivated to improve. Have you tried this technique? It can really build rapport and make the feedback feel less daunting.

    Another strategy involves asking questions during the feedback session. I’ve found that when I engage the learner by asking them how they feel about their work, they often uncover insights that I hadn’t considered. For example, during a group project review, one of my students shared their perspective on their challenges, which led to a deeper discussion about how we could address those together. Isn’t it fascinating how sometimes the best insights come from the learner themselves?

    Personalizing feedback to the individual is also crucial. I remember tailoring my comments based on a student’s unique learning style. When I took the time to acknowledge how they approached tasks differently, they responded enthusiastically, and their progress skyrocketed. Have you noticed how people engage more when feedback feels relevant to them? Customizing feedback not only shows that you care but also enhances its effectiveness.

    Common challenges in feedback delivery

    Common challenges in feedback delivery

    Delivering feedback effectively can be challenging due to the emotional stakes involved. I recall a time when I had to provide critical feedback to a fellow educator after a workshop. The atmosphere turned tense, and I felt the weight of my words. It made me realize that the fear of hurting someone’s feelings often hampers honest communication. How can we overcome this emotional barrier while ensuring that the feedback remains constructive?

    Another common challenge is the variability in how individuals accept feedback. During a training session, I had one participant who thrived under direct critique, yet another seemed to retreat into self-doubt with the same comments. This taught me that understanding a person’s background and emotional readiness for feedback is crucial. Have you ever noticed how different individuals can react so differently to the same feedback? Tailoring the approach accordingly can pave the way for more productive discussions.

    Lastly, time constraints can significantly hinder effective feedback delivery. I once rushed through a feedback session due to a tight schedule and ended up missing key points that could have helped the participant grow. It left me wondering: how often do we prioritize speed over substance in feedback conversations? Taking the time to delve into specific examples and ensuring clarity not only benefits the recipient but enriches the whole learning environment.

    My personal experiences with feedback

    My personal experiences with feedback

    When I first started giving feedback, I often found it difficult to strike the right tone. I remember a workshop where I offered suggestions to a colleague, and instead of feeling constructive, it felt more like criticism. It was a wake-up call for me; I realized that feedback is not just about pointing out flaws but about fostering an environment where growth can flourish. Have you ever felt that pressure to be positive while still being honest?

    In another instance, I received feedback on my presentation style during a professional development event. It was eye-opening to see how something I considered my strength was viewed differently by others. Their insights challenged my perspective and ultimately pushed me to adapt my delivery. Isn’t it fascinating how a little constructive feedback can open new avenues of improvement?

    There was also a moment when I was on the receiving end of vague feedback, and it drove me up the wall. A mentor once told me to “just work on being better,” but what does that even mean? It highlighted the importance of specificity in feedback. Clarity not only avoids frustration but also motivates individuals to take concrete action. When have you found clarity in feedback to be a game changer?

  • My insights on creating unity in diversity

    Key takeaways:

    • Unity in diversity emphasizes celebrating differences while fostering connections among various cultures and backgrounds.
    • Inclusive educational events enhance learning outcomes by encouraging empathy, social skills, and innovative ideas through diverse perspectives.
    • Engaging activities, such as storytelling and collaborative projects, can create stronger relationships and a sense of belonging among participants.
    • Personal experiences, like community dialogues and multicultural events, highlight the importance of shared goals and the transformative power of collaboration.

    Understanding unity in diversity

    Understanding unity in diversity

    Unity in diversity goes beyond mere coexistence; it’s about celebrating differences while finding common ground. I often reflect on my experiences at multicultural festivals where the sights and sounds of various cultures blend into something beautiful. It makes me wonder: how can we harness this richness in everyday life?

    The most powerful examples of unity in diversity come from collaboration across different backgrounds. I remember a community project where individuals from various age groups and cultures worked together to create a mural. Each stroke told a unique story, showing me that our differences can inspire creativity and foster deeper connections. Have you ever participated in something similar? What did you learn from sharing your perspective?

    Understanding unity in diversity requires an open heart and a willingness to listen. I’ve had conversations with people from opposing views that opened my eyes to new perspectives, and it was enlightening. This experience reinforces the idea that when we take the time to understand each other, we can create a stronger, more inclusive community. How might your own interactions shape your view of others?

    Importance of unity in diversity

    Importance of unity in diversity

    Unity in diversity is essential because it fosters mutual respect and understanding among individuals from various backgrounds. I recall attending a workshop where participants shared their life stories. Listening to experiences so different from my own opened my eyes to the richness diversity brings and reminded me of the beauty in our varied perspectives. Can you think of a time when hearing someone else’s story changed your viewpoint?

    Moreover, embracing unity in diversity strengthens communities and enhances problem-solving. In my neighborhood, we launched a discussion group that included voices from different cultures. The diverse input not only sparked innovative solutions to local issues but also fostered a sense of belonging among us. Isn’t it fascinating how collective wisdom can emerge when we come together, valuing our unique contributions?

    Finally, unity in diversity promotes resilience in the face of challenges. When I faced a difficult situation in my career, it was the support of colleagues from diverse backgrounds that helped me find solutions. Their varied approaches showed me that together, we were more adaptable and resourceful. How do you think a diverse team can tackle problems more effectively than a homogenous one?

    Benefits of inclusive educational events

    Benefits of inclusive educational events

    Inclusive educational events provide a space where everyone feels valued, which can significantly enhance learning outcomes. I remember attending a seminar where individuals from various backgrounds came together to discuss educational equity. The rich discussions not only broadened my understanding but also encouraged deeper engagement among participants, leading to a more vibrant learning atmosphere. Have you ever been in a situation where inclusion made a real difference in how you learned?

    Another benefit I’ve observed is the cultivation of empathy and social skills. During a multicultural educational fair I participated in, I noticed how students connected through shared activities, despite their differences. This interaction taught them to appreciate perspectives different from their own, fostering friendships that crossed cultural lines. Isn’t it amazing how educational settings can nurture not just knowledge but also compassion and understanding?

    Additionally, inclusive events often lead to innovative ideas and approaches. I once attended a workshop focused on adaptive teaching strategies that drew on insights from diverse educators. Their unique experiences inspired creative solutions to common classroom challenges, illustrating how varied perspectives can lead to breakthroughs. Can you see how these fresh ideas can reshape traditional practices in education?

    Strategies for promoting diversity

    Strategies for promoting diversity

    One effective strategy for promoting diversity in educational events is to actively involve diverse voices in the planning stage. When I helped organize a community workshop, we made a conscious effort to include representatives from different cultural backgrounds in our discussions. This not only enriched the content but also brought in perspectives that I never would have considered otherwise. Have you ever thought about how powerful it can be to have a range of voices contributing to a single goal?

    Another approach that I found impactful is the integration of culturally relevant themes throughout the event’s programming. In a recent conference I attended, each session highlighted unique contributions from various cultures to a common subject, such as education technology. This layering of diversity within the discussions not only engaged me but also provided participants with a chance to connect emotionally with the material. Don’t you think that embedding cultural relevance makes the experience more memorable and meaningful?

    Also, creating opportunities for informal networking can greatly enhance diversity. At a recent event, I noticed how informal break sessions allowed attendees to discover common interests beyond their backgrounds. This led to organic conversations that sparked collaborations across diverse groups. Isn’t it fascinating how some of the best connections happen in casual settings, fostering unity in the midst of diversity?

    Creating engaging activities for all

    Creating engaging activities for all

    Creating engaging activities for all often requires a multi-faceted approach. I once participated in an interactive workshop where the organizers incorporated different learning styles into their activities. Visual aids, hands-on projects, and group discussions were all part of the mix. It struck me how each element appealed to various participants, sparking genuine interest and participation. Have you noticed how we all learn differently, and how this diversity is a strength rather than a barrier?

    Another strategy that I found particularly effective is the use of storytelling as a central activity. During one event, we invited participants to share personal stories related to a common theme, which not only broke the ice but also fostered a sense of belonging. I remember feeling a deep connection with others as we exchanged experiences, realizing that our individual stories weaved together a vibrant tapestry of shared understanding. Doesn’t it feel incredible when personal narratives bring people closer, highlighting our common humanity?

    Additionally, gamifying learning experiences can create an engaging environment for everyone involved. At a summer camp I coordinated, we introduced team-based challenges that required collaboration to solve puzzles rooted in cultural knowledge. The excitement and laughter that echoed during these activities told me everything; they brought together participants from different backgrounds, turning potential barriers into bridges of unity. Wouldn’t you agree that the joy of play often transcends differences?

    Personal experiences in fostering unity

    Personal experiences in fostering unity

    In my experience, organizing community dialogues has been one of the most rewarding ways to foster unity. During one such event, I watched as individuals from diverse backgrounds sat together, sharing their perspectives on local issues. It was eye-opening to witness the initial hesitations transform into animated discussions, revealing how similar concerns could bridge our differences. Haven’t you felt that moment when a shared goal brings people together, breaking down walls?

    Another memorable instance was when I led a multicultural potluck. Everyone contributed a dish that represented their heritage, and as we sampled each other’s food, the rich stories behind those recipes came alive. I remember one participant sharing the significance of their dish during a traditional celebration, which not only educated us but also created warmth and camaraderie. Is there anything more unifying than breaking bread together and realizing our unique practices can enrich the collective experience?

    Finally, I found that collaborative art projects can offer a profound means of fostering unity. I once helped organize a mural painting day where participants of all ages contributed to a communal piece. As I painted alongside others, sharing laughter and encouragement, I felt the strokes of our brushes intertwine as if our lives were connected through art. Can you think of a time when creativity helped you connect with someone in a way that transcended differences?

    Lessons learned from diverse events

    Lessons learned from diverse events

    Diverse events have taught me that empathy can flourish in unexpected places. I remember attending a community festival where participants were encouraged to share their personal stories. Listening to one woman recount her journey as a refugee made me reflect deeply on my own assumptions and privilege. Have you ever had a moment where someone’s story has changed the way you see the world?

    Another significant lesson was the power of collaboration. At a recent youth summit, I observed how students from different backgrounds tackled social challenges together. Their solutions were not only innovative but also deeply rooted in the realities of their diverse experiences. It reminded me that when we pool our unique perspectives, the outcomes can be greater than the sum of our parts. Isn’t it fascinating how teamwork can morph into a melting pot of ideas?

    I’ve also learned that the act of celebrating differences can create a sense of belonging. During an international day event, I encountered vibrant cultural performances that left everyone in awe. These showcase moments not only educated the audience but also fostered pride within the performers. How uplifting is it to see someone light up while sharing their culture? It’s these instances that truly highlight the joy of unity amidst diversity.

  • My insights on constructive partnerships

    Key takeaways:

    • Constructive partnerships in education foster collaboration and innovation through shared goals and trust among stakeholders.
    • Educational events enhance community building and professional development, inspiring educators and students alike.
    • Successful partnerships rely on clear communication, mutual respect, and trust to establish a collaborative environment.
    • The future of educational partnerships aims for increased inclusivity and learner-centered approaches, enhancing real-world learning experiences.

    Understanding constructive partnerships in education

    Understanding constructive partnerships in education

    Constructive partnerships in education are more than just agreements; they are dynamic relationships built on trust and shared goals. I remember attending a workshop where educators, parents, and community leaders came together to brainstorm improvements for our local schools. Seeing everyone’s different perspectives was enlightening; it reinforced the idea that collaboration can lead to innovative solutions that no single group could achieve alone.

    When I reflect on the partnerships I’ve witnessed, I often wonder, what would happen if more stakeholders engaged with one another regularly? The energy in the room during those collaborative meetings was palpable. I felt that each voice mattered, and this collective ownership fostered an environment where creativity thrived, sparking conversations that turned into actionable plans for our students’ futures.

    Building these partnerships requires ongoing communication and an openness to feedback. In my experience, I’ve seen hesitancy dissolve when individuals truly listen to one another. It’s fascinating how shared experiences can cultivate empathy and understanding, creating a solid foundation for positive change in the educational landscape.

    Importance of educational events

    Importance of educational events

    Educational events serve as vital platforms for knowledge exchange and community building. I recall a literacy fair I participated in, which brought together educators, authors, and students. The joy on the children’s faces as they interacted with their favorite authors was a stark reminder of the power of these gatherings to inspire young minds and foster a love for learning.

    Consider how educational events can enhance professional development for educators. I’ve attended numerous conferences where I left with not only fresh insights but also new friendships with fellow educators. How often do we find ourselves in environments that challenge us to grow? These events provide that unique opportunity, pushing us to think outside our usual parameters and adopt new teaching strategies.

    Moreover, educational events create a sense of community. I vividly remember the closing session of a workshop where participants shared personal stories of triumph and challenge in their classrooms. It struck me how this sense of belonging can ignite passion and resilience among educators. Isn’t it remarkable how a simple event can bring people together and encourage collaboration long after it’s over?

    Benefits of constructive partnerships

    Benefits of constructive partnerships

    Collaboration is one of the most powerful benefits of constructive partnerships. In my experience, partnering with local businesses for educational events often leads to innovative resources that enrich the learning experience. I once collaborated with a local science center, which resulted in hands-on workshops that sparked curiosity in students. Have you noticed how interactive learning can shifts student engagement? It’s like flipping a switch.

    Another tremendous advantage is the sharing of expertise and resources. I remember partnering with a fellow educator who specialized in technology use in the classroom. Our combined efforts not only expanded our teaching arsenal but also deepened our understanding of how to integrate tech effectively. How often do educators find themselves reinventing the wheel? A constructive partnership can help minimize that redundancy, maximizing our impact.

    Lastly, building constructive partnerships cultivates a network of support that extends beyond the event itself. Reflecting on a mentorship program I initiated with a small group of educators, I saw firsthand how ongoing communication helped us navigate challenges long after the event concluded. This supportive network transformed into a lifeline for sharing resources, ideas, and strategies. Doesn’t it feel empowering to know you’re not alone in this journey?

    Key elements of successful partnerships

    Key elements of successful partnerships

    Building successful partnerships hinges on clear communication. I remember a time when I worked with a community organization to host a seminar. We set aside regular check-ins to discuss our goals and expectations, which kept everyone aligned and focused on a shared vision. Have you ever realized how much smoother a project flows when everyone is on the same page?

    Trust is another cornerstone of effective partnerships. In my experience, I found that trust deepened when there was transparency about limitations and resources. During a joint workshop with a nonprofit, we openly discussed our strengths and weaknesses, which created a safe space for honest dialogue. Doesn’t it feel refreshing to collaborate with partners who are straightforward and reliable?

    Lastly, mutual respect plays a vital role in nurturing partnerships. I recall collaborating with a local university where we acknowledged each other’s expertise and contributions wholeheartedly. This respect fostered a collaborative atmosphere where ideas flourished. How empowering is it to work alongside others who value what you bring to the table?

    Strategies for building partnerships

    Strategies for building partnerships

    Finding common ground is essential when building partnerships. In my experience, I once joined forces with a local business on a community literacy event. We spent time discussing our shared values and objectives, which helped us identify what mattered most to both sides. Isn’t it incredible how alignment on core values can ignite passion and commitment in a project?

    Another strategy that has proven effective is establishing roles and responsibilities early on. On a recent project with an educational tech company, we clearly defined who was handling logistics, marketing, and content creation. This clarity not only minimized confusion but also empowered each of us to take ownership of our tasks. Have you noticed how well-thought-out roles can elevate teamwork and lead to efficient outcomes?

    Finally, celebrating small wins together can strengthen partnerships significantly. During a joint conference planning with a fellow educator, we made it a point to acknowledge each milestone, from securing sponsors to finalizing the agenda. Those moments of recognition solidified our teamwork and reinforced our bond. Don’t you think that taking a moment to appreciate achievements, no matter how small, can really energize a collaborative effort?

    Personal experiences with partnerships

    Personal experiences with partnerships

    Partnerships can evoke a range of emotions, as I’ve learned during my tenure as a community program coordinator. I recall working with a nonprofit organization on an after-school initiative. Initially, I was apprehensive about aligning our methods, but as we shared our teaching philosophies, I found that our differences sparked creative solutions. Isn’t it fascinating how overcoming initial hesitations can lead to breakthroughs in collaboration?

    I’ve also encountered the bittersweet realization that not every partnership lasts. A previous collaboration with a startup focused on educational resources had so much potential but faltered due to miscommunication. This experience taught me the importance of consistent dialogue. Have you ever found that the most difficult lessons come from unexpected outcomes?

    Reflecting on my work with various educational institutions, I remember one partnership that blossomed into a mentorship program. The blend of experienced educators and eager newcomers created a rich learning environment filled with growth and camaraderie. The joy of witnessing these relationships flourish was truly rewarding. Doesn’t it inspire you to think about how transformative partnerships can be for everyone involved?

    Future of educational partnerships

    Future of educational partnerships

    The future of educational partnerships is evolving rapidly, reflecting our increasing interconnectedness. I recall attending a conference where educators from around the globe collaborated on solutions for common challenges. It struck me how our shared goals created a sense of unity despite geographical distances. What if we embraced technology to make these partnerships more dynamic and far-reaching?

    Looking ahead, I believe that inclusive partnerships will be key. For example, I once partnered with a tech company to develop interactive workshops. Engaging students directly in their learning through innovative tools not only enriched their experience, but it also empowered them to take ownership of their education. Isn’t it exciting to think about how such collaborations can break down traditional barriers and open new avenues for student engagement?

    As I reflect on my journey, I see the potential for partnerships to become more learner-centered. Imagine schools collaborating with local businesses to create real-world learning experiences, where students can solve actual community problems. This approach fosters not just knowledge, but a sense of responsibility and belonging. Doesn’t it make you wonder how transformative these connections could be for students’ futures?

  • My insights on bridging gaps through shared stories

    Key takeaways:

    • Educational events facilitate knowledge sharing and inspire lifelong learning through diverse storytelling.
    • Storytelling enhances empathy and connection, making learning experiences more relatable and impactful.
    • Bridging gaps through shared narratives fosters collaboration, resilience, and can improve academic performance.
    • Various methods of storytelling, including digital and small group sessions, strengthen community ties and provide deeper connections.

    Understanding educational events

    Understanding educational events

    Educational events serve as vital platforms for knowledge sharing and community engagement. I remember attending a workshop that opened my eyes to different teaching methodologies; it felt like peering through a window to a world of possibilities. Have you ever had that moment where a single event shifted your perspective?

    The beauty of educational events lies in their ability to bring diverse people together—from experienced educators to curious novices. I often find that it’s those informal conversations during breaks that provide the most profound insights; you start discussing a topic, and suddenly, you’re exploring ideas from angles you hadn’t considered before. How often do we underestimate the power of collective learning?

    Moreover, these events can evoke a sense of belonging and inspiration. I recall sitting in an audience, listening to a speaker share their journey; their authenticity resonated with me deeply, igniting a passion for lifelong learning. Isn’t it fascinating how a shared story can bridge gaps and foster connection among individuals?

    Importance of storytelling in education

    Importance of storytelling in education

    Storytelling in education is not just a tool; it’s a bridge that connects us to ideas and emotions. I vividly recall a classroom experience where a teacher shared a story from their childhood, transforming what could have been a dry lesson into an unforgettable adventure. Isn’t it remarkable how a narrative can turn facts into relatable experiences, making learning so much more impactful?

    In my experience, stories have the incredible ability to personalize content. During my time as a tutor, I often used anecdotes to illustrate complex concepts. For instance, when explaining perseverance in mathematics, I shared my own struggles with a difficult problem that took weeks to solve. Students connected with that vulnerability, and it opened up a dialogue that wasn’t possible through explanations alone.

    Additionally, storytelling fosters empathy and understanding among students. I remember facilitating a workshop where participants shared their diverse backgrounds through storytelling. Watching individuals relate to each other’s experiences revealed a depth of connection that traditional lectures simply couldn’t achieve. How often do we underestimate how a shared narrative can break down barriers and build a sense of community?

    Benefits of bridging gaps

    Benefits of bridging gaps

    Bridging gaps through shared stories brings numerous benefits, particularly in enhancing collaboration and fostering teamwork. I recall a group project in college where our diverse perspectives clashed initially. Yet, after spending an hour sharing our personal stories related to the topic, we discovered common ground that enabled us to work harmoniously. Isn’t it fascinating how shared experiences can turn potential conflict into a collaborative spirit?

    Moreover, bridging gaps cultivates resilience and understanding, not just among peers but also toward oneself. I once participated in a storytelling circle focused on overcoming personal challenges. Listening to others share their trials helped me appreciate my own journey and struggles. How often do we overlook the power of stories to remind us we are not alone in our challenges?

    Lastly, the benefits extend to academic performance as well. I remember working with students who were initially disengaged because of language barriers or cultural differences. By encouraging them to share their cultural narratives, they not only improved their language skills but also expressed ideas more confidently. Isn’t it amazing how using stories as a tool can transform barriers into bridges, leading to both personal and academic growth?

    Methods to share stories

    Methods to share stories

    Story-sharing can take many forms, each with its unique strengths. For instance, I once took part in a digital storytelling workshop where we used video clips and music to enrich our narratives. It was eye-opening to see how visuals and sound could amplify emotions and capture our audience’s attention. Have you ever noticed how a well-edited video can often convey the essence of a story more powerfully than just words alone?

    Another effective method is through storytelling sessions in small groups. I remember facilitating a workshop where participants were encouraged to share their experiences in pairs. This intimate setting fostered trust, allowing for deeper connections to be made. Isn’t it interesting how merely being in a more personal environment can change the dynamics of storytelling?

    Lastly, written stories can also play a significant role in bridging gaps. I recall contributing to an online forum where individuals from diverse backgrounds exchanged personal essays. Reading their stories not only expanded my worldview, but it also ignited meaningful discussions around shared themes. Isn’t it remarkable how putting pen to paper—or fingers to keyboard—can create a sense of community even from afar?

    Examples of successful educational events

    Examples of successful educational events

    One exemplary educational event that comes to mind is a community art festival I attended, where local artists led workshops for all age groups. Each session encouraged participants to share their art and stories behind them, creating an atmosphere buzzing with creativity and connection. I was struck by how participants often left their comfort zones, revealing vulnerable aspects of their lives through their artwork. Have you ever seen how a splash of color can express emotions that words sometimes fail to capture?

    Another event I recall vividly was a storytelling night at a local library focused on personal narratives from immigrants. The evening was filled with laughter, tears, and a deep sense of understanding as individuals shared what propelled them from their homelands. After listening to a mother recount her journey to provide a better life for her children, I realized how these shared stories could foster empathy among diverse audiences. Isn’t it fascinating how tales of struggle and resilience can bring communities together?

    Lastly, I think of a technology-driven educational seminar I attended where participants collaborated on projects that addressed real-world issues. During this event, participants were encouraged to present their solutions through storytelling, blending facts with personal anecdotes. This narrative approach not only made the solutions relatable but also sparked animated discussions that bridged differing perspectives. Have you ever witnessed how the intersection of storytelling and problem-solving can birth innovative ideas while building community ties?

    Personal experiences in storytelling

    Personal experiences in storytelling

    During a recent workshop on digital storytelling, I shared my own experience of overcoming a panic disorder through creative expression. It was cathartic—watching others resonate with my journey as they engaged with their stories. Have you ever seen how vulnerability can forge immediate connections among strangers?

    Another powerful moment occurred at a storytelling event focused on mental health. Listening to a young man recount his struggle with depression wasn’t just poignant; it opened dialogues around stigma that often silence voices. I left that evening feeling a renewed sense of purpose. Isn’t it remarkable how a single story can ripple through lives, inspiring change?

    I also recall teaching a group of children how to craft their stories. Watching their eyes light up as they shared their unique tales prompted me to realize the genuine power of storytelling. These young narrators, unhindered by societal expectations, reminded me that we often underestimate the depth children can bring to a narrative. How often do we let our own voices shine through, just like they did?

  • My insights on connecting different fields

    Key takeaways:

    • Educational events foster meaningful connections that enhance learning through collaboration across disciplines.
    • Multidisciplinary connections lead to innovative solutions that address complex problems, as seen in projects that combine diverse fields.
    • Engaging participants through interactive elements in workshops and seminars significantly improves the learning experience.
    • Organizing events in welcoming venues and leveraging social networks can greatly enhance participation and community impact.

    Understanding educational events

    Understanding educational events

    Educational events play a crucial role in the learning landscape. I remember attending a workshop that completely shifted my perspective on group dynamics. The energy in the room was infectious, inspiring deep connections among attendees, which often leads to richer discussions and a more engaging learning experience.

    Different types of educational events, such as seminars, workshops, and conferences, serve unique purposes. Have you ever thought about how each format shapes our learning? For instance, a hands-on workshop feels intimate, allowing for direct practice and immediate feedback, while a conference can spark innovative ideas through exposure to diverse viewpoints.

    In my view, the heart of any educational event lies in meaningful connections. These connections often transform isolated knowledge into broader understanding. I once met a mentor at a conference who encouraged me to explore fields outside my expertise, prompting me to integrate new ideas into my own work. It’s a testament to how educational events can bridge gaps between disciplines and foster creativity.

    Importance of multidisciplinary connections

    Importance of multidisciplinary connections

    Building multidisciplinary connections is essential in today’s fast-paced world. I recall a panel discussion I attended where experts from technology, education, and psychology came together. The interplay of their ideas was exhilarating, demonstrating how varied perspectives can lead to innovative solutions. This experience made me realize that collaboration across disciplines not only enhances creativity but also addresses complex problems that a single field might struggle to solve.

    Whenever I think about the benefits of multidisciplinary collaboration, I can’t help but recall a project I worked on that combined art and science. It was fascinating to see how these seemingly disparate fields could weave together to create a unique educational tool. This synergy sparked a vibrant exchange of ideas, illustrating that when we connect different disciplines, we open the door to endless possibilities and richer insights.

    Moreover, fostering connections across fields can directly impact our approach to learning. Have you ever found a new passion through unexpected collaboration? I did when I took a course that blended marketing with environmental science. This unexpected intersection not only broadened my skill set but deepened my understanding of how different areas influence one another. Engaging with various disciplines equips us with a more holistic viewpoint, essential in creating effective learning experiences.

    Examples of successful educational events

    Examples of successful educational events

    One memorable educational event I attended was a hands-on workshop that integrated technology and history. As we explored innovative ways to use augmented reality to bring historical events to life, I felt a surge of excitement. It was incredible to witness participants, ranging from tech enthusiasts to history buffs, collaborate in real time. The atmosphere buzzed with creativity, and I left feeling inspired by the powerful connections formed between these two distinct fields.

    Another standout occasion was a community-driven science fair where artists teamed up with scientists to create interactive exhibits. I remember walking through the displays and marveling at how an artist’s perspective could make complex scientific concepts accessible and engaging. It reminded me of the beauty that arises when different minds come together; the potential for enlightenment and understanding is truly limitless. Have you ever experienced an event where the fusion of different disciplines left you in awe?

    Lastly, I participated in a cross-disciplinary conference that featured keynote speakers from diverse backgrounds, including medicine and education. The discussions centered around mental health awareness in schools, and I was struck by how each speaker contributed unique insights from their own field. This blend of perspectives not only enhanced the dialogue but also sparked new initiatives in our community. It’s moments like these that reinforce the notion that successful educational events are built on the foundation of collaboration and shared knowledge.

    Strategies for integrating different fields

    Strategies for integrating different fields

    Strategies for integrating different fields require a thoughtful approach to collaboration. One effective way I’ve seen is through the organization of interdisciplinary workshops that encourage participants to share their expertise. For instance, at a recent event, a group of environmental scientists and local artists came together to create educational materials highlighting climate change’s impact on biodiversity. Watching them brainstorm was a reminder that the synergy of ideas can lead to innovative solutions.

    Another strategy involves creating networking opportunities that foster relationship-building between professionals from varying domains. I recall a meet-up focused on education technology, where teachers and software developers mingled over coffee. The conversations flowed naturally, turning technical jargon into relatable stories. This connection not only facilitated the sharing of skills but also ignited collaborative projects that revolutionized learning experiences in classrooms.

    Lastly, incorporating interactive elements can bridge gaps between fields effectively. During a seminar I attended, a culinary expert collaborated with nutritionists to develop a program around healthy eating. Attendees were not just passive listeners; they tasted dishes that reflected nutritional science principles. This experience vividly illustrated how engagement makes learning more impactful. How often do we remember facts compared to experiences that engage multiple senses? It’s moments like these that redefine our understanding and appreciation of education.

    Personal experiences in connecting fields

    Personal experiences in connecting fields

    I once had the opportunity to attend a conference where scientists and artists collaborated on a community project. The air was electric with creativity as they experimented with visual storytelling to communicate complex scientific concepts. I remember feeling genuinely inspired when a biologist spoke about their work while a painter transformed those ideas into a stunning mural before our eyes. Witnessing this connection was not just about collaboration; it was about celebrating the unique perspectives that each field brings to the table.

    In another instance, I participated in a series of workshops that connected educators with innovators in the tech industry. It was fascinating to see how educators expressed their frustrations with limited resources and outdated methods. Meanwhile, tech gurus listened intently and suddenly began brainstorming solutions that could seamlessly integrate their technology into the classroom. I couldn’t help but wonder—could this be the future of education? It was a powerful reminder that when professionals share their struggles and successes, the landscape of learning can radically transform.

    One particularly memorable experience took place at a sustainability summit, where I was amazed by how diverse disciplines intersected. A local farmer shared his struggles, while an engineer provided insights on renewable energy solutions. That day, I felt a deep sense of connection as folks from both fields forged new plans for sustainable agriculture. It made me realize that connecting diverse fields is not just about knowledge transfer; it’s about fostering a sense of community and shared purpose that transcends professional boundaries. Isn’t it incredible how different perspectives can unite to create sustainable, practical solutions?

    Benefits of connecting diverse perspectives

    Benefits of connecting diverse perspectives

    Connecting diverse perspectives can lead to groundbreaking ideas that might never emerge within the confines of a single discipline. I recall a moment at a multicultural festival where chefs, nutritionists, and cultural historians came together. They didn’t just share recipes; they opened a dialogue about food’s role in community identity. This exchange reminded me how different viewpoints can deepen our understanding, sparking innovation that honors tradition while embracing change.

    When I collaborated with local nonprofits to develop programs for underserved communities, I witnessed firsthand the power of varied experiences. Social workers, educators, and entrepreneurs each brought unique insights to the table, helping us craft solutions that were not only practical but also culturally relevant. It struck me—how often do we miss the potential for change because we operate in silos? Connecting these diverse voices can illuminate blind spots and lead to more effective strategies.

    I often think about a panel discussion I attended that featured individuals from the arts, sciences, and community activism. Each speaker painted a different picture of what success looked like in their respective fields. Their stories were not just personal successes; they interwove common challenges and triumphs, revealing threads that bind us all. Isn’t it incredible how sharing these varied narratives can foster empathy and drive collective problem-solving?

    Tips for organizing educational events

    Tips for organizing educational events

    When organizing educational events, consider the venue carefully; it can profoundly affect the atmosphere and engagement levels. I recall hosting a workshop in a cozy community center instead of a sterile conference hall. The difference was palpable—participants felt more relaxed and open to discussing their ideas. Have you ever noticed how a welcoming space can transform interactions?

    Effective communication is crucial, so be sure to promote your event through various channels. When I once partnered with local influencers to market a seminar, I was surprised by the turnout. Their endorsement not only broadened our reach but also built credibility within the community. Who knew that leveraging social connections could amplify participation so significantly?

    Lastly, incorporating interactive elements can significantly enhance the learning experience. During a recent educational fair, I facilitated hands-on activities that allowed attendees to apply concepts in real-time. The energy in the room was electric! It made me wonder—how often do we overlook the power of engagement in learning environments? Offering a variety of participatory formats can truly foster deeper understanding and retention.

  • My insights on collaborative moderation

    Key takeaways:

    • Collaborative moderation involves multiple individuals managing discussions collectively, fostering respect and constructive dialogue.
    • Establishing clear roles and communication channels improves efficiency and trust among moderators.
    • Utilizing tools like Slack and Google Docs enhances real-time engagement and coordination during events.
    • Fostering a sense of shared ownership among moderators leads to more impactful and dynamic discussions.

    Definition of collaborative moderation

    Definition of collaborative moderation

    Collaborative moderation refers to the process where multiple individuals work together to manage and oversee discussions within a platform, such as forums or social networks. It involves shared responsibility, where each participant contributes to maintaining a positive environment by ensuring that conversations remain respectful and constructive. I remember a time when I joined a collaborative team for an online educational event; the diverse perspectives brought such richness to our discussions, reminding me of the power of collective engagement.

    In my experience, the essence of collaborative moderation lies in its ability to harness the strengths of a community rather than relying on a single moderator. Have you ever felt overwhelmed by the sheer volume of voices in a conversation? With collaborative moderation, that chaos transforms into a harmonious dialogue. Each member becomes a guardian of the community, revealing their unique insights while working towards a common goal of enhancing learning and knowledge sharing.

    Moreover, collaborative moderation fosters a sense of ownership among participants, encouraging them to invest in the community’s well-being. I vividly recall the excitement during our brainstorming sessions—everyone played a role in shaping the guidelines for interaction. This cooperative spirit not only enriches the content but also builds trust and connectivity among users. Isn’t it fascinating how such a simple shift in the dynamic can lead to profound engagement and learning?

    Strategies for effective collaborative moderation

    Strategies for effective collaborative moderation

    Effective collaborative moderation can be significantly enhanced by establishing clear communication channels among team members. In a recent online workshop, we set up a dedicated chat room where moderators could quickly discuss flags and share observations. This practice not only streamlined our responses but also created a sense of camaraderie. Do you think having transparent discussions behind the scenes might alleviate confusion during live events?

    Another strategy lies in defining roles and responsibilities early on. In one forum I participated in, we assigned specific areas of focus to each moderator—some handled conflicts, while others ensured that resources were up to date. This division of labor allowed us to capitalize on our strengths and manage our time effectively. It felt empowering to know precisely how I could contribute, making our oversight collaborative yet structured.

    Finally, regular feedback sessions among the moderation team can lead to continuous improvement. I remember how a simple post-event survey revealed insights I hadn’t considered, such as different participants’ perspectives on our engagement strategies. This feedback loop not only sharpened our skills but also motivated me to be more attuned to the community’s needs. Isn’t it incredible how listening to each other can elevate our approach to moderation?

    Tools for collaborative moderation

    Tools for collaborative moderation

    Tools for collaborative moderation can truly transform the way we engage with audiences. I vividly recall using platforms like Slack during one particularly busy online seminar. It allowed us to share real-time updates and address issues as they arose, making the experience smoother for everyone involved. Isn’t it fascinating how the right tool can create a sense of immediacy and connection among team members?

    Additionally, utilizing shared documents, like Google Docs, can be a game changer for collaborative moderation. I found that creating a living document to track ongoing discussions and moderator notes made it easier for everyone to stay aligned. Each time I saw someone add a thought or suggestion, it reminded me of the power of collective knowledge. Do you ever wonder how much richer our moderation experience would be if we harnessed these insights in real-time?

    Moreover, leveraging tools like Trello for task management has improved our efficiency immensely. I remember a specific event where we outlined our action items and timelines, visually mapping out our responsibilities. Being able to see progress in one glance not only kept us accountable but also ignited a sense of shared purpose. Have you ever experienced the motivation that comes from seeing a project come together collaboratively? It’s that feeling that makes all the effort worthwhile.

    Personal experiences with collaborative moderation

    Personal experiences with collaborative moderation

    One of my most memorable experiences with collaborative moderation took place during a regional educational conference. We had a diverse group of moderators, each bringing unique perspectives to the team. I was amazed at how our discussions flowed in a group chat leading up to the event; the constant exchange of ideas not only helped to refine our agenda but also fostered a camaraderie that I didn’t expect. Do you think it’s the shared excitement about the event that creates such synergy among moderators?

    During another event, we implemented a rotating moderator system, which was both challenging and invigorating. I distinctly remember stepping in to moderate a session on short notice. Relying on insights from my colleagues, we managed to make the conversation both dynamic and inclusive. That experience made me realize how collaborative moderation nurtures resilience. Have you experienced unexpected moments where teamwork turned potential chaos into seamless collaboration?

    In a different scenario, I found myself facilitating an online panel discussion where we collectively decided to crowdsource questions from the audience. It was extraordinary to witness real-time engagement; we received insights from participants that enhanced our dialogue significantly. The feeling of collaboration—knowing that everyone had a stake in shaping the conversation—was electrifying. How often do you see such active participation, and what impact does it have on the event’s success?

    Tips for successful collaborative moderation

    Tips for successful collaborative moderation

    When it comes to collaborative moderation, establishing clear communication is essential. I remember a time when our team used a shared document to outline our moderator roles and responsibilities. This simple step ensured that everyone was on the same page, preventing misunderstandings and keeping our discussions focused. Have you ever noticed how clarity can transform a chaotic meeting into a productive brainstorming session?

    Another key tip is to embrace flexibility during moderation. I recall a panel session where we had to pivot our agenda due to unexpected audience questions. Instead of sticking rigidly to our plan, we decided to adapt, allowing the conversation to flow naturally. This not only made the event more engaging but also reminded me of the importance of being responsive to the dynamics of the discussion. How often do we miss out on valuable insights by being too set in our ways?

    Lastly, fostering a sense of shared ownership among moderators can significantly enhance the collaborative effort. I once participated in a workshop where each moderator brought their unique flair to the table, and it was enlightening to witness how we built on each other’s ideas. This collective investment in the event’s success not only elevated our performance but also strengthened our relationships. Don’t you think that when everyone feels a sense of belonging, the outcome is invariably more impactful?

  • My insights on audience engagement

    Key takeaways:

    • Personalized interactions and feedback significantly enhance audience engagement, making events feel more meaningful.
    • Interactive components like live polls, Q&A sessions, and small group discussions transform passive listeners into active contributors.
    • Incorporating techniques such as gamification and storytelling fosters deeper engagement and connection among participants.
    • Audience feedback is crucial for refining future events, highlighting the importance of responsiveness and adapting content to meet their needs.

    Understanding audience engagement

    Understanding audience engagement

    Understanding audience engagement is really about creating a connection. I remember organizing a workshop where I tried out various engagement techniques. The most surprising feedback came when attendees mentioned feeling genuinely valued because of personalized interactions—little did I know, these small gestures could make an event feel more meaningful.

    When I think about engagement, I often ask myself: what truly resonates with my audience? For instance, during one educational event, we incorporated live polls and Q&A sessions. The immediate responses I received highlighted not only their interest but also their eagerness to participate actively. It was fascinating to witness how this dynamic transformed a standard presentation into a lively conversation.

    Additionally, I find that understanding your audience’s needs is crucial. One time, after an event, I reached out to participants for feedback. Their insights were eye-opening; they shared a desire for more interactive components. This experience reminded me that being attuned to their preferences can foster a deeper engagement and create a more enriching educational experience.

    Importance of audience engagement

    Importance of audience engagement

    Engaging an audience is not just an added bonus; it’s essential for the success of any educational event. I vividly recall a session I attended where the facilitator actively encouraged questions. The palpable excitement in the room was contagious, and I found myself more invested in the material. Isn’t it fascinating how creating an open dialogue can shift participants from passive listeners to eager contributors?

    In my experience, the depth of engagement significantly influences retention of information. During one workshop, I noticed that when we broke into smaller groups for discussions, attendees not only remembered what was taught but also formed connections with each other. This collaborative atmosphere made the learning experience richer and more memorable. What if we all prioritized these interactive moments to enrich knowledge sharing?

    Moreover, audience engagement often leads to better feedback and insights, which are invaluable for future events. After implementing a few strategies to encourage participation, I was amazed to receive constructive criticism that helped me refine my approach. It dawned on me that a truly engaged audience feels empowered to share their thoughts, ultimately guiding the evolution of events in exciting new directions.

    Strategies for enhancing engagement

    Strategies for enhancing engagement

    Creating a dynamic environment during educational events is key to enhancing engagement. I remember a particular conference where the organizers introduced live polling during sessions. The thrill of seeing our responses reflected in real-time not only kept us on our toes but also ignited a healthy discourse among attendees. Isn’t it rewarding when technology fosters a sense of community rather than isolation?

    Another approach I’ve found effective is incorporating hands-on activities that connect attendees with the content meaningfully. Once, during a workshop on digital teaching tools, we all created a lesson plan using an online platform. Witnessing my peers’ enthusiasm as they experimented and exchanged ideas was refreshing. This kind of involvement makes the learning process not just educational but also fun. Have you ever tried learning alongside your peers in a hands-on way? It can be a game changer.

    Feedback is critical, yet it must be solicited strategically to truly enhance engagement. After one event, I implemented a quick feedback session where participants could anonymously share their thoughts on what worked and what didn’t. The insights were eye-opening, and I felt a sense of camaraderie with the attendees who shared their experiences. How powerful is it when everyone feels their voice can shape future events? This two-way interaction not only provides valuable information but also deepens the connection between facilitators and participants.

    Techniques for interactive sessions

    Techniques for interactive sessions

    Using breakout sessions to encourage smaller group discussions can be an excellent technique for interactive educational events. I recall participating in a workshop where we divided into small teams to tackle challenging scenarios. It was fascinating to witness how diverse perspectives enriched our solutions. Have you ever experienced that “aha” moment when your ideas spark a fantastic collaboration with others? It’s moments like these that really underscore the value of shared learning.

    Incorporating gamification elements can also elevate engagement during sessions. I once attended a training session where we played an educational quiz game, and I found myself genuinely excited about competing with my peers. The friendly rivalry pushed us all to engage more deeply with the content. How can adding a little fun change the atmosphere of learning? It’s amazing how a playful approach encourages active participation.

    Finally, storytelling can be an incredibly powerful tool in educational settings. One time, a speaker shared a personal narrative that related directly to the topic. I could feel the energy shift in the room as everyone leaned forward, captivated by the story. Isn’t it incredible how experiences can draw us in and make complex ideas more relatable? When speakers weave personal anecdotes with educational objectives, it transforms a session into a memorable journey rather than just a transfer of information.

    Measuring audience engagement effectiveness

    Measuring audience engagement effectiveness

    To measure audience engagement effectiveness, I often lean on metrics like participation rates and feedback scores. For instance, during a recent conference, I used real-time polling to assess how engaged the audience was with the material. Not only did the instant feedback show which topics resonated, but it sparked a lively discussion afterwards. Isn’t it fascinating how immediate responses can shape the flow of a session?

    Another key aspect I focus on is analyzing the duration of attendee participation. I once analyzed data from an online seminar I hosted, discovering that participants who stayed for the entire duration had a higher retention of information. This made me realize that simply being present isn’t enough; the way participants interact throughout the event plays a significant role in their overall experience. How often do we learn better when we’re fully immersed in the content?

    Lastly, qualitative measures, like personal testimonials, can provide deep insights into engagement. After one of my workshops, an attendee shared that the interactive elements helped him connect with the subject matter on a personal level. It struck me that those heartfelt reflections are invaluable—they reveal not just what people learned, but how they felt. Have you ever received feedback that moved you? It drives home the notion that engagement isn’t just about participation; it’s about creating lasting connections.

    My personal experiences with engagement

    My personal experiences with engagement

    I remember an educational workshop I led where I consciously focused on building rapport with the audience. Instead of sticking strictly to my script, I engaged in off-the-cuff conversations, which opened the floor to shared experiences. This not only made the learning environment feel more relaxed but also encouraged attendees to actively participate. Have you ever noticed how much easier it is to engage when the atmosphere feels personal?

    On another occasion, I experimented with small group discussions during an online event. Watching participants in breakout rooms, I was amazed by how quickly they opened up, exchanging ideas and insights. It reminded me of how crucial it is to create space for dialogue rather than just presenting information. Doesn’t it feel rewarding when the audience transforms from passive listeners to active contributors?

    I also cherish the moments when attendees share unexpected stories related to the topic at hand. After a recent webinar, a participant recounted a poignant experience that aligned perfectly with our discussion on resilience. That genuine connection not only enriched the conversation but also underscored the importance of emotional engagement. How often do we underestimate the power of personal narratives in educational settings?

    Lessons learned from audience feedback

    Lessons learned from audience feedback

    Feedback from my audience has often provided unexpected insights that shaped my approach to engagement. For instance, after a conference session, I received comments highlighting a desire for more interactive elements. This feedback prompted me to incorporate live polls and Q&A sessions in future events. Have you ever considered how a simple shift in format can enhance participation?

    One lesson that stands out is the importance of addressing feedback promptly. During a series of virtual workshops, I noticed attendees were frustrated with technical issues. Taking their concerns seriously and implementing improvements made a significant difference in the experience. It taught me that responsiveness isn’t just about fixing problems; it’s about showing my audience that their voices matter. How often do we think of engagement as a two-way street?

    I also learned that audience feedback can illuminate topics that resonate deeply, often highlighting areas I hadn’t fully considered. After a workshop on digital literacy, many expressed a keen interest in exploring data privacy. This revelation not only adjusted my content for future sessions but also reinforced the idea that listening can lead to richer educational experiences. Isn’t it fascinating how our audience can guide the journey of learning?

  • My insights on balance in panel discussions

    Key takeaways:

    • Panel discussions thrive on diverse perspectives, enriching understanding and encouraging critical thinking.
    • Maintaining balance is crucial; moderators should ensure equitable speaking opportunities and avoid dominance by any single panelist.
    • Personal stories shared in discussions can foster connection and prompt deeper engagement among participants.
    • Effective moderators play a key role in managing dialogue and incorporating audience interaction for a more vibrant experience.

    Understanding panel discussions

    Understanding panel discussions

    Panel discussions are a dynamic way to explore diverse topics through the lens of multiple perspectives. I remember attending a panel about environmental sustainability where each speaker brought unique insights based on their experiences. This diversity not only sparked my curiosity but also led to a richer understanding of complex issues, highlighting how varied experiences can illuminate a single topic.

    The format of a panel discussion often encourages dialogue rather than simple presentations, facilitating spontaneity and engagement. I’ve seen cases where moderators skillfully weave questions throughout the conversation, prompting panelists to respond to each other rather than just reciting their rehearsed lines. Isn’t it fascinating how this back-and-forth can not only inform but also subtly challenge ideas, transforming how we perceive a subject?

    Understanding the balance within a panel is essential; too much dominance from one panelist can skew the discussion. I once witnessed a panel where one expert kept steering the conversation, overshadowing the others. It made me realize how critical it is for moderators to ensure each voice is heard, as it maintains the richness and integrity of the discussion. Have you ever considered how these dynamics impact the overall learning experience for attendees?

    Importance of balance in discussions

    Importance of balance in discussions

    Maintaining a balance in panel discussions is crucial because it ensures that all voices are heard, contributing to a more comprehensive understanding of the topic at hand. I recall a time at a technology-focused panel where every speaker brought a different viewpoint to the table. When the discussion flowed freely among various experts, it reinforced my belief that the beauty of dialogue lies in contrasting opinions – they create a fuller picture for attendees.

    If one panelist dominates the conversation, it can lead to a narrow understanding of the subject matter. I once sat through a session where one passionate speaker overshadowed others, and I could feel the collective frustration in the room. That experience taught me that when balance is lost, the audience not only misses out on valuable insights but also the opportunity to engage in critical thinking. Isn’t it ironic that while we gather to learn from multiple perspectives, we can sometimes inadvertently silence them?

    Moreover, a well-balanced discussion encourages respectful disagreement, thereby fostering a culture of open-mindedness. I think back to a panel where diverse opinions clashed, yet the atmosphere remained respectful and thought-provoking. It was one of those moments that truly illustrated how balanced conversations can turn uncertainty into understanding, pushing boundaries and encouraging us all to explore ideas we may have never considered otherwise. Wouldn’t you agree that such dialogue is essential for growth?

    Key elements for effective balance

    Key elements for effective balance

    Striking an effective balance in panel discussions hinges on ensuring equitable speaking opportunities for each participant. I vividly recall an event where the moderator employed strategic intervention to gently guide the conversation back to quieter panelists. This approach not only empowered those who were lingering in the background but also enriched the discussion by incorporating perspectives that might have otherwise been lost. Have you ever noticed how quickly a discussion can become one-sided without these subtle yet impactful adjustments?

    Furthermore, it is essential to select a diverse panel that reflects different viewpoints and backgrounds. During one memorable session, I observed that the diversity in expertise led to unexpected conversations, igniting enthusiasm among the audience. Each panelist’s unique story painted a vivid landscape of ideas, making the overall experience much more engaging. It’s fascinating how variety can unlock creativity in dialogue—don’t you think?

    Lastly, an effective moderator plays a pivotal role in maintaining balance through thoughtful questioning. I once participated in a discussion where the moderator skillfully posed questions that prompted both agreement and opposition. This not only kept the dialogue dynamic but encouraged panelists to delve deeper into their areas of expertise. It’s remarkable how a well-timed question can elevate a conversation, spurring curiosity and more profound insights among both panelists and attendees.

    Strategies for maintaining balance

    Strategies for maintaining balance

    One effective strategy I’ve seen is setting clear ground rules before the discussion begins. For instance, at a recent event, the moderator reminded everyone of the importance of allowing each person to speak without interruption. This simple guideline created an atmosphere of respect, where panelists felt more at ease sharing their thoughts. Have you ever been in a conversation where interruptions made it hard to follow along? Clear expectations can prevent that disjointed experience.

    Another tactic is to actively engage quieter participants by using their names during discussions. I remember a time when a panelist had been notably silent, and the moderator turned to them and asked, “What do you think about this point?” Instantly, the energy shifted. Not only did the panelist contribute valuable insights, but I could see the spark of confidence ignite in them. It’s moments like these that highlight the importance of bringing everyone into the fold, wouldn’t you agree?

    Lastly, incorporating timed segments for each topic can greatly aid in maintaining balance. During one panel I attended, the moderator had a timer that helped keep the conversation on track. This approach prevented any one person from dominating the floor for too long, ensuring that diverse ideas were presented and explored within the time constraints. I found it fascinating how the simple act of time management could lead to a more vibrant and cohesive discussion. Have you experienced a similar strategy at an event?

    Sharing personal experiences in discussions

    Sharing personal experiences in discussions

    Sharing personal experiences in discussions can transform the dynamic of any panel. I vividly recall a session where a fellow panelist shared his struggles with imposter syndrome. His honesty resonated with many in the audience, including myself. It was a reminder that vulnerability can foster connection and make complex topics more relatable. Have you ever felt a deep sense of understanding when someone opened up?

    During another event, I chose to discuss my own experiences with failure. As I recounted a project that didn’t go as planned, I could feel the atmosphere shift; others began to nod and smile. It was as if my honesty gave them permission to share their less glamorous moments too. Isn’t it powerful when personal stories prompt open dialogue?

    Sometimes, sharing personal experiences can be a catalyst for deeper conversations. At a conference I attended, someone referenced their childhood and how it shaped their views on education. The room suddenly became engaged, with several sharing similar backgrounds. That moment reinforced how our unique journeys could ignite discussions that truly resonate. Doesn’t it make you wonder how many insights are waiting to emerge from our individual narratives?

    Lessons learned from panel discussions

    Lessons learned from panel discussions

    Engaging in panel discussions teaches me how vital it is to create an inclusive environment. I’ll never forget a session where one participant passionately advocated for marginalized voices, urging us to listen and embrace diverse perspectives. It was a profound reminder that the depth of our conversation hinges on the range of voices presented. Have you ever noticed how the most insightful discussions often come from insights we didn’t initially consider?

    I realize that preparation is key in panel discussions. During a recent event, I noticed that a well-prepared panelist effortlessly guided the conversation, ensuring everyone had the chance to contribute. Her balancing act between leadership and responsiveness struck me. Isn’t it fascinating how fluidity in a discussion can lead to unexpected yet enlightening moments for both speakers and the audience?

    Lastly, I often reflect on how panel discussions can mirror broader societal issues. At a recent gathering, we discussed educational equity, and I felt a palpable tension in the room. Not only did it spark a deeper examination of our responsibilities, but it also highlighted how fostering respectful conflict can lead to breakthroughs. Don’t you think that navigating differing opinions can sometimes lead us to richer discoveries?

    Tips for future panel events

    Tips for future panel events

    One important tip I’ve learned for future panel events is to prioritize diverse representation among panelists. I once attended a session where the variety of backgrounds and experiences enriched the conversation immensely. It prompted me to wonder—what if every panel event aimed for such diversity? The insights shared can lead to deeper engagement and broaden the audience’s understanding.

    Another practice I recommend is focusing on the moderator’s role in facilitating balanced discussions. In a panel I was part of, our moderator skillfully interjected when a single voice began to dominate. It made me realize how essential it is for moderators to ensure that every panelist feels empowered to share their thoughts, creating a more equitable space. Isn’t it exciting to think how a skilled moderator can unlock perspectives that might otherwise remain unheard?

    Lastly, I advocate for incorporating interactive elements into discussions. At one event, we engaged the audience with real-time polls and Q&A sessions, creating a vibrant exchange of ideas. It made me feel connected to the audience, and I couldn’t help but think how much richer our outcomes could be if we continually seek ways to involve our listeners. Have you considered how audience interaction shapes the overall experience?

  • My insights on audience connection in discussions

    Key takeaways:

    • Creating authentic connections through shared experiences and vulnerability fosters active audience engagement.
    • Utilizing open-ended questions and interactive elements, such as polls, can significantly enhance discussions and participation.
    • Observing audience body language and leveraging storytelling are effective techniques for gauging engagement and fostering connection.

    Understanding audience connection

    Understanding audience connection

    Understanding audience connection goes beyond mere statistics or demographics; it’s about tapping into the shared human experience. I recall a time when I was speaking to a group of educators. As I shared my own struggles with engaging students, I could see the nods of understanding around the room. That moment reminded me just how important it is to create a bond based on authenticity.

    When we connect with our audience, we invite them into the conversation, making them feel valued and heard. Have you ever been in a discussion where you felt completely ignored? It’s uncomfortable and disengaging. In my experience, when I address the specific needs and interests of my audience, a genuine dialogue emerges, fostering a sense of belonging that enriches the entire event.

    Another vital aspect of audience connection is vulnerability. I often find that when I share my failures or uncertainties, it encourages others to do the same. Why is that? I think it’s because we all carry the weight of our own challenges. By creating an environment where openness is welcomed, I’ve seen audiences transform from passive listeners into active participants, ready to share and engage with each other.

    Importance of audience engagement

    Importance of audience engagement

    Engaging an audience is not just a “nice-to-have” but a fundamental necessity in discussions. I remember attending a workshop where the facilitator used interactive polls to gauge our opinions. This simple act made me feel like my voice mattered. It was incredible to witness how such techniques can animate a room, sparking enthusiasm and connection among participants.

    There’s something magical about shared experiences in discussions that can elevate the entire dynamic. I once participated in a panel where we started by sharing one personal success and one failure related to the topic. Suddenly, the atmosphere shifted. Everyone felt safe to open up, transforming a standard discussion into an electric exchange of ideas. Have you experienced that rush of energy when everyone contributes? It’s infectious, and it fosters a richer dialogue.

    Moreover, engaging an audience builds trust, which is essential in any form of communication. During a community forum I hosted, I made a point to ask tough questions. Instead of shying away, I found that people were eager to respond when they felt respected and involved. It made me realize that fostering such an environment doesn’t just improve engagement—it cultivates a bond that lasts beyond the event itself.

    Strategies for effective discussions

    Strategies for effective discussions

    When I think about strategies for effective discussions, one technique that stands out is the use of open-ended questions. I recall a seminar where the facilitator asked us, “What does success mean to you?” This simple, yet profound question instantly shifted the conversation’s direction, allowing each participant to share their unique perspectives. It was fascinating to see how one question could open the floodgates of discussion, making everyone feel integral to the dialogue.

    Another strategy I’ve found valuable is creating small breakout groups within larger discussions. During a recent educational panel, we were split into smaller teams to brainstorm ideas. Not only did this format allow quieter individuals to share their insights without the pressure of a big audience, but it also fostered deeper connections among participants. I couldn’t help but notice the intensity of focus and enthusiasm that emerged when people felt safer in a smaller setting. Have you ever felt more comfortable speaking up among a few friends rather than a large crowd?

    Lastly, actively listening is a crucial strategy that often gets overlooked. I remember a workshop where the leader encouraged us to paraphrase what others said before sharing our viewpoints. This approach created an atmosphere of respect and understanding, allowing each voice to be heard. It dawned on me how vital it is to truly listen if we want our discussions to be fruitful. After all, how can we build on each other’s ideas if we’re not fully engaged in what’s being shared?

    Techniques to read the audience

    Techniques to read the audience

    One effective technique I’ve used to gauge audience engagement is to observe body language and facial expressions. During a recent lecture, I noticed a few attendees leaning forward and nodding along, while others appeared restless or distracted. This contrast made it clear to me that I needed to adjust my delivery to recapture the attention of the latter group. Have you ever experienced that moment when you realize your audience’s energy is dipping? A quick nod or smile from someone can signal enthusiasm, and reading these cues helps us tailor our approach on the spot.

    Another approach I’ve found useful is to use real-time feedback tools, like polls or questions. At a workshop, I employed live polling to ask participants their thoughts on a relevant topic. The instant results sparked lively discussions and allowed me to adapt the content based on what resonated with them most. It’s incredible how technology can bridge the gap, making everyone feel like they have a voice. Have you thought about how much a simple poll can transform the dynamic of a discussion?

    Lastly, I’ve learned that storytelling can be a powerful device for connection. I once shared a personal experience during a presentation and watched as the audience visibly relaxed and leaned in. Stories are relatable; they evoke emotions and make complex ideas more digestible. When people connect with a narrative, they’re more likely to engage. Isn’t it amazing how a shared story can turn a room full of strangers into a cohesive group?

    Personal experiences in discussions

    Personal experiences in discussions

    In my experiences leading discussions, I’ve often found that sharing a moment of vulnerability can be incredibly powerful. For instance, during a community forum, I opened up about a challenging decision I faced while organizing an event. The response was immediate; suddenly, participants were sharing their own stories and struggles. Have you ever noticed how honesty can create a safe space for others to express themselves? It’s moments like these that remind me of our shared humanity.

    I also recall a time when I employed visual aids to spark conversation. By displaying an image that resonated with a specific topic, I encouraged participants to share their interpretations. One participant shared a deeply personal connection to the image, which led to an unexpected yet profound discussion. Isn’t it fascinating how a single visual can unlock creativity and storytelling? This experience reinforced my belief that engaging the audience often means inviting them to connect their own experiences with the subject at hand.

    Another memorable moment occurred during a Q&A session where I embraced silence. Initially, I felt the pressure to fill the space with words, but I resisted and allowed the audience to ponder. Gradually, several individuals started asking thoughtful questions. This taught me the importance of patience in discussions; sometimes, giving people the time to reflect can lead to richer conversations. How often do we rush to speak instead of letting silence work its magic? Each instance of silence became a catalyst for deeper connection and understanding.

    Lessons learned from educational events

    Lessons learned from educational events

    When attending various educational events, I’ve learned that the most meaningful connections often stem from the unexpected interactions. I recall a workshop where, after a particularly engaging group activity, attendees were encouraged to share quick insights. In that moment, I witnessed a shy participant transform as they shared an insightful observation that resonated with many. Isn’t it amazing how a little encouragement can ignite someone’s confidence to contribute?

    I’ve also observed that fostering an inclusive environment significantly enhances discussions. One time, I facilitated a panel with a diverse group of speakers, each bringing unique perspectives. As we opened the floor for audience questions, I noticed how this diversity enabled a rich tapestry of ideas and experiences to emerge. Doesn’t it highlight the value of varied viewpoints in creating a more robust dialogue?

    Moreover, I’ve come to appreciate the importance of active listening in discussions. During a recent seminar, I focused on truly hearing participants rather than planning my response. This shift allowed me to respond more thoughtfully, creating a dynamic exchange that deepened our connection. Have you ever considered how truly listening can transform the very nature of your interactions? It’s an enlightening experience that can elevate discussions to new heights.

    Tips for improving audience connection

    Tips for improving audience connection

    One of the simplest yet most effective ways to improve audience connection is through storytelling. I remember presenting at an educational conference where I shared a personal story related to my topic. As I recounted my journey, I noticed the audience leaning in, visibly engaged. It struck me how a well-crafted narrative could make complex ideas relatable and foster a shared emotional experience. Have you ever felt more connected to a speaker when they shared their own challenges or successes?

    Another technique I’ve found invaluable is to use interactive elements. During a recent workshop, I incorporated real-time polls and discussions, which instantly shifted the atmosphere. Participants were no longer passive listeners; they became active contributors. This approach not only made the session livelier but also strengthened the bonds among attendees. Isn’t it fascinating how mere interaction can transform a monologue into a memorable dialogue?

    Lastly, establishing eye contact can profoundly influence audience engagement. I recall an impactful event where varying my gaze around the room made individuals feel personally included in the conversation. It’s remarkable how a simple connection can evoke feelings of trust and involvement, making your message resonate deeper. Have you noticed how someone’s eyes can draw you into their narrative, creating an almost magnetic connection?

  • My insights on bridging divides through conversation

    Key takeaways:

    • Educational events foster collaboration and enhance learning experiences through hands-on activities and open dialogue.
    • Conversations in education build understanding, critical thinking, and emotional connections among participants.
    • Creating inclusive spaces and facilitating meaningful dialogue require careful attention to environment, respect, and shared experiences.
    • Effective facilitation involves establishing a welcoming atmosphere and clear ground rules to encourage open and respectful discussions.

    Understanding educational events

    Understanding educational events

    Educational events serve as vital platforms for learning and collaboration, bringing together diverse groups of people to share knowledge and experiences. I remember attending an educational conference where discussions ranged from pedagogy to technology in the classroom. It struck me how the various perspectives enriched the dialogue; it was evident that everyone, regardless of their background, had something valuable to contribute.

    When considering the structure of educational events, it’s fascinating how each element plays a role in shaping the learning experience. For instance, workshops often facilitate hands-on activities, fostering an environment where participants not only absorb knowledge but also apply it in real-time. Have you ever participated in an interactive session? I found it transformative when participants could express their opinions freely, leading to innovative solutions and deeper understanding.

    Moreover, the emotional impact of these gatherings cannot be overlooked. The excitement and camaraderie among attendees make the learning process more enjoyable and memorable. Reflecting on my experience, I felt a surge of enthusiasm when engaging in meaningful conversations that bridged generational and cultural divides, reminding me of the power of dialogue in education.

    Importance of conversation in education

    Importance of conversation in education

    Conversations in education play a crucial role in fostering understanding and empathy among students and educators alike. I recall a classroom discussion where a student bravely shared a personal story about challenges faced in a different cultural context. The room fell silent, and suddenly, we all saw the world through their eyes. Does it not astonish you how one story can shift perspectives and encourage a deeper connection among peers?

    Moreover, dialogue encourages critical thinking and the exploration of diverse viewpoints. During a debate in my own teaching experience, students were tasked with arguing for and against a controversial topic. What surprised me was how this exercise not only sharpened their reasoning skills but allowed them to appreciate opinions they initially disagreed with. Have you ever experienced a moment where a simple conversation changed your mind about an issue? It’s through these exchanges that we cultivate a respectful and inclusive environment.

    The emotional resonance of conversations in education can’t be understated. I remember walking away from a roundtable discussion feeling invigorated by the range of emotions shared — joy, frustration, and hope. These conversations remind us that education is not just about facts; it’s about forming connections and understanding each other’s journeys. Isn’t that what makes learning truly impactful?

    Bridging divides through dialogue

    Bridging divides through dialogue

    Engaging in meaningful dialogue is a powerful way to bridge divides. I recall a community workshop where participants discussed differing viewpoints on a local issue. At first, tensions were palpable, but as people began to share their stories and experiences, the atmosphere shifted. It was amazing to witness how listening without judgment opened doors to understanding. Have you ever found that simply expressing where you come from can lead to unexpected common ground?

    In my experience, the key to bridging divides is not just speaking but truly listening. During a project involving students from various backgrounds, I observed that when they took turns listening first, subsequent conversations became more profound. They began to ask follow-up questions that revealed layers of complexity in each other’s narratives. Isn’t it intriguing how the act of listening can sometimes be more transformative than sharing your own opinion?

    Ultimately, dialogue allows us to confront our assumptions and biases. I vividly remember a moment in a facilitated discussion where a participant challenged a long-held belief of mine. Instead of feeling defensive, I found myself reflecting on their perspective and acknowledging the validity in what they were saying. This experience underscored the idea that conversation is not just about exchanging words but is a catalyst for personal growth and collective understanding. Have you ever left a conversation with your views reshaped, feeling a sense of connection?

    Setting up meaningful conversations

    Setting up meaningful conversations

    Setting up meaningful conversations begins with creating the right environment. I once facilitated a discussion circle where we arranged the chairs in a circle rather than in rows. This simple shift made everyone feel equal and encouraged openness. Have you noticed how the physical space can influence the tone of a conversation?

    It’s important to establish ground rules that promote respect and understanding. In one workshop, we agreed that everyone would have a chance to speak without interruptions. I saw firsthand how this commitment fostered a sense of safety among participants. When people know they can share their thoughts freely, the conversation deepens significantly. Why do you think having space to express ourselves feels so essential in fostering connection?

    Lastly, tapping into shared experiences can ignite meaningful dialogue. I recall a session where I introduced a common theme, such as community traditions, and encouraged participants to share their stories. The connections formed were palpable, as laughter and tears intertwined, demonstrating our shared humanity. Isn’t it remarkable how our stories, even when diverse, can create bridges instead of barriers?

    Creating inclusive event spaces

    Creating inclusive event spaces

    Creating inclusive event spaces involves more than just physical arrangements; it’s about cultivating an atmosphere where everyone feels valued. I remember attending a conference that included a designated quiet area. This small zone allowed attendees to recharge, fostering a sense of belonging that respected different comfort levels. Have you ever found solace in a simple corner that made a big event feel more manageable?

    Accessibility is another critical factor in making spaces inviting. One time, I was part of an event planning team that prioritized providing interpreters for those with hearing impairments. Witnessing participants engage in lively discussions in ways they previously couldn’t was truly eye-opening. It reinforced the notion that when we account for diverse needs, we not only enhance participation but also enrich the conversation itself, don’t you think?

    Moreover, incorporating diverse perspectives in both planning and participation can transform an event into a truly engaging experience. During a panel discussion I led, we made it a point to include voices from all walks of life—different cultures, backgrounds, and experiences. The resulting dialogue was vibrant and insightful, illustrating that real learning happens when we embrace our differences. Isn’t it fascinating how including varied viewpoints can turn an event into a collective celebration of ideas?

    Personal experiences with conversations

    Personal experiences with conversations

    There’s something inherently powerful about a simple conversation. I recall a moment during a workshop where we paired off to discuss our personal challenges in education. I found that sharing my struggles not only made me vulnerable but also fostered a connection with my partner. It struck me how quickly we moved from strangers to allies in a matter of minutes—can you imagine the breakthroughs possible when we allow ourselves to be open?

    In another instance, I attended a roundtable discussion that encouraged every participant to share their perspectives without interruption. This format was eye-opening for me; listening deeply taught me the importance of patience in conversations. I realized that sometimes the most meaningful insights emerge when we give others the space to fully express themselves. Have you ever experienced that rush of understanding when someone articulates a thought you’ve held but couldn’t quite express?

    Even casual conversations can have a profound impact. I remember chatting with a colleague over coffee about differing educational philosophies. As we exchanged ideas, I felt a shift in both my perspective and my approach to teaching. The back-and-forth revealed not just varied beliefs but also the emotional underpinnings that drive those beliefs. Has a simple chat ever changed the way you view a topic entirely?

    Tips for effective event facilitation

    Tips for effective event facilitation

    One essential tip for effective event facilitation is to create a welcoming atmosphere from the start. I remember a workshop I facilitated where I set up a cozy space with comfortable seating and refreshments. It was fascinating to see how a simple gesture, like offering coffee and snacks, encouraged participants to relax and engage more openly. Have you ever noticed how comfort can transform a conversation?

    Another crucial aspect is to establish clear ground rules for interaction. During a panel I hosted, I invited participants to share their thoughts while emphasizing the importance of respect and listening. In doing so, it quickly became clear that everyone felt safer expressing their opinions, knowing they wouldn’t be interrupted or dismissed. Isn’t it amazing how structure can enhance the quality of dialogue?

    Finally, incorporating activities that encourage exploration can also elevate the conversation. In one event, I introduced small group discussions on contentious topics, allowing participants to voice dissenting views without fear. The result was a dynamic exchange that not only deepened understanding but also sparked creative solutions to conflicts. Can you envision the growth that arises when we invite diverse perspectives into the conversation?