It's of course GOOD to provide a validator, so the troubling part of these results is the 23% of responses that don't return any revalidation values. Digging deeper into those we see that about half (49%) have a Cache-Control header that dictates they must ALWAYS be re-fetched from origin - so perhaps revalidation is less critical. About a quarter don't have a Cache-Control header - these are the ones that really need focus by the website owner as the behavior is left to the browser implementation and can't be validated. And the other quarter also need help as they ARE intended to be cached but when that cache time expires revalidation is not possible.
SELECT cache_header, round(100*ratio) as percent, resource_count FROM (
SELECT count(*) as resource_count, RATIO_TO_REPORT(resource_count) OVER() ratio,
CASE WHEN resp_cache_control = "" THEN "no cache header"
WHEN (resp_cache_control contains "no-cache" OR resp_cache_control contains "no-store" OR resp_cache_control contains "must_revalidate" OR resp_cache_control contains "max-age=0") THEN "explicit NO caching"
END as cache_header
WHERE (resp_etag = "" AND resp_last_modified = "")
GROUP BY cache_header
ORDER BY resource_count desc