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.