Cache WooCommerce Shop Page
-
I am having an issue with the woocommerce shop page. When I update the products’ info they are visible on the shop main page but not on the single product category page. They take quite a long time in order to update and show the final result.
The page I need help with: [log in to see the link]
-
Hello @tomenr
Thank you for reaching out and I am happy to help!
Have you tried purging the cache once the product is updated and see if the issue persists?Thanks!
Hi,
and thanks for your answer.
I did it and unfortunately I don’t see the update.What I notice is for example that one product has a price in the back-end product description, but not in the back-end general product overview.
You have some double Browser Cache rules. When I checked yoru website I can see:
Cache-Control: max-age=2592000
Cache-Control: max-age=3595, public
the default in the W3 Total Cache Browser Cache settings is 3600
Can you please check this In your .htaccess?Thanks!
What I find in the .htaccess:
Header append Cache-Control “public”BEGIN WP Rocket v3.15.4 Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset UTF-8 Force UTF-8 for a number of file formats
AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml FileETag None is not enough for every server.
Header unset ETag Since we’re sending far-future expires, we don’t need ETags for static content. developer.yahoo.com/performance/rules.html#etags
FileETag None
Header set X-Powered-By “WP Rocket/3.15.4” Header unset Pragma Header append Cache-Control “public” Header unset Last-Modified
Header unset Pragma Header append Cache-Control “public”
AddType image/avif avif AddType image/avif-sequence avifs Expires headers (for better cache control)
ExpiresActive on ExpiresDefault “access plus 1 month” # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5) ExpiresByType text/cache-manifest “access plus 0 seconds” # Your document html ExpiresByType text/html “access plus 0 seconds” # Data ExpiresByType text/xml “access plus 0 seconds” ExpiresByType application/xml “access plus 0 seconds” ExpiresByType application/json “access plus 0 seconds” # Feed ExpiresByType application/rss+xml “access plus 1 hour” ExpiresByType application/atom+xml “access plus 1 hour” # Favicon (cannot be renamed) ExpiresByType image/x-icon “access plus 1 week” # Media: images, video, audio ExpiresByType image/gif “access plus 4 months” ExpiresByType image/png “access plus 4 months” ExpiresByType image/jpeg “access plus 4 months” ExpiresByType image/webp “access plus 4 months” ExpiresByType video/ogg “access plus 4 months” ExpiresByType audio/ogg “access plus 4 months” ExpiresByType video/mp4 “access plus 4 months” ExpiresByType video/webm “access plus 4 months” ExpiresByType image/avif “access plus 4 months” ExpiresByType image/avif-sequence “access plus 4 months” # HTC files (css3pie) ExpiresByType text/x-component “access plus 1 month” # Webfonts ExpiresByType font/ttf “access plus 4 months” ExpiresByType font/otf “access plus 4 months” ExpiresByType font/woff “access plus 4 months” ExpiresByType font/woff2 “access plus 4 months” ExpiresByType image/svg+xml “access plus 4 months” ExpiresByType application/vnd.ms-fontobject “access plus 1 month” # CSS and JavaScript ExpiresByType text/css “access plus 1 year” ExpiresByType application/javascript “access plus 1 year” Gzip compression Active compression
SetOutputFilter DEFLATE Force deflate for mangled headers
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s,?\s)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding “gzip,deflate” env=HAVE_Accept-Encoding Don’t compress images and other uncompressible contentSetEnvIfNoCase Request_URI \
.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g|mp4|webm|webp|pdf)$ no-gzip dont-vary
Compress all output labeled with one of the following MIME-typesAddOutputFilterByType DEFLATE application/atom+xml \ application/javascript \ application/json \ application/rss+xml \ application/vnd.ms-fontobject \ application/x-font-ttf \ application/xhtml+xml \ application/xml \ font/opentype \ image/svg+xml \ image/x-icon \ text/css \ text/html \ text/plain \ text/x-component \ text/xml
Header append Vary: Accept-Encoding
END WP Rocket Eingefuegt durch den Mittwald Support – 07-12-2023_09-42-53 Ein Backup wurde unter 07-12-2023_09-42-53.htaccess.bak abgelegt. #####503-for-Bots # SetEnvIfNoCase User-Agent “Googlebot” bots SetEnvIfNoCase User-Agent “Googlebot-Image” bots SetEnvIfNoCase User-Agent “Googlebot-Mobile” bots SetEnvIfNoCase User-Agent “Java” bots SetEnvIfNoCase User-Agent “Rocket/Preload” bots SetEnvIfNoCase User-Agent “UptimeRobot” bots SetEnvIfNoCase User-Agent “bingbot” bots SetEnvIfNoCase User-Agent “msnbot” bots SetEnvIfNoCase User-Agent “msnbot-media” botsSetEnvIfNoCase User-Agent “TinyTestBot” bots
SetEnvIfNoCase User-Agent “AACrawler” bots
SetEnvIfNoCase User-Agent “AcoonBot” bots
SetEnvIfNoCase User-Agent “AhrefsBot” bots
SetEnvIfNoCase User-Agent “AhrefsSiteAudit” bots
SetEnvIfNoCase User-Agent “Amazonbot” bots
SetEnvIfNoCase User-Agent “BLEXBot” bots
SetEnvIfNoCase User-Agent “BLP_bbot” bots
SetEnvIfNoCase User-Agent “BUbiNG” bots
SetEnvIfNoCase User-Agent “Baiduspider” bots
SetEnvIfNoCase User-Agent “Baiduspider-image” bots
SetEnvIfNoCase User-Agent “Bytespider” bots
SetEnvIfNoCase User-Agent “CCBot” bots
SetEnvIfNoCase User-Agent “CaBot” bots
SetEnvIfNoCase User-Agent “CompSpyBot” bots
SetEnvIfNoCase User-Agent “DataForSeoBot” bots
SetEnvIfNoCase User-Agent “Daum” bots
SetEnvIfNoCase User-Agent “DoCoMo” bots
SetEnvIfNoCase User-Agent “DotBot” bots
SetEnvIfNoCase User-Agent “DnBCrawler” bots
SetEnvIfNoCase User-Agent “Exabot” bots
SetEnvIfNoCase User-Agent “Ezooms” bots
SetEnvIfNoCase User-Agent “Faraday” bots
SetEnvIfNoCase User-Agent “FeedBurner” bots
SetEnvIfNoCase User-Agent “Freshbot” bots
SetEnvIfNoCase User-Agent “GrapeshotCrawler” bots
SetEnvIfNoCase User-Agent “GPTBot” bots
SetEnvIfNoCase User-Agent “HuaweiSymantecSpider” bots
SetEnvIfNoCase User-Agent “Infohelfer” bots
SetEnvIfNoCase User-Agent “JobboerseBot” bots
SetEnvIfNoCase User-Agent “Jooblebot” bots
SetEnvIfNoCase User-Agent “Landau-Media-Spider” bots
SetEnvIfNoCase User-Agent “MJ12bot” bots
SetEnvIfNoCase User-Agent “Mail.RU_Bot” bots
SetEnvIfNoCase User-Agent “MegaIndex” bots
SetEnvIfNoCase User-Agent “MegaIndex.ru” bots
SetEnvIfNoCase User-Agent “MetaJobBot” bots
SetEnvIfNoCase User-Agent “MetricsBot” bots
SetEnvIfNoCase User-Agent “MojeekBot” bots
SetEnvIfNoCase User-Agent “Netvibes” bots
SetEnvIfNoCase User-Agent “Nutch-1.10” bots
SetEnvIfNoCase User-Agent “OnPageBot” bots
SetEnvIfNoCase User-Agent “OpenWebSpider” bots
SetEnvIfNoCase User-Agent “PRTGCloudBot” bots
SetEnvIfNoCase User-Agent “PhantomJsCloud” bots
SetEnvIfNoCase User-Agent “Paracrawl” bots
SetEnvIfNoCase User-Agent “PetalBot” bots
SetEnvIfNoCase User-Agent “Pinterestbot” bots
SetEnvIfNoCase User-Agent “PiplBot” bots
SetEnvIfNoCase User-Agent “Pixray-Seeker” bots
SetEnvIfNoCase User-Agent “Qwantify” bots
SetEnvIfNoCase User-Agent “Ralocobot” bots
SetEnvIfNoCase User-Agent “SEOkicks” bots
SetEnvIfNoCase User-Agent “SEOkicks-Robot” bots
SetEnvIfNoCase User-Agent “serpstatbot” bots
SetEnvIfNoCase User-Agent “Screaming” bots
SetEnvIfNoCase User-Agent “Seekport” bots
SetEnvIfNoCase User-Agent “SemrushBot” bots
SetEnvIfNoCase User-Agent “serpstatbot” bots
SetEnvIfNoCase User-Agent “SeznamBot” bots
SetEnvIfNoCase User-Agent “Site24x7” bots
SetEnvIfNoCase User-Agent “Slurp” bots
SetEnvIfNoCase User-Agent “Screaming” bots
SetEnvIfNoCase User-Agent “Sosospider” bots
SetEnvIfNoCase User-Agent “Speedy” bots
SetEnvIfNoCase User-Agent “Spider” bots
SetEnvIfNoCase User-Agent “Spiderlytics” bots
SetEnvIfNoCase User-Agent “StractBot” bots
SetEnvIfNoCase User-Agent “Superfeedr” bots
SetEnvIfNoCase User-Agent “Toweya.com” bots
SetEnvIfNoCase User-Agent “TurnitinBot” bots
SetEnvIfNoCase User-Agent “TwengaBot” bots
SetEnvIfNoCase User-Agent “Twiceler” bots
SetEnvIfNoCase User-Agent “Twitterbot” bots
SetEnvIfNoCase User-Agent “TMMBot” bots
SetEnvIfNoCase User-Agent “UnisterBot” bots
SetEnvIfNoCase User-Agent “WebCapture” bots
SetEnvIfNoCase User-Agent “wine-searcherbot” bots
SetEnvIfNoCase User-Agent “XoviBot” bots
SetEnvIfNoCase User-Agent “Yandex” bots
SetEnvIfNoCase User-Agent “ZumBot” bots
SetEnvIfNoCase User-Agent “admantx” bots
SetEnvIfNoCase User-Agent “adscanner” bots
SetEnvIfNoCase User-Agent “aggregator:Spinn3r” bots
SetEnvIfNoCase User-Agent “crawler” bots
SetEnvIfNoCase User-Agent “[email protected]” bots
SetEnvIfNoCase User-Agent “domaincrawler.com” bots
SetEnvIfNoCase User-Agent “echobot” bots
SetEnvIfNoCase User-Agent “heritrix” bots
SetEnvIfNoCase User-Agent “htdig” bots
SetEnvIfNoCase User-Agent “ia_archiver” bots
SetEnvIfNoCase User-Agent “imaBot” bots
SetEnvIfNoCase User-Agent “infometrics-bot” bots
SetEnvIfNoCase User-Agent “jobs.de-Robot” bots
SetEnvIfNoCase User-Agent “linkdex.com” bots
SetEnvIfNoCase User-Agent “magpie-crawler” bots
SetEnvIfNoCase User-Agent “meanpathbot” bots
SetEnvIfNoCase User-Agent “omgili” bots
SetEnvIfNoCase User-Agent “pricebot” bots
SetEnvIfNoCase User-Agent “proximic” bots
SetEnvIfNoCase User-Agent “psbot” bots
SetEnvIfNoCase User-Agent “rogerbot” bots
SetEnvIfNoCase User-Agent “sentibot” bots
SetEnvIfNoCase User-Agent “seoscanners” bots
SetEnvIfNoCase User-Agent “smtbot” bots
SetEnvIfNoCase User-Agent “sogou” bots
SetEnvIfNoCase User-Agent “spbot” bots
SetEnvIfNoCase User-Agent “spider” bots
SetEnvIfNoCase User-Agent “ssearch_bot” bots
SetEnvIfNoCase User-Agent “tb-webde” bots
SetEnvIfNoCase User-Agent “textlink_status_crawler” bots
SetEnvIfNoCase User-Agent “tracemyfile” bots
SetEnvIfNoCase User-Agent “trendictionbot” bots
SetEnvIfNoCase User-Agent “vebidoobot-Robot” bots
SetEnvIfNoCase User-Agent “linkfluence” bots
SetEnvIfNoCase User-Agent “serpstatbot” bots
SetEnvIfNoCase User-Agent “Dmbot” bots
SetEnvIfNoCase User-Agent “Barkrowler” bots
SetEnvIfNoCase User-Agent “Applebot” bots
SetEnvIfNoCase User-Agent “FullStoryBot” bots
SetEnvIfNoCase User-Agent “YetiBOT” bots
SetEnvIfNoCase User-Agent “coccocbot-image” bots
SetEnvIfNoCase User-Agent “coccocbot-web” bots
SetEnvIfNoCase User-Agent “bl.uk_lddc_bot” bots
SetEnvIfNoCase User-Agent “test-bot” bots
SetEnvIfNoCase User-Agent “tiny-test-bot” bots
SetEnvIfNoCase User-Agent “thesis-research-bot” bots
SetEnvIfNoCase User-Agent “fidget-spinner-bot” bots Retry 12hHeader always set Retry-After “43200” env=bots
RewriteEngine on
RewriteCond %{ENV:bots} 1
RewriteRule .* – [R=503,L] # # BEGIN LSCACHE END LSCACHE BEGIN NON_LSCACHE END NON_LSCACHE ———————————————————————- | Compression | ———————————————————————- Force compression for mangledAccept-Encoding
request headers https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html<IfModule mod_setenvif.c> <IfModule mod_headers.c> SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding </IfModule> </IfModule>
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Compress all output labeled with one of the following media types.
# (!) For Apache versions below version 2.3.7 you don’t need to enable
mod_filter
and can remove the<IfModule mod_filter.c>
and</IfModule>
lines asAddOutputFilterByType
is still in the core directives.# https://httpd.apache.org/docs/current/mod/mod_filter.html#addoutputfilterbytype
<IfModule mod_filter.c> AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/ld+json" \ "application/manifest+json" \ "application/rdf+xml" \ "application/rss+xml" \ "application/schema+json" \ "application/vnd.geo+json" \ "application/vnd.ms-fontobject" \ "application/x-font-ttf" \ "application/x-javascript" \ "application/x-web-app-manifest+json" \ "application/xhtml+xml" \ "application/xml" \ "font/collection" \ "font/eot" \ "font/opentype" \ "font/otf" \ "font/ttf" \ "image/bmp" \ "image/svg+xml" \ "image/vnd.microsoft.icon" \ "image/x-icon" \ "text/cache-manifest" \ "text/calendar" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/markdown" \ "text/vcard" \ "text/vnd.rim.location.xloc" \ "text/vtt" \ "text/x-component" \ "text/x-cross-domain-policy" \ "text/xml" </IfModule>
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Map the following filename extensions to the specified encoding type in order to make Apache serve the file types with the appropriate
Content-Encoding
response header (do note that this will NOT make Apache compress them!).# If these files types would be served without an appropriate
Content-Enable
response header, client applications (e.g.: browsers) wouldn’t know that they first need to uncompress the response, and thus, wouldn’t be able to understand the content.# https://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding
<IfModule mod_mime.c> AddEncoding gzip svgz </IfModule>
———————————————————————- | Expires headers | ———————————————————————- Serve resources with far-future expires headers.
# (!) If you don’t control versioning with filename-based cache busting, you should consider lowering the cache times to something like one week.
# https://httpd.apache.org/docs/current/mod/mod_expires.html
ExpiresActive on ExpiresDefault "access plus 1 month"
CSS
ExpiresByType text/css "access plus 1 year"
Data interchange
ExpiresByType application/atom+xml "access plus 1 hour" ExpiresByType application/rdf+xml "access plus 1 hour" ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/ld+json "access plus 0 seconds" ExpiresByType application/schema+json "access plus 0 seconds" ExpiresByType application/vnd.geo+json "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType text/calendar "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds"
Favicon (cannot be renamed!) and cursor images
ExpiresByType image/vnd.microsoft.icon "access plus 1 week" ExpiresByType image/x-icon "access plus 1 week"
HTML
ExpiresByType text/html "access plus 0 seconds"
JavaScript
ExpiresByType application/javascript "access plus 1 year" ExpiresByType application/x-javascript "access plus 1 year" ExpiresByType text/javascript "access plus 1 year"
Manifest files
ExpiresByType application/manifest+json "access plus 1 week" ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" ExpiresByType text/cache-manifest "access plus 0 seconds"
Markdown
ExpiresByType text/markdown "access plus 0 seconds"
Media files
ExpiresByType audio/ogg "access plus 1 month" ExpiresByType image/bmp "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType image/webp "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType video/webm "access plus 1 month"
Web fonts Collection
ExpiresByType font/collection "access plus 1 month"
Embedded OpenType (EOT)
ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresByType font/eot "access plus 1 month"
OpenType
ExpiresByType font/opentype "access plus 1 month" ExpiresByType font/otf "access plus 1 month"
TrueType
ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/ttf "access plus 1 month"
Web Open Font Format (WOFF) 1.0
ExpiresByType application/font-woff "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType font/woff "access plus 1 month"
Web Open Font Format (WOFF) 2.0
ExpiresByType application/font-woff2 "access plus 1 month" ExpiresByType font/woff2 "access plus 1 month"
Other
ExpiresByType text/x-cross-domain-policy "access plus 1 week"
RewriteEngine On RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] BEGIN WordPress The directives (lines) between “BEGIN WordPress” and “END WordPress” are dynamically generated, and should only be modified via WordPress filters. Any changes to the directives between these markers will be overwritten.
RewriteEngine On RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] END WordPress
Hello @tomenr
Thank you for sharing this.
As I can see, you do not use W3 Total Cache, you are using some other plugin for this.
Can you please confirm that you have more than one caching solution?
Thanks!
We had W3 Total Cache till end last week, but now we use WP Rocket (our server provider suggestion)
- The topic ‘Cache WooCommerce Shop Page’ is closed to new replies.