If STATIC_URL and MEDIA_URL still point at the same host that runs views, you are paying worker time for CSS. Point both at Cloud CDN and keep admin on Django.
collectstatic is an origin, not a product
Run collectstatic to a disk or host Cloud CDN can pull. Set STATIC_URL to the CDN hostname. ManifestStaticFilesStorage hashed names can live at the edge until the filename changes.
MEDIA_URL for public uploads
Public avatars, catalogue images and downloads belong on the CDN. Private media should stay signed at origin.
WhiteNoise can remain the origin-side static server. Cloud CDN caches that result worldwide.
Admin and CSRF
django-admin, login and any POST stay dynamic. Never cache HTML that embeds a per-user CSRF token.
DRF GET endpoints
Public identical GET JSON can be cached. Authenticated APIs must bypass. See the API caching guide.
