Because it should be. Tracking parameters — utm_*, gclid, gad_source, srsltid, fbclid and the rest — are stripped before the lookup, so an advert click or a Google Shopping result gets the same cached page as a direct visit. Real parameters like sorting and pagination are kept, so those cache separately, and they are cleared along with the page they belong to: changing a product clears /shop/page/2/ and /shop/?orderby=price as well as /shop/.
Most caching plugins treat any query string as uncacheable, which quietly turns off caching for most of a shop.
Still stuck? Ask the developers who wrote it. We aim to reply within one business day.
