With version 8, Drupal delivered major improvements in the way content could be cached and expired. For the first time, significant caching is possible for dynamic pages and authenticated users. However, the caching system can be complex and confusing. Developers can inadvertently negate the advantages of Drupal’s cache systems and, even worse, create security and information disclosure holes. This presentation will provide an overview of Drupal’s cache layers and will cover best practices when theme-ing and customizing Drupal to avoid common errors and to maximize performance. Among the topics to be covered: The anonymous and dynamic page caches and the render cache. Cache bins, memcache and the differences between Drupal’s data and render caches. Cache tags, contexts and max-age. Debugging tools and techniques. Common pitfalls when theme-ing and customizing Drupal. Using #lazybuilder callbacks for dynamic content. Leveraging reverse proxies like Varnish and content delivery networks (CDNs). Big Pipe and custom render strategies.