Skip to content

Detect available object caching backend(s) to guide users toward persistent object caching plugins #5780

@westonruter

Description

@westonruter

Feature description

When persistent object caching is not enabled on a WordPress site, we provide the following Site Health test recommendation:

image

This is not very helpful because the only call to action is to a link to Learn more about persistent object caching (opens in a new tab), and the information on that handbook page is not very helpful for non-technical users. It's also not helpful because it doesn't provide specific plugins that should be used for implementing a persistent object cache.

In #1216 we explored attempting to detect the host running to then link off to host-specific instructions. However, determined that was not feasible: #1216 (comment).

What we can do, however, is detect if the PHP extensions are installed for Redis, Memcached, and APC/APCu. With that information, we can inform the user what persistent object caching backend they appear to have available and then we can perhaps provide some plugin suggestions for that backend. (Note we may need to also try to connect to Redis and Memcached to see that the servers are available.)

Instead of mentioning the specific plugins in the Site Health info recommendation, the list of backend-specific plugins can be in a documentation page on amp-wp.org. This documentation page can pull together the various pieces of information about object caching spread out across WordPress.org, including:

Ultimately, the user should ask their host for the recommended way to enable object caching first before they do it themselves. So our recommendation should be to first contact the host, and then continue with our guidance to try the plugins we've identified which may work with their site.

See support topics about object caching:

Anything we can do to make it easier for users to enable object caching the better.

This is part of encouraging users to use page caching (#4386).


Do not alter or remove anything below. The following sections will be managed by moderators only.

Acceptance criteria

Implementation brief

QA testing instructions

Demo

Changelog entry

Metadata

Metadata

Labels

ChangeloggedWhether the issue/PR has been added to release notes.GroomedP0High priorityPerformancePuntedWS:PerfWork stream for Metrics, Performance and Optimizer

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions