Pegasas Accelerator Development Changelog
It's All About The Journey
While the items on our to-do list change weekly, we are laser focused on our journey to being the absolute best Web Performance Optimization plugin. Period. You can keep up to date with what we are working on by taking a peek at what is on our development agenda.
Follow all the changes and improvements we’ve made to the Pegasaas Accelerator WordPress web performance optimization plugin with our super handy Pegasaas Accelerator Development Changelog.
2.2.9 - Resolved Installation Issues
- Added server speed check warning into interface
- Added notification alert when tracking/analytic scripts possibly slowing site down into interface
- Added "upgrade" link into the plugin listing in plugins.php panel
- Added detection and handling for .htpasswd (Basic HTTP Authentication) protected /wp-admin/
- Added detection and handling for Wordfence block of API requests
- Added link to contact support on the installer
- Changed the API communication request timeout from 1 second to 5 seconds
- Added a "pickup optimizations" service for Siteground/Kinsta/slowest response rate installations
- Changed the "autoload" setting for any Pegasaas data stored via WP native "update_option" to "no"
- Changed the "manage" link in the plugin panel, for white label subscriptions, to the pa-web-perf alias
- Improved handling for write-protected .htaccess file
2.2.8 - Debugging Output Visible
While preparing the previous version, the debugging output when requesting an optimized page was visible.
2.2.7 - Installation Wizard / PageSpeed Dependancies
Resolved a few issues revolving around the requesting of PageSpeed scans on unoptimized pages, as well as added a feature to inform the person installing that they navigate away from the installation process.
- Added support for non-latin characters used in page slugs (permalink)
- Resolved issue where permalinks that had not been recalculated since a site had been switched from http to https causing a redirect issue preventing the scanning of pages
- Added feature to inform the individual running the initialization sequence that they can navigate away and the installation routine will continue in the background.
- Added feature that notifies the website operator via email once the initialization sequence has gathered the initial optimizations and scans
- Resolved issue where PageSpeed scans were being requested on pages with an un-optimized cache
- Added system check to verify that a permalink structure is enabled
- Adjusted interface to show when pages that are cached are un-optimized are not pending optimization if no optimization credits are remaining
2.2.6 - Installation Issue
Resolved an issue introduced in 2.2.5 where the installation routine would appear to be halted near completion.
2.2.5 - Numerous Tweaks
- Added compatibility for DreamPress by DreamHost cloud hosting
- Added auto detection of Varnish server side caching
- Added a number of third-party caching and optimization plugins as non-comaptible with a prompt to disable incompatible plugins
- Resolved dashboard display prompts
- Improvment to temporary cache handling when an optimization is completed
- Addition of an "Optimize Now" option for the "Bulk" options in the Pages and Posts panel
- Resolved issue with superfluous PageSpeed scans being requested
- Added caching of ttf/woff/woff2/eot/svg files to the pegasaas-cache folder
- Removed DB optimization calls as they can slow down the response time of the application and are no longer required
- Added "X-Powered- By" header to the request headers
2.2.4 - API Timeout Issue
Resolved an issue where API non-blocking requests were actually still blocking, causing an HTTP error, which resulted in requests failing. This in turn resulted in multiple redudant requests being submitted to the API. This also affected the installations from sometimes not completing.
2.2.3 - Temporary Cache / Interface Updates
While a page is begin optimized, a temporary version of the page is cached, so as to speed up the initial server response time for any page request that may occur while the page is being optimized. This temporary cache page is removed when the optimization has been completed. Should there not be sufficient optimization credits, the page will still be cached to allow for a partial improvment to the load time.
The dashboard now will show an "hourglass" icon when a page optimization has been requested but has not yet been completed.
2.2.2 - Resolved Issue with Images not Flowing through CDN
Images were not being optimized through the CDN.
2.2.1 - Resolved Issue With Hung Installation
Database table in production version did not include the 'nonce' field which caused the installation to become hung.
2.2.0 - WordPress Plugin Repository Compatibility
This version includes tooling which allows for submission to the WordPress plugin repository. Some of the updates and improvements include:
- Added dashboard tooltips for each of the performance metrics
- Added dashboard tooltip for the on/off (live/diagnostic mode) toggle
- Added tooltip for the primary gauge
- Updated logo with new branding (Pegasaas Accelerator WP)
- Added handling so that in the new Standard Edition the verbiage refers to "Page Optimizations" rather than "Page Cache"
- Updated styling for the Day (Light) display mode
- Additon of new data handling using custom mysql tables rather than the native WordPress data handling -- used for performance scan data, as well as api requests
- Addition of "?kinsta-monitor" url argument to pages that are excluded from optimizations
- Addressed an issue with the "deferred-######.js" files not being cleared when cache is cleared
- Addition of an FAQs and a Troubleshooting tab, which pulls content directly from pegasaas.com
2.1.13 - Redirect to Primary Domain
Resolved a bug in the .htaccess instructions when directing from a non-primary domain to the primary domain.
2.1.12 - Revolution Slider Handlign
Added conditional to ensure script blocks with the jQuery.extend call are deferred.
2.1.10 - Fixed Fatal Error
2.1.9 - Lazy Load Images
A modified version of the lazy loading code that should help with indexing of images.
2.1.8 - Static Google Fonts URL
Again, with the Google Font URL being incorrect.
2.1.7 - Static Google Fonts
The new Google Font CDN URL had the query string arguments stripped in errror.
2.1.6 - Google Font CDN URL Change
In order to speed up the delivery of google fonts, we temporily cache them through the Pegasaas CDN. The previous domain that we used was being flagged as a "threat" by Avast anti-virus. This has been patched in one last location within the optimization code.
Peepso Plugin Compatibility Adjusted
The signatures of those code blocks which should be deferred have been updated.
In addition, the reporting of Time-To-First-Byte should be more accurate, as the reporting tool was converting TTFB values of over 1,000ms to single whole numbers. Example: 2,700ms to 3ms. This has now been resolved.
2.1.2 - Lazy Loaded Foreground Duplicate Attribute
The Lazy Load system was producing a duplicate src attribute.
2.1.0 - Agency White Label Features
This minor release introduces the ability to white-label the plugin for those subscriptions which include this feature.
2.0.9 - Conditioning of CSS Stylesheet Links for Defer CSS
2.0.8 - Lazy Loaded Background Images Bug
Further improvments to the lazy load background image mechanism.
2.0.7 - Lazy Loaded Background Images Bug
Further improvements to the background lazy load mechanism.
2.0.6 - Lazy Loaded Background Images Bug
The handling for the lazy loading background images was incomplete in some situations. This patch resolved the incomplete handling.
2.0.5 - API Timeout Issue
In the previous version (2.0.4) we released API timeout handling. It appears as though the method that we used was too aggressive for some webservers, so we have removed the delay, temporarily, until a better solution can be found.
2.0.4 - Save Post Bug Fix
When a page or post was saved, it was displaying a string of data, on a blank page. This was a result of testing output that was not removed in version 2.0.3 that was not visible when the Gutenburg editor was enabled. This output was only visible for those sites using the classic editor.
2.0.3 - Defer Unused CSS Upgrades, Page Level Settings, Bug Fixes
This patch includes a number of new features, and bug fixes and is likely the last patch before we move on to v2.1.0.
Defer Unused CSS (Level 2 CSS Deferral)
The highly performance enhancing method of deferring unused CSS can have visual drawbacks. We have changed the default behaviour of the deferral of unused CSS so that the unsued CSS is loaded as soon as possible. You can optionally change this so that the unused CSS is loaded after 1.5 seconds, 5 seconds, or on page action (scroll/click). The on-page-action method was the default method in v2.0.0-v2.0.2. While the new method is not as performance enhancing, it allows for minor improvements in performance while allowing you to test further levels of delay, without initially causing a flash-of-unstyled-content.
Exclude Specific Render Blocking CSS from being Deferred (Level 1 CSS Deferral)
You can now specify individual render blcoking CSS files to exclude from being deferredon the settings page.
Allow GIF Images To Flow Through Image CDN
GIF images, because we could not optimize them, have historically not passed through our image processing system (as they cannot be optimized), and thus not through the image CDN. We have now allowed GIF images to flow through the image CDN system while bypassing the image processing system.
Page/Posts Meta Box Overhaul
Page/Posts List - Clear Page Cache Link
There is now a "Clear Page Cache" link next to the "Edit" | "Quick Edit" | "Trash" | "View" links.
Lazy Load Background Images: Bug Fix
We resolved an issue where the background images, that were specified via inline style attribute, were not actually deferred.
Smart Slider 3 Compatibility
The Smart Slider 3 sliders were not being displayed due to how Smart Slider was modifying the output buffer that Pegasaas Accelerator also obtains. The capture mechanism that Pegasaas Accelerator uses was updated to account for the Smart Slider 3.
API Timeout Handling
Due to the release of Pegasaas 2.0, where all benchmark and accelerated pagespeed scores were requested for any site installing the v2.0, the Pegasaas API experienced exceptinoally higher than normal load. This caused a small number of sites to have their API communications to timeout. This caused adverse affects by those installations submitting duplicate requests.
A new mechanism is now included in the plugin to handle this situation to tell instruct the API of timeouts so that the server can auto optimize web services and the API database on-the-fly while notifying Pegasaas Actual of a sitaution that may require manual intervention.
2.0.2 - Score Data Removed from Cookie
The score data that we were storing in a cookie was too large in some cases. This mechanism is now disabled while we review the use of this data in a cookie.
2.0.1 - Interface Bug
If the "Results Type" in the Pegasaas Accelerator dashboard is set to anything but "All", a fatal error was thrown. Bug fixed in line 943.
2.0.0 - Time is Everything
This update is probably the single most involved update we've ever completed. In it, there are over 25 different features that have been updated or added. Version 2.0 was always planned to include the actual time it takes to load the page. With the latest update of Google PageSpeed Insights to v5, we were presented with the timing data that needed to exist in order to push Pegasaas to a v2.0 release.
While the timings are not shown, yet, in all places for all pages, we will be gradually adding metrics such as Time-To-Interactive, and Speed Index, into the interface where ever possible, in the next several minor updates.
In addition, we will be adding a major component, in 2.1.0 (slated for end of December) where you will be able to track the actual amount of time you've saved your visitors.
What's In This Release
Lazy Loading Images: new method
The lazy-loading images that we previously employed for an immediate rendering situation (where the page is not render blocking), was good. However, we found that there was opportunity to lazy-load in a better way, which also in turned meant that we were able to lazy load background images.
Lazy Loading Images: srcset images
We've added the lazy loading of those images that take advantage of the srcset attribute. While previously, the default 'src' attribute was used to lazy-load the images, we've now added support to also lazy-load the srcset (which is intended to show a different image for different size viewports).
Lazy Loading Images: background images
Background images can now be lazy-loaded. This new feature takes advantage of the new method employed in the Lazy Loading Foregound Images feature. This cuts down on the unnessessary load time of images used in the background of DIV blocks that may never be rendered.
Lazy Loading Scripts: user defined resources
You can now specify individual scripts to "lazy load". This means that those scripts will not be loaded into the page until the user scrolls down the page. This is incredibly important for the initial load time of the page.
Lazy Loading YouTube: play icon shifted from static CDN
The "play" icon, that we use for the YouTube lazy loader, had referenced via a static CDN url. However, this caused an additional DNS lookup and connection that caused a small delay which impeded the load time of the page. By moving the image to the assets/ folder of the plugin, the image can still be referenced via the Pegasaas image CDN, which typically has already been connected to by other images in the page.
Preload Resources: user defined resources
Preload Fav Icons
Fav Icons are typically loaded last by the browser, and often they can delay the load time of the page time by a full second. By preloading the "fav icons", the page load time is decreased.
Defer Unused CSS
While technically all CSS is "deferred" already, this new feature actually lazy-loads the CSS in such a way that the page does not load it until a user takes action (such as scrolling). This helps the load time of the page immensely. Because the Critical CSS is already injected into the page, the CSS files technically do not need to be loaded into the page until a user takes an action.
Defer Unused CSS: exclude CSS from being lazy-loaded
In addition to the aforementioned 'defer unused css' feature, there is also the ability to exclude files from the lazy-loading, in the event that the Critical CSS is inadequate, in any way, in properly rendering the above the fold region.
You can now include global CSS throughout all of your pages, if you have Inject Critical CSS enabled, which may be required in order to resolve any issues with inadquate Critical CSS when deferring unused CSS.
WordLift: Auto Injection of Schema
We love WordLift, the AI plugin for SEO, however we found that the Schema the was defined for the pages was loaded through a SCRIPT call, which was an additional round-trip that was not required. Instead, we directly injected the schema into the page, saving a round trip.
Strip Google Fonts for Mobile
Google Fonts are a very heavy resource to load if you're on a mobile device. This is why we now offer the ability to strip all Google Fonts for mobile, or if you still want to provide some styling there is the option to strip all but the most essential fonts.
DNS Prefetch: or preconnect
While in our testing, it did not make a difference whether the page used the DNS-Prefetch directive, or the Preconnect method, we now give the opportunity to choose which method to use.
Being able to see the text while any web-fonts are still loading, is critical to mobile user experience. You can now automatically define the "font-display" method to use for all web-fonts, which will result in a better user experience for your mobile user.
Long Caching Lifetimes
While "browser caching" is no longer considered essential to your PageSpeed score, it is still recommended that you set your cache lifetimes to as long as posssible. We've updated the cache lifetimes as defined in the .htaccess file and our CDN to cut down on the unnessessary repeat loading of resources which are rarely updated.
Cached JS/CSS Filenames Modified
Auto Asset HTTPS and Primary Domain
We've added new rules to the .htaccess system which will push the user to the primary domain and protocol as defined by the WordPress home url.
Installation Tests: write permisissions
When installing the plugin, it will also now check to make sure it has write permissions for the .htaccess /wp-content/pegasaas-cache, and log.txt files.
By turning the plugin "off" using the toggle switch near the Pegasaas Accelerator logo, the plugin is put into diagnostic mode. This allows us to continue to test for errors, externally, by referencing a page with the query string ?accelerate=on
WPML requires the use of ?lang=xx query arguments. When query arguments are present, typically caching is bypassed. Pegasaas Accelerator will now accelerage and cache pages that employ the ?lang=xx query argument.
Third Party Cache Plugin Handling: Bluehost "Endurance"
We now detect the "Endurance" caching plugin and instruct you what you need to do to make Pegasaas compatible with the environment when "Endurance" is enabled.
Integration of GPSI v5 Scores into Interface
On November 12th, 2018 (22 days previous to this release), Google updated their PageSpeed Insights system to version 5. This new version calculates PageSpeed scores in a completely different manner. This version of Pegasaas Accelerator now polls the v5 API that uses the most current scoring system.
Integration of GPSI v5 Timings
In addition to the PageSpeed scores, we are now able to show the different timing metrics. These metrics include Time-to-first-Byte, First Contentful Paint, First Meaningful Paint, Time-to-Interactive, Speed Index, and First CPU Idle. We can use these metrics to show you how fast your page is, and where there may be a bottleneck.
1.13.4 - Auto Acceleration Options / PageSpeed Score Reporting
Auto Acceleration (Install Wizard)
The "Auto Acceleration" options that are offered upon installation were updated in how they are presented. In addition, a new option labelled "Home Page only" is now available, if you only wish to initially accelerate just the home page.
During the course of this update, it was noted that when the Homepage is set as "Blog" (default WordPress setting), the home page cannot be disabled. The ability to enable and disable the acceleration for the blog-as-homepage, as well as the categories, was added to the "Miscellaneous" section on the settings page, in a new sub-section labelled "Blog".
PageSpeed Score Reporting
The PageSpeed scores, when you were on a public facing page, were reporting the benchmark scores rather than the accelerated scores. This has been updated.
1.13.3 - Functions removed for Non-Administrative Users
Removed the page-level configurations for non-administrator users.
1.13.2 - Functions removed for Non-Administrative Users
On the page/posts panel where all pages or posts are displayed, the Accelerator status for each page had been displayed for all users.
Also the bulk actions for "accelerate" or "un-accelerate" pages was included in the bulk actions drop down for all users.
These features have now been removed for non-administrative users.
1.13.1 - Performance Improvements
In the most recent minor update, 1.13.0, local image optimization was introduced for those images that were not caught by the typical CDN image optimization. There was a small gap in the logic when if the image didn't exist the 404 handler would enter a recursive invocation. Short story, the 404 handler was chewing up resources. This has now been dealt with.
Divi Animated Sections
This now resolves issues with multiple frameworks where "on load" animations were not occuring.
1.13.0 - LITE/PRO / Code Architecture / Varnish / Cache Mega Menu / General Interface Improvements
This is a fairly major minor release, as it took nearly a month to pull together all of the pieces. There are improvements in nearly every corner of the plugin, but most of which are under-the-hood in how the code is structured.
Most notably, our flagship plugin has now been re-labelled "Pegasaas Accelerator PRO" as we will be introducing in the coming weeks the "Pegasaas Accelerator LITE" to the WordPress plugin repository. Primarily, most new features and improvements will be added to the PRO version, however the basic "core" features of the Pegasaas Accelerator system, which focus on PageSpeed optimization, will be available within the LITE version.
In order to provide a code set which was maintainable, where we were not having to maintain multiple copies of identical code, for the LITE and core of the PRO plugin, we had to re-organize how the underlying code was organized. This took the bulk of the last four weeks.
This improvement will mean that maintaining a LITE version, in addition to the existing PRO plugin, will not result in any significant additional overhead.
We have now added in optional support for the Varnish caching system. If your web host uses Varnish for caching, you can enable the Varnish option in the settings panel so that when a page cache is cleared by the Pegasaas Accelerator system, it will also clear it from the Varnish system.
Cache Mega Menu
The top drop down menu has been completely redesigned with UX in mind. The menu now shows the site score, as well as a better understanding of what local cached resources may exist.
General Interface Improvements
The "Pegasaas Accelerator" icon has been refreshed, as well as the "option" drop down menus beside many of the pages listed in the dashboard. We spent a great deal of time refining the UX of the plugin dashboard with this release. Many actions will now execute via AJAX instead of reloading the entire page.
1.12.21 - CSS Minification Bug / Lazy Load Revolution Slider
CSS Minification Bug
Resolved an issue where an unescaped slash, when minified, was causing any CSS that followed to not be parsed.
Lazy Load Revolution Slider
Pegasaas will now ignore any images that are lazy loaded via the Revolution Slider system, so as not to cause double lazy-loading.
1.12.20 - JS Minification Exception for MooTools
MooTools was throwing an uncaught JS Minification Error. This patch wraps the JSMin functionality within a try-catch.
1.12.19 - Deferred JS not deferring JQuery $ alias
1.12.18 - Duplicate Resource in Injected CPCSS
This patch removes a duplicate resource issue in the injected Critical Path CSS, for those sites where both www.domain.com and domain.com are used for image resources in CSS.
1.12.17 - Inconsistent URLs in CSS
This patch resolves an issue where there were duplicate resources being served from different URLS.
1.12.16 - Inline CSS URL Mapping Bug
Resolved an issue where assets that were referenced in inline CSS, via the url() specifier, which had whitespace before the asset url, were not properly referenced.
1.12.15 - Image / GIF Support in combine.css file
We've added support for inline image/gif base64 encoded images in the combine.css file
1.12.14 - HTTPS Redirect Patch / Image SVG in Combined.css
HTTPS Redirect Patch
We've added handling for when instructions are placed late within the .htaccess file, to redirect from a given URL to the same REQUEST_URI + HTTPS or with WWW. appended.
Previously, the redirect would usually push the user to view the actual wp-content/pegasaas-cache/ url.
With the updated instructions, our cache handling will appropriately direct the user to the correct URL.
Content Type with UTF-8 for only text/html Documents
It is recommended by some diagnostics tools to identify to the web browser as soon as possible the content type with UTF8. This helps the browser render the document as soon as possible.
Previous to this patch, any cached page was relying on any META CONTENT-TYPE tag within the page to declare the content-type. Now, the instructions in the .htaccess file will properly announce the for just HTML pages. This resolves an issue where text/html; utf8 was being declared for css, js and images stored within the wp-content/pegasaas-cache/ folder.
Image SVG support in combined.css file
We have now added support for image/svg defined images within the combined.css file.
1.12.13 - Password Protected Pages Support
Support has now been added for pages that are password protected.
1.12.12 - Critical Path Font Path Bug
Further resolve the issue where the .eot/.ttf/.woff/.woff2 files were being served via the incorrect CDN, in the Critical Path CSS.
1.12.11 - Missing updated PegasaasUtils class.
Fatal error caused by the PegasaasUtils not being updated in the package.
1.12.10 - CORS Block on Fonts Routed through CDN
There was an issue that was introduced via the new Combine CSS where .ttf/.eof/.woff files were being pushed through the CDN reserved for images, rather than the css/js/txt/ttf/eof/woff CDN.
1.12.9 - Interface Tooltips / Settings Page Updates
This patch added further usability to the interface tooltips and page-level settings.
1.12.8 - Critical Path CSS Font Path Bug
Trailing quote on paths to external fonts was missing in some of the @font-face calls.
1.12.7 - Lazy Load Images
Improved functionality of the lazy loading with immediate rendering functionality. This patch addressed an issue of <img> tags existing within <script> blocks -- these particular images should not be lazy loaded as they may be injected above the fold.
1.12.6 - Admin Bar Menu
Updated Menu Items for the admin bar, so that only the options for those features that are enabled are actually visible.
1.12.5 - Minify JS
In some situtations, there was an issue with an invalid left-hand operator error.
This has been resolved in the API as well as within the plugin itself.
1.12.4 - Deferred JS Patch
1.12.3 - Interface Tooltips / Settings Page Updates
There are now informative tooltips available for all portions of the primary dashboard.
Settings Page Updates
Feature descriptions, as well as additional configuration options, are now enclosed in an expandable region.
1.12.2 - Interface Tooltips / CPCSS and Page Builders Bug Fixes
The dashboard now features two new tooltips, for the "Un-Accelerated Site Score" gauge, and "Accelerated Pages" gauge. The tooltip explains what each part of the interface indicates is going on. We plan to add additional tooltips over the coming weeks.
Critical Path CSS Bug Fix
Resolved an issue with critical path css being jumped in a situation with a Divi font being embedded in the CPCSS.
Page Builders Bug Fix
When a page builder interfaces with the WordPress system, it often does so via JSON encoded variables. Pegasaas has, up until this patch, appended a comment tag to the end of any output that is not accelerated, so that we could identify the cache state. As of this patch, we have removed these comments, as they have been known to corrupt the JSON code of various page builders. Instead, Pegasaas now injects the state of a page into the Header as "X-Pegasaas-Message" and "X-Pegasaas-Reason".
1.12.1 - Magic Auto Image Sizing / Auto Crawl Setting / Interface Updates
Magic Auto Image Sizing
The biggest contributors to a slow loading page are often the images on your web page. WordPress does a decent job of providing images with alternate sizing using the srcset attribute, which is interpretted by modern browsers, so that an image of the appropriate dimensions is served.
Unfortunately, images that are not uploaded via the media library, or exist outside of the page/post content, are not subject to the img-with-srcset mechanism.
Pegasaas has already had image sizing, if an image contains a width and height attribute, built in. When an image has a width and height attirubte assigned, the image is requested via our CDN with a width and height as specified. This can be handy if you have a very large image (1600x1200) but specify a proper width/height in an image tag for the given container (such as 160x120).
However, occasionally, image dimensions are not defined in an <IMG> tag. If the dimensions of the image is larger than those of the image's container, then the image is considered too large, which results in a penalty by GPSI as well as it simply taking longer to load than is necessary.
We're excited to announce a brand new feature of Pegasaas Accelerator -- the Magic Auto Image Sizing. This new feature auto-detects the appropriate width and height of your images, sets the width and height attributes accordingly, and then via our CDN servers the very best image sizes for your website.
This magic all happens even if you do not have a width or height attribute defined for an image.
Note: there may be situations where you do not want to use this feature, such as if you use galleries which have expanding thumbnails on hover. For the most part, this feature will make your web pages load faster and look better, without you having to dig into your HTML to find your IMG tags to define the correct width/height.
Auto Crawl Setting
We have added the "Auto Crawl" configurable setting, so that you may turn off "Auto Crawl" (which automatically creates your website page cache). It would be recommended to turn off the "Auto Crawl" on very large websites (1000+ pages) that are hosted on shared hosting environments.
We have updated the "Accelerator" column on the pages/posts panel in WordPress. We've replaced the non-intuitive badges with "toggle switches".
We have also updated the resulting interface for when the "Manual Acceleration" option is selected at installtion time. This new interface now includes a video tutorial that shows you how to use the aforementioned "toggle switches" to manually enable/disable the acceleration setting for your pages.
1.12.0 - Multiple Features
By default, all CSS will now be built into a single file, to reduce the number of resources requests. This may be disabled on a global basis via the Settings panel.
You can now exclude pages or directory structures from being accelerated via the Settings panel. This is an experimental feature which we will be developing out further.
Exclude Scripts from Deferment
There is now the ability to exclude individual scripts from deferrment, in the even that including it within the deferred-js conflicts with your website's requirements.
Lazy Load Scripts
There are times where a script does not need to be invoked upon initial page load. We are building a list of scripts that fit the profile of those that should be lazy-loaded. If you have a plugin which uses a script that we determine should be lazy-loaded, you will be able to disable the lazy-loading via the Settings panel.
One such script that we have identified as being an issue is the Instagram Feed script, which on-load loads a number of images which may never be viewed, and which are considered unoptimized. By lazy-loading the script, it means the page's fully-loaded time is decreased by up to 500ms.
We have now added the ability to enable loggin for specific portions of the Pegasaas plugin. This is primarily used for debugging purposes.
Critical Path CSS Editor
You may now tweak the critical path CSS on a page-by-page basis via the "page/post" edit page in WordPress.
Improved Error Handling
When running the plugin, should a fatal error occur, the plugin will now gracefully exit. The un-optimized page will be displayed, and the error will be logged to the log file. It is a rare situation whent his happens, however this particular update puts a level of protection against the "white page of death" which can happen when a web server is set to not display errors, and script within the WordPress system runs into a fatal error.
Fav Icon Handling
Should a "Fav Icon" not be defined within the HTML and there exists a favicon.ico file in the web server, Pegasaas will auto-inject the <link rel="icon" href="/favicon.ico" /> tag into your html. By doing so, Pegasaas is then able to optimize and serve the icon via the CDN system.
Charset Definition on Cached Pages
GTMetrix advises that a charset is defined for all resources as soon as possible. On cached pages, we are now instruct the server of the charset.
Updated Settings Panel
The Settings Panel, in the Pegasaas dashboard, has now been revamped with similar/related features grouped into sections.
1.11.8 - WP Engine Clear Cache
Resolved a small bug that occurred when the clear_wpengine_cache() function was called.
1.11.7 - Auto Acceleration
Patch to resolve auto-accelertation issues where pages were being accelerated when they weren't supposed to.
1.11.6 - Lazy Load Images
In a recent update, the order in which some of the in-page optimizations are performed was changed. This affected whether or not the lazy-load images were optimized.
This patch addresses this issue.
1.11.5 - Themify Improvements
This update builds upon previous updates, that target specific items in the Themify Ultra theme, which previously caused less than optimal PageSpeed scores.
1.11.4 - Caching on LiteSpeed Server / Themify Builder
Caching on LiteSpeed Server
On some LiteSpeed servers, the order of the .htaccess directives must be in a particular fashion. This update addresses those requirements.
This update includes small changes that should positively affect those that use the Themify Builder.
1.11.3 - Deferral of Render Blocking CSS / Database Optimization
Deferral of Render Blocking CSS
This patch addresses that issue.
By default, Pegasaas Accelerator would attempt to optimize the database whenever given the opportunity. However, on some hosting platforms, this would cause more work than the database was prepared to take on. The solution was to only optimize the database hourly.
1.11.2 - Cloudflare Check Bug
Constant PEGASAAS_CLOUDFLARE_TEST_ENDPOINT was not included in the last build.
1.11.1 - Cloudflare Check Bug
On some servers that do not use a host name lookup when resolving domain names when using the wp_remote_request() command for WordPress, the request to find out whether the server is flowing through Cloudflare would fail, as the connection is looking only to the local server rather than to the global DNS resolved IP address.
The solution was to instead look to a Pegaaas API endpoint, requesting a true/false test for whether Pegasaas (as an outside server) is observing that the requested url is flowing through the Cloudflare system.
1.11.0 - Initialization Sequence/Interface Improvements
As we have added more bells and whistles to the interface, sometimes the initial installation progress appears to hault. We have added an initialization sequence that looks for there being at least one completed accelerated pagespeed score, and one benchmark pagespeed score before proceeding.
In most cases, the initialzation sequence (which shows a progress bar, and some light reading trivia) completes within 7 minutes. It can often complete in under 5 minutes if the speed of the hosting server allows for it.
With the move from "page-by-page" analysis to a more "overview" approach to the speed scores, we have made the dashboard more front-and-center, while putting the individual page scores below the fold in the interface.
Instead, these code blocks should have been excluded.
This has now been patched.
1.10.22 - Lazy Load YouTube
This patch addresses a style issue/conflict with the Thrive responsive video embed.
1.10.21 - Lazy Load YouTube
In a recent update, a small change was made to the lazy_load_youtube function in order to allow for other types of WordPress embedded links. The logic for detecting the YouTube link was not fully tested and resulted in the lazy_load_youtube function not lazy loading youtube videos.
This has now been patched and tested.
1.10.20 - Google Fonts Import Injection
We've added additional auto-injection of Google Fonts directly into the HTML, for situations where the Google Font was being loaded via a <link> tag.
1.10.19 - Page Level Critical Path CSS
While the Post-Type CPCSS should be adequate for most pages, there may be situations where Page-Level CPCSS would be more accurate.
When Pegasaas Accelerator receives a GPSI score, the plugin evaluates whether there is a "Prioritization of Visible Content" issue. If there is such an issue, then the plugin will request a Page-Level CPCSS scan, and then upon receiving the Page-Level CPCSS, Pegasaas Accelerator will re-request a new GPSI score.
There are times, however, when you will want to outright want a Page-Level CPCSS -- such as when the system is not detecting a rendering issue, or it is obvious that the Post-Type CSS is inappropriate for the page requested. For this puprose, we have added new options to the CPCSS drop down menu (to the immediate left of the benchmark GPSI scores on the Accelerator dashboard overview).
You can now explicitly re-build the Page-Level CPCSS. You can now also explicitly build Page-Level CPCSS if there was none already existing.
1.10.18 - Image srcset Issue
Images that have had the srcset attribute set may not have had the proper mapping of the optimized version of the alternate image version if the protocol of the alternate images didn't exactly match the protocol as defined in the src attribute.
In this scenario, the srcset defined image was not mapped to the correct url.
This has now been patched.
1.10.17 - Google Fonts Import Injection
Rather than use the default font-loading mechanism of asking the web browser to fetch the current font-face information from the fonts.googleapis.com system, Pegasaas now directly injects the font-face definitions into the HTML, skipping a browser induced resource call that could be deferred causing a Prioritization of Visible content issue.
Yet another small patch. This one is designed to be a final catch-all for the issue that has occured as described in the previous several JS Minification patches.
1.10.14 - Removed Testing Output
Testing output was inadvertantly left in the previous patch. Oopsies!
1.10.13 - Critical Path CSS Injection Point, Category CPCSS
Critical Path CSS Injection Point
A small change was made to ensure that the injection point was before the first stylesheet. In a recent version, the code was updated to ensure the injection point matched with a <link> tag that was not within comments.
This left a situation where the injection could happen before a <link rel='preload' as='image' ...> which was unacceptable in some situations where there was a <style> block defined between the matched tag, and the first <link rel='preload' as='style' ...> or <link rel='stylesheet' ...>
This patch addresses that.
There was a situation within the code handling for processing GPSI scores, that if the resource was a category, it was attempting to fetch the incorrect backup CPCSS. The deficiency was found and patched.
1.10.12 - CPCSS for Category Layouts
That existing a situation where the Critical Path CSS for a category (based off of the post type for the cateogry) was inadquate to avoid a "Prioritization of Visible Content" penalty. Pegasaas Accelerator is designed to request a specific page-level copy of the CPCSS if the post-type-level CPCSS is adequate.
Post categories do not have a "post id". However, the section of the routine that requests and stores and processes the CPCSS was attemping to use an associated "post id" to store the CPCSS for the page-level CPCSS. This resulted in the CPCSS not being stored correctly.
The solution was to use our internal PegsaasUtils->get_post_object() functionthat retrieves a pseudo post object based on a resource id which is formatted like a URL, rather than the WordPress get_post() function that requires a post id.
Custom Post Types CPCSS
A couple of custom post types were removed from the auto-critical-path-css detection system, as the custom post types involved were not used for publicly available pages.
A further improvement to the previous patch was implemented, which should catch all further issues described in 1.10.10
var x = y - --z;
In this situation, the --z needs to be wrapped in parentheses.
var x = y - (--z);
So that the resulting minified code looks like:
var x=y-(--z); // correct
var x=y---z; // wrong
This patch includes an update that corrects this situation.
1.10.9 - Dynamic Link Injection Resolved
WordPress has a great feature where you can paste a link into your content editor, and it will provide a card with summary about the link.
Pegasaas Accelerator was incorrectly identifying these embedded links as YouTube vidoes, and was attempting to lazyload them as youtube elements resulting in an unexpected placeholder being injected into the page.
This has now been patched.
1.10.8 - Semaphore Locking Improved
In certain conditions, if a website's database is hosted offsite, there maybe a degree of latency involved in writing and reading data. In these situations, it is important to ensure that there is a period (albiet short) that a request for a semphore lock waits for the lock to be released.
In all previous versions, we were waiting for periods of 500 milliseconds, which was too little, and instead have now changed it to .5 seconds (or 500,000 milliseconds), if a semaphore is found to be locked.
1.10.7 - Added Additional Logging
Small patch to add additional logging in the semaphore functionality.
1.10.6 - SiteGround Optimizer Cache Issue
When installed to a SiteGround server and the SG Optimizer plugin is installed, Pegasaas Accelerator will automatically purge the SG cache on demand.
Since a recent update, the purge was happening, but the script was terminating prematurely. This has now been patched.
1.10.5 - WordLift JSON-LD Issue
Resolved issue with the WordLift.io API JSON-LD being corrupted. Although the wl-api/ path was excluded, if Pegasaas did not set itself as disabled "early", the output was in binary form. Further investigation is planned, however the patch does resolve the issue.
1.10.4 - External Image Optimization URL Mapping
The External Image Optimization functionality was inoperable due to a change in a function that was used in the URL re-mapping functionality. This issue has now been patched, so that external images are once again being optimized.
1.10.3 - Cache Fix, SVG Images, Google Fonts, CPCSS Injection
There was a problem with file based cache when the WordPress installation was housed within a subfolder. This has now been patched.
SVG Images were not being properly pushed through the CDN. The CDN now accepts SVG images and properly serves them.
Google Fonts in Critical Path CSS
There was a recent update where URLS that contained query string arguments were stripped of those query string arguments. This, unfortunately, this caused any references to such resources as fonts.googleapi.com/css?family=fontname to be truncated to fonts.googleapi.com/css -- this has now been patched.
Critical Path CSS Injection Location
As the location of the CPCSS in the page is critical to how well the page renders, there was a deficiency in the injection routine where it was placing the CPCSS into a region that then was stripped from the page, if the first <link> reference was immediately preceeded by a comment tag.
A new set of logic was created to identify the proper location for the Critical Path CSS injection.
1.10.2 - Cloudflare Check Bug
On sites that referenced HTTPS but were using a broken certificiate, the system would error out when testing the site for cloudflare support. This is now patched.
1.10.1 - Beaver Builder CSS Cache
Beaver Builder CSS Cache
When using the Beaver Builder plugin for WordPress, when the builder functionality is saved, often the CSS files are rebuild according to what is within the page.
1.10.0 - WebP / Cloudflare / Google Fonts
WebP Images via secondary CDN (beta)
We have have improved automatic WebP image delivery through a second CDN system. These requests will show (if you're inspecting network connections) as img-cdn.pegasaas.io requests, rather than the typical cdn.pegasaas.io requests. This is still in beta testing, and will be released to most installations in the coming weeks.
Pegasaas now detects if you are using cloudflare, and prompts you to enter your API key and Account Email, so that Pegasaas can automatically clear the appropriate resources when you update your site.
When Cloudflare is installed, and the API credentials are valid, you will now have a Purge Cloudflare button available from the top Admin Menu -> Pegasaas menu.
If you have the Optimize Google Fonts option enabled, request for Google Fonts will now flow through a new Pegasaas CDN zone called "fonts-google-cdn.pegasaas.io" and "static-fonts-google-cdn.pegasaas.io". This drastically improves the delivery of webfonts from the Google Fonts system. As the resources are temporarily cached as they are open source and static.
There have been a few bug issues that have been patched in 1.10.0, including:
- Issue with Divi themes that loaded so fast, that a critical window.load call was not triggering
- When document.write scripts were detected, the system was not loading the postscript code correctly
- A locking semaphore was not being released on save_cache call when query-string arguments were being called. This was happening often when critical path css was being built.
- The log.txt file that was being included with the package was not a zero file size.
1.9.2 - Removed testing output, updated accuracy of new progress bars
Testing output was being displayed in overview dashboard.
Progress bars are more accurately showing the progress.
1.9.1 - Removed testing output "post not accelerated"
Output at PegasaasScanner::get_scanned_objects #881 was removed.
1.9.0 - New Dashboard Interface
This update features a completely revamped dashboard interface that provides more information about how fully accelerated your site is.
The primary metric, the Accelerated Site Score is now front and center, with the Non-Accelerated Site Score shifted to the left. To the right is a gauge that shows the number of pages in your site that are accelerated, being accelerated, and/or not accelerated.
In addition, there are three new progress bars just below the main display that show the number of Benchmark (non-accelerated pagespeed) scans, PageSpeed Scans (accelerated pagespeed), and Critical Path CSS Scans that are in progress.
1.8.0 - Setup Wizard, Partial Acceleration, Bulk Actions, Pagination, Lazy Loading
Setup Wizard / Partial Acceleration
This is also a new "setup wizard" that is invoked when you install the plugin for the first time. This new wizard currently has two steps:
- Specify Your API Key
- Choose the # of Pages/Posts that you want to have accelerated upon initialization.
Because you can now choose a partial site acceleration through the new setup wizard, there are new "Bulk" options available from the Edit Posts, Edit Posts, or any Edit Post Type page.
- Accelerate (this will turn acceleration on for a post)
- Disable Acceleration (this will turn acceleration off for a post)
- Clear HTML Cache (if HTML cache exists, this will clear it for the specified post)
Overview Interface Updates
There are now two new toolbars on the Pegasaas Accelerator overview page that help you to view the results that are displayed:
- Sort/Filter Bar (left)
- Show: All, Pages, Posts, or any available post types
- Issue: Any, Minification, Image Optimization, or any other PageSpeed optimization issue
- Results Per Page: limit the number of results per page
- Pagination Bar (right)
- Navigate Back or Forward in the list of accelerated pages
Non-render blocking lazy loading is now enabled with Pegasaas.
Because in a render-blocking (slow) page load, lazy loading typically happens before the rendering of the page, lazy loading is typically seamless.
However, in a non-render-blocking (fast) page load, lazy loading should only be done on resources that are below the fold of the page. Because offset heights cannot be determined until the document object model has been rendered, we cannot run a typical lazy load script on the page. Instead, the Pegasaas Lazy Load system will lazy load after a user defined number of images.
By default, this number is set at 5, however you can change this cofiguration on your Pegasaas plugin settings page.
1.7.16 - Page Level Caching Setting
You can now explicitly disable file based caching on a page-by-page basis.
1.7.15 - PegasaasCache Clearing Deferred JS
A fatal error existed when the auto-crawl cron job was attempting to clear deferred js, as the path to the required "includes/file.php" was incorrect.
This resulted in some sites experiencing a truncated page that was then cached.
This has now been patched.
If you experienced this, clear your Pegasaas HTML page cache and allow the system to re-crawl your pages to build the appropriate cache.
1.7.14 - External Images
Restricted external image optimization to those images with .jp[e?]p/.png file extensions, in response to dynamically generated images, such as Google User Content that did not have a file extension.
1.7.13 - Cache Build Requests now Non-Blocking
Typical cache requests are blocking. If the server is slow, these blocking requests can slow down the requesting script significantly, and in some cases cause a timeout.
With this update, we have made the PegasaasCache->touch_url() function invoke the wp_remote_request with a non-blocking call, rather than the traditional manual CURL requests that we have been using up until this point.
1.7.12 - Pantheon Advanced Page Cache
Added 'pantheon-advanced-page-cache' to the list of supported third-party caching plugin.
1.7.11 - Resolved Fatal Error in PegasaasUtils Line #35
Wrapped "posix_uname()" call in a test to see if function exists first. This code was throwing a fatal error on those servers which did not have a "posix_uname" function defined within the PHP build.
1.7.10 - Elementor Page Builder / Facebook pixel
Exclude the elementor library pages from the post types that are scanned, as they are not publicly visible pages.
Exlclude any images from facebook.com from being optimized by the external image optimizer.
1.7.9 - Pages/Posts Overview Bug Fix
Resolved an issue with the ability to turn acceleration for individual pages on or off.
At the same time, updated the overview to show size of HTML and JS if the system uses file based caching.
1.7.8 - Interface Tweaks
Disabled the click action on the new Page Cache and Critical Path CSS.
1.7.7 - Exclude script with type text/html from deferred-js.js
1.7.6 - Support for build-cpcss via proxy
1.7.5 - Lazy Load YouTube
Fixed a display issue with the thumbnail being stretched.
1.7.4 - Interface Updates, Support for Cache Header Inspection
Updates to the interface including:
- removal of the "last scan date"
- addition of "scan with gtmetrix"
- addition of "scan benchmark with pegasaas, gpsi, and gtmetrix"
- page cache status icon
- critical path css status icon
Also added, via the .htaccess file modifications, an X-Pegasaas-Cache header with a value of HIT or MISS. The API, if finding a MISS when about to scan for GPSI score will defer the request until later.
1.7.3 - Patch Fatal Error Experienced in PegasaasAccelerator
File was truncated for unknown reason.
1.7.2 - Clear Critical Path CSS on Post Type CPCSS
In the event that the returned CPCSS was blank, for a post type, we were trying to clear the cache for that resource (which was non existant). Have patched PegasaasAccelerator::process_critical_css and added lines 1724-1726
1.7.1 - GoDaddy Caching
In this version, we've added the ability to explicitly export the Varnish cache that is used with GoDaddy caching. This will be helpful to have in future revisions where we detect if Varnish is used with other hosting environment.
Minor cosmetic changes:
Removed sub-menu options
Updated ability to enable/disable features without reloading interface
Disabled features now show as a "red box" on the settings page.
1.7.0 - Interface Updates, Kinsta Friendly
This update comes with some cosmetic updates to make the interface easier to use.
There has also been a number of improvements to help with compatibility with resource limited hosting platforms.
1.6.5 - Lazy Load Update / Inline Encode Images
The Lazy Loading of images/iframes and youtube videos has been vastly improved.
Also, we have patched support for inline encoded images.
1.6.4 - Themify Compatibility
Added missing functionality.
1.6.3 - Themify Compatibility
Recommit changes that didn't publish
1.6.2 - Themify Compatibility
Added automatic clearing of themify generated CSS from the CDN cache, upon save close. Also resolved an issue that was being experienced in the "save_post" handler, where Themify was modifying the post ID in such a way that it was passing the incorrect id for the post (it was instead passing the revision id).
To get around this, we changed the hook we use from "save_post" to "edit_post".
1.6.1 - The power of one missing semi-colon
PegasaasAccelerator::defer_render_blocking_css() line 4619
1.6.0 - Data Delivery System Update
In this version, we have revamped how the data is delivered on slow or metered web servers.
On those sites that are on a "normal" or higher setting, the data is delivered as it is assembled.
On those sites that are on a "cautious" delivery rate, the data is delivered via a queue, once there has been a suitable amount of time since the last hit.
On those sites that are on the "slowest" or Kinsta/SiteGround, then the server will hold the data until the plugin installed on the client website requests the data via a pickup.
There are also improvements for the Themify themes in this update.
1.5.28 - Resolved cache-build rate overloading servers
In the PegasaasScanner::submit_scan_requests(), added new code to help with the appropriate build rate.
1.5.27 - On feature change, fatal error
1.5.26 - PegasaasUtils::check_curl_load_time
Function was missing.
1.5.25 - PegasaasUtils::is_siteground_server
Added error supression on the psoix_uname function, as it is not supported on some systems.
1.5.24 - LiteSpeed .htaccess Write Bug
Was not writing to the server as the server was identifying as LiteSpeed
1.5.23 - PegasaasCache::save_page_cache
Fatal error when page with args passed in on line #537
1.5.22 - Scanner Not Working
Resolved issues in scanner not receiving GPSI scores.
1.5.21 - Resolved FATAL error in PegasaasScanner::submit_scan_request
Bug introduced on 1674 due to incorrect reference to api method.
1.5.20 - Resolved WARNING in PegasaasScanner::get_page_speed_opportunities
Introduce on line # 666 because array was not initialized.
1.5.19 - Support for Pantheon Hosting
Added in integrated automatic support for the Pantheon caching system on Pantheon Hosting.
1.5.18 - PegasaasScanner::pegasaas_process_pagespeed_score_requests
Fixed line #1073 that referred to $this when it should have been $pegasaas
1.5.17 - Fix to PegasaasCache
Solved a fatal error when clearing an individual page cache on 352
1.5.16 - Clear Cache on CPCSS API Received
Updated the PegasaasAccelerator:process_critical_css() function to clear cache upon critical path css being received.
Updated the PegasaasCache::clear_cache() function to not clear the entire directory tree in ever situation.
1.5.15 - Bootstrap Conflict
Tweaked the PegasaasInterface::admin_enqueue so that our bootstrap is not running on all admin pages.
1.5.14 - Fix problem on accounts panel #2
1.5.13 - Fix problem on accounts panel
1.5.12 - Support for Caching Plugins
WP Fastest Cache
WP Super Cache
WP Total Cache
1.5.11 - Test Package Version
1.5.10 - Bug Report Fix 5
1.5.9 - Bug Report Fix 4
1.5.8 - Bug Report Fix 3
1.5.7 - Bug Report Fix 2
1.5.6 - Bug Report Fix
Parse error: syntax error, unexpected 'public' (T_PUBLIC) in /var/www/vhosts/michaelwebster.co.uk/httpdocs/selected/wp-content/plugins/pegasaas-accelerator/_inc/classes/pegasaas-interface.class.php on line 630
Have added newline, and removed public declaration.
1.5.5 - Small patch
Removed message "done clearing" that was outputed when pagspeed requests were cleared.
1.5.4 - Clear Cache / Stuck Score Loading
With this version, the plugin code has been better organized into objects with related code.
The clear-all cache functionality should now clear all files.
1.5.3 - Broken Plugin
Fatal Error fix.
1.5.2 - Save Post was outputting Debugging Message
1.5.1 - Front End Admin Bar Fix
CSS/JS for the Admin Bar Menu on the front end, were not loading.
1.5.0 - Load Time, Interface Updates, Caching Improvements
In this version, we have included the before and after load time estimates.
The interface as has a guided help button, and we have resolved caching issues that have been existed since 1.4.
1.4.8 - Google Map No Proxy
Google Maps are now locked down, so we cannot proxy the code.
For the time being, those pages will need to have their Google Code included in the page.
At this time, we are not forcing it to async, which will mean that it will fail the "render blocking resources" aspect of GPSI.
This is currently unavoidable.
1.4.7 - Uploaded loadCSS Fix
Added the pre-load fallback into the code.
1.4.6 - Caching Update
Fixed issue with requests that had query string arguments, saving to cache. Added #6448-6451.
Aso, fixed issue with kinsta_exists() function throwing an error.
1.4.5 - Direct cache fixed
The only page that was utilizing the direct-cache via the .htaccess method was the home page. This is now resolved.
1.4.4 - Fav Ico via CDN / Page Cache
Pegasaas now pushes Fav ICO files, provided they are specified in the page HTML, through the CDN.
Fixed a bug that was not saving the Page Caching setting via the API, and thus top tier page caching was not enabled via the .htaccess file -- as well, the .htaccess file wasn't altered unless the plugin was disabled then re-enabled. This is now resolved.
1.4.3 - Google Font Deliver Optimization Implemented
Pegasaas will now concatenate the Google CSS font loads.
1.4.2 - Fix broken Kinsta patch!
kinsta_exists function needed a test to include plugin.php if it wasn't preloaded. Wupz.
1.4.1 - Added support for Kinsta Caching plugin
Kinsta Cache is now supported. When Pegasaas cache is cleared, so is the Kinsta Cache.
1.4.0 - GZIP (via PHP), interface reload issue fix
Added ob_gzhandler functionality to check_cache() and init() for those servers that do not have GZIP automatically enabled in PHP.
1.3.9 - Small Tweak
Added handling for situation where "is_user_logged_in" function isn't loaded. This is possible when a script has loaded just the basic functionality required to access the WPDB object.
1.3.8 - Updated handling of Pegasaas API calls for WordFence
WordFence was blocking submissions by the Pegasaas API with critical data.
The work around involved
1.3.7 - Debug patched
Had to change the GET argument of "debug" to "pegasaas_debug" due to a conflict with an installed theme.
1.3.6 - Added ability to output debugging for certain functions
submit_benchmark_requests and submit_scan_request are now possible values for the get argument "debug", while in the plugin dashboard
1.3.5 - Performance Updates / Logging / Caching
This update moves the deferred-js to the file system, as well as adds back in the .htaccess routed file caching.
In addition, we are now starting to support logging.
Improvements were made to the HTML caching as well.
There is now a section on the "Cache Panel" that shows the PHP memory usage, and when the usage grows to 90% of the PHP memory limit, pegasaas will halt all new optimizations.
1.3.4 - WooCommerce/WP Ecommerce/Tribe Events Support
Validated against WooCommerce/WP E-Commerce and Tribe Events Calendar.
1.3.3 - Custom Post Types
Added support for Custom Post Types, as well as made the deferred-js load from the CDN.
1.3.2 - Fixed Auto-Load Lazy-Load
The lazy loading of images was not happening automatically for above the fold images on page load. Updated line # 5680.
Also, there were spaces missing in the "replace" functionality in line 5649 and 5691, which caused some images to not render.
1.3.1 - Use CDN for Google Analytics
1.3.0 - Mobile Page Speed Scores
Added Mobile PageSpeed scores to the interface.
Bug fix for additional CDATA in the defer_render_blocking_resources function (5995/5996)
1.2.6 - Page Caching Upgrade
Upgraded page caching to include file-based caching, which is the new default.
1.2.5 - Benchmark Score Issue
1.2.4 - Removed API Output
1.2.3 - Small Bug Fixes
1.2.2 - Recommended Actions Report
Implemented much of the recommended actions report.
1.2.1 - External CSS Proxy Support
Added support for the proxying of external CSS.
Began implementing the recommended actions report.
1.2.0 - Improvements to Caching
Updated admin menu bar to include support for clearing external cache from the front end.
1.1.6 - Google Analytics
Fixed issue with Google Analytics not loading.
1.1.5 - Image Handling
Support for new image quality option, as well as transparent lazy load placeholder.
1.1.4 - Added compatibility for Jetpack optimized images
Accelerator now excludes externally optimized images handled by wp.com via the Jetpack plugin.
1.1.3 - Render Blocking JS Error Resolved
Had to strip paragraph tags due to <script> placed within rich text editor.
1.1.2 - WordPress as Subfolder Site / CDN Support
Have now added support for WordPress as a Subfolder Site.
We have also built in support for the pegasaas CDN for the upcoming PLUS plans.
1.1.1 - Deferred JS Issue / Clear Cache
There appears to have been a race condition that wasn't properly resolved in the check_cache() function that was resulting in the deferred JS being erased prematurely.
In addition, the cache was not auto re-built when the home page was updated, due to the get_page_by_path() wordpress function not returning the proper post id for the home page.
Also added in support for auto clearing of the cache when a post is updated, for those sites that run the blog as the home page.
1.1.0 - CSS Deferral Engine Updated
Now using loadCSS v2 to load in CSS files.
1.0.7 - Added Support for Developer Affiliate ID
1.0.6 - Resolved doubled up HTML
In the sanitize_output routine, we were concatenating the html to itself, rather than a straight assignement, in line # 4524.
1.0.5 - Critical Path Escape Characters
1.0.4 - Critical Path CSS Insertion Point
ON the fly debugging.
1.0.3 - Critical Path CSS Insertion Point
1.0.2 - Critical Path CSS Insertion Point
Resolved fatal error.
1.0.1 - Critical Path CSS Insertion Point
Added the ability to insert the critical path css before the first <link> tag if that was before the first <style> tag, automatically.
1.0.0 - Full Non-Beta Version
0.9.1 - Blog Feed Errors Resolved
Added the /xmlrpc.php and /feed/ urls to those that should not have the <!--pegasaas://accelerator -- page level override (accelerator disabled) --> appended to the end of the output
0.9.0 - Render Blocking JS Error Resolved
Patched error introduced with Post-Script and comments in inline-script code.
Also, resolved bug introduced in version 0.8.8
0.8.9 - Render Blocking JS Error Resolved
Wrap Inline JS in Try/Catch
0.8.8 - WordPress AJAX object
Resolved bug introduced in previous patched, where the ajax_object variable in the page was being stripped out due to the code being surrounded in a CDATA wrapper.
0.8.7 - Render Blocking JS Error Resolved
0.8.6 - Updates to Image Optimization
Added support for thumb.php thumbnailer.
0.8.5 - Isotope Gallery Tweaks 2
Same as previous.
0.8.4 - Isotope Gallery Tweaks
This are a theme level update for the Diavlo HD theme.
0.8.3 - Deferral of inline CSS imports
Added support of deferral of inline CSS imports.
0.8.2 - Results Display Discrepancies
Some results were showing as scanning, even though they were not. There had to be an update to how the scannable items were sorted.
0.8.1 - Semaphore Clearing
Tweaked the code that detects which semaphores are locked.
0.8.0 - Curl SSL Issue / Install / Semaphore Clearing
The system will now pre-detect if the server that it is installed to has a bad certificate file, or SSL is non functional over CURL, and if it is, then disable SSL verify peer.
Also, on some installations, the Update button (when specifying your API key) would not submit.
Also, there is now a button on the Cache panel that will allow administrators to clear semaphore locks -- this should only be used by Pegasaas tech support in troubleshooting.
0.7.7 - Semaphore Bug Fix
Adding missing 'release' for the auto_accelerate_pages semaphore.
0.7.6 - Installation Wizard Updated
Updated instructions and double checked installation routine
0.7.5 - Shorted the refresh time
Reduced the refresh time to 100 page requests (down from 250) which should refresh the page in a half an hour.
0.7.4 - Further Implementation of Semaphore
All critical variables are now protected with semaphore locking.
0.7.3 - Fix Stale Requests and Implemented Throttling to AJAX Requests
After 15 minutes, if a request has not been fulfilled, the Accelerator will now clear the stale request. For future, we would probably want to poll the server to ensure that the request has been fulfilled rather than arbitrarily clearing the request, as the server may be offline or overloaded.
Also, depending upon the response rate setting int he account, the interface will poll once every 5 seconds (Maximum), 10 seconds (Aggressive), 15 seconds (Normal), 30 seconds (Cautious).
Benchmarking on one beta-testing site showed that a rate of 5 seconds per poll, with a 25 page website, will incur about 1200 executions or 500CPU seconds. By reducing the rate to 15 seconds, this can reduce the impact on the server dramatically.
0.7.2 - Semaphore Implemented
Fixed issue related to race conditions.
0.7.1 - PageSpeed reports not saving - patch
Modified if/then statement in function that handles the processing of pagespeed scor requests.
0.7.0 - First Flight Ready
Updated API key check to handle event where pegasaas.io may be inaccessible -- plugin no longer disables.
0.6.7 - Performance Fixes
Ensuring no duplicate scan request.
0.6.6 - Bug Fix
Double-check critical CSS cache cleared.
0.6.5 - Performance Fixes
Fix for a fix -- unexpected scalar.
0.6.4 - Performance Fixes
Fixed a fatal-error bug.
0.6.3 - Performance Fixes
Improvements to the new nonce replacement.
0.6.2 - Performance Fixes
No longer using wp_create_nonce
0.6.1 - Performance Fixes
Resolved data conflict issues between old and new object references.
0.6.0 - New object data reference mechanism
This mechanism will allow for future optimization of non page/post urls.
Previous to this update, stored data was referenced via the page/post ID. Objects such as category pages, tag pages, archives, do not have a unique page/post id associated with them.
In the current version of Accelerator, pages and posts are optimized, however category/archive/tag pages are not, as they do are not as important to search engine optimization.
This new mechanism, however, will allow for an expansion into managing those objects are non page/posts in the future.
0.5.2 - Queried Object Bug Fix
Resolved an issue where blog posts did not have their proper post object stored while the page was being rendered.
0.5.1 - Twitter Widget Lazy Load / Thrive Theme Fixes
There is now support to delay the load of the Twitter Feed widget. This was needed as Google finds the load of unoptimized, non-cached images from Twitter is detrimental to the loading of the page. By delaying the load of the Twitter feed, the initial load time of the page is not impacted. The delay time is configurable, but by default is 5 seconds.
We have also added some support for the Thrive theme grid-layout, which by default does not respond well to deferred render blocking CSS.
0.5.0 - External Image Optimization
Resolved a CART-before-HORSE situation with the external image optimization mechanism.
0.4.9 - Settings Panel and External Image Optimization
Updated the UI for the in-app settings panel with feature descriptions.
There is now the ability to have any external images, that are referenced from within your pages, to be auto-optimized.
Images optimization can now be set to High Quality (Default), Mid-Quality, or Low quality.
0.4.8 - Page Level Overrides
You can now override most Accelerator settings on a page-by-page basis. This is useful in the situations where one or more features for specific pages causes adverse behaviour and you want to disable those features causing a problem.
0.4.7 - Lazy Load Image Support
Added support to lazy load images.
0.4.6 - FAQs and Support Form Added to Plugin
The Accelerator plugin now includes an FAQ page that pulls from real-time FAQs on the pegasaas.com website.
There is now also a support form directly within the plugin which allows you to report any issues with the plugin.
0.4.5 - Lazy Load Iframes
You can now enable/disable lazy-loading of iframes.
0.4.4 - JS Deferral / Individual Scan Item Updates
Also, now when an individual page has a scan requested, the system will first check to see if the critical CSS has been built, and if not, queue that first, and then once that has been built, build the cache for the page, and then finally request the pagespeed score.
0.4.3 - Ability to Clear individual Page/Post Cache
Resolved an issue where the HTML cache was not clearable on a page-by-page basis.
0.4.2 - Benchmark Scan Display Issue Resolved
When the initial scan of the site was being performed, many pages were showing a 'red bar' instead of the 'blue scanning bar'. This is now resolved.
0.4.1 - Added iframe lazy load functionality [beta]
This update implements a lazy load for iframes. This helps to reduce the initial load of resources that may not be needed, especially those that reference sites that do not serve cachable objects, which could impact the initial load time of the page and your Google PageSpeed score.
0.4.0 - Caching Fixes, UI issues Resolved
Fixed a problem, introduced in 0.3.1 when the Blog as Front Page was added to the auto scan, where blog pages were not caching correctly.
Also resolved the issue of when multiple scan requests were submitted in short-order, that some request were not being handled correctly.
UI display issues for scan results also improved.
0.3.2 - CSS Updates
Disable WordPress "update-nag" while on the Pegasaas Accelerator plugin page.
0.3.1 - Added Blog as Front Page to Auto Scan
As of this update, the front page, when it is set as the blog, as is the case for a traditional WordPress blog, now auto builds the Critical-Path CSS, calculates benchmark and accelerated pagespeed score.
0.3.0 - Stable BETA Release
This is the first stable BETA release.
This version automatically accelerates pages and posts, and analyzes the page speed of your pages and posts with and without Pegasaas Accelerator running.