Skip to content

Plugin incompatibilities

All WordPress sites on the VIP Platform are provisioned with robust, built-in performance features such as:

  • Varnish page caching that runs on a global network of edge cache servers.
  • JavaScript and CSS files are concatenated in order to reduce the number of requests that occur on a single page load. CSS files are minified as well as concatenated.
  • Gzip compression for all HTML, CSS, JS, and image files.

Adding third-party plugins that provide additional versions of these features is not only unnecessary, but may result in negative impacts on a site’s performance.

When considering a plugin to add to a site, verify that the plugin is not adding a version of a feature already provided by the platform. In addition, before adding any plugin to a site, complete the steps to evaluate a third-party plugin and its potential compatibility with the platform.

Backup, export, and import plugins

Plugins that are intended to create SQL database and media backups, imports, and exports will not work as expected.

Tooling on the VIP Platform already exists for:

Incompatibilities with the VIP Platform infrastructure have been observed in the following plugins that perform backups, exports, and imports:

Caching plugins

The features offered by caching plugins are already built-in and handled more efficiently by the VIP Platform’s Varnish page cache. Third-party caching plugins are not designed to work with the VIP Platform’s globally distributed edge cache servers and auto-scaling server architecture.

Caching plugins can also be incompatible due to

  • Attempts to write files to a cache directory: The VIP File System is read-only.
  • Interactions with an .htaccess file: The .htaccess file only exists on Apache servers; VIP runs on NGINX.

Incompatibilities with the VIP Platform’s caching layers have been observed in the following plugins:

Image optimization plugins

Images uploaded to a site are stored on the VIP File System. The VIP File System automatically serves images that are:

Incompatibilities with the VIP File System have been observed in the following image optimization plugins:

Security plugins

Multiple security measures are supplied by VIP MU plugins for all WordPress sites, including protections for wp-login.php and xmlrpc.php.

All web servers run in read-only mode. This helps to protect applications on the platform against many common forms of attack (e.g. vulnerabilities that allow the installation of backdoor shells and other malicious files).

Incompatibilities with the VIP Platform’s security infrastructure have been observed in the following plugins:

SQL query-intensive plugins

Some plugins generate inefficient SQL queries or can trigger SQL-intensive cron tasks when they are not designed for an enterprise-scale site. Inefficient SQL queries can be compounded if a WordPress site hosts a significant volume of content, if the site is on a large multisite network, if a substantial number of users are registered, or if the application code depends on inefficient meta queries.

On the VIP Platform, cron processes are run in a separate container from application requests, but both share the same MySQL resources. A large volume of simultaneous SQL queries can overload the primary or replica databases, which can lead to an increase in responses with a 503 HTTP status code. Because of this, all SQL queries and cron tasks should be as performant as possible to prevent negatively impacting the site’s responsiveness, especially during planned, or unplanned, high-traffic events.

Plugins that require write permissions

The /tmp directory is the only writeable path on an application’s web servers. Plugins that attempt to write to any other directory will not work as expected.

Media files that are uploaded or imported to a VIP Platform WordPress environment are not stored in a filesystem local to the site’s web server. Media files are stored on the VIP File System, which is a read-only external object store.

Plugin operations that expect media files to be stored locally, and to have write permissions within /uploads/, will not work as expected. An alternative plugin should be considered. Otherwise, modifications might be needed for the plugin’s code to be able to work with uploaded files.

Required write permissions have been observed in the following plugins:

Plugins that attempt to create intermediate images

Plugins that attempt to create separate, additional versions of an image file (i.e., intermediate images) will not work as expected. These plugins can often be identified by operations that are intended to create versions of a file with an image size added at the end file name (e.g. my-image-300x300.jpg). The 300x300 dimension included in the file name indicates that the plugin expects to have write access, but the File System is read-only.

Last updated: February 07, 2023