WordPress Caching

Browser Cache

Using .htaccess:

ExpiresActive On
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresDefault "access 1 month"
# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
<filesMatch "\.(css)$">
Header set Cache-Control "public"
<filesMatch "\.(js)$">
Header set Cache-Control "private"
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"
# END Cache-Control Headers
# BEGIN Turn ETags Off
FileETag None
# END Turn ETags Off

See https://technumero.com/how-to-leverage-browser-caching-wordpress/ for more

Added to: clickforafrica.org

Server Cache

WordPress might give a vague warning in the Site Health Status section of Dashboard:

You should use a persistent opject cache.

A persistent object cache makes your site’s database more efficient, resulting in faster load times because WordPress can retrieve your site’s content and settings much more quickly.

Your hosting provider can tell you if a persistent object cache can be enabled on your site.

Enable Redis and Memcached. It’s only stating that the AMP plugin works at its best with Persistent object caching. So you can safely ignore it.

But if you need this option enabled, this can be done:
In Select PHP page, https://wiki.crowncloud.net/?how_to_select_PHP_version_directadmin
point 4, you can see a list of PHP Modules / Extensions listed and some enabled etc.
You can enable Redis Module and that should help with the Persistent object cache.