## Purge what changed. Leave everything else cached

Get fine-grained cache invalidation for high-performance content delivery. No more stale content. No more full rebuilds.

(Image content)

## The cache problem with most setups

## Builds getting expensive?

Content changes often trigger full purges, slowing down delivery and hurting performance.

Cache tags let you purge only what changed, reducing rebuilds, keeping edge caches warm, and improving speed.

### The best part? It's out-of the box!

It takes like 2 hours of integration work on your end to get everything up and running to have a perfectly cached site with instant validation. Yeah. That easy.

[Give it a go →](https://www.datocms.com/docs/remix/using-cache-tags.md)

(Image content)

## How cache tags work

## Deterministic, predictable, and scoped to your environment

Every response from the CDA includes an X-Cache-Tags header which represent the exact records, models, or assets involved in that query.

When you update content, we automatically purge all matching tags. Nothing more, nothing less.

(Image content)

## Integrate natively with any (tag-based) CDN

## You don't even need to overhaul your stack

Cache Tags work natively with Fastly (via Surrogate-Key) and Cloudflare (via Cache-Tag), letting you connect purge events via webhooks, or trigger them via CLI or API.

It works with any edge-cached SSR, static site revalidation, or serverless functions that honor CDN headers.

### Psst: Looking for an example?

To illustrate a combination of tools that fit into this category, we have put together a tutorial on implementing DatoCMS Cache Tags with Remix as the framework and Fastly as the cache-tags-capable CDN on top of the Remix app.

[Check it out →](https://www.datocms.com/docs/remix/using-cache-tags.md)

(Image content)

## Cool in theory, better in practice

## Built for speed. At scale. For the real world.

Less redeploying. Less stale content. Less traffic hitting your origin.

-   No full-cache invalidation
-   Keep pages fast and cached
-   Reduce rebuilds and API calls
-   Reflect changes in near real-time

### Psst: Need a practical example with your framework?

Let’s talk Next.js, whose `fetch()` and `revalidateTag()` are the founding blocks for using cache tags, together with the framework inner logic. So we implemented Cache Tags on a Next.js project to show you how they work.

[Check it out →](https://www.datocms.com/docs/next-js/using-cache-tags.md)

Take it for a spin

## Available on all plans. Not gatekept behind $$$

We developed Cache Tags for ourselves, and we mean it when we say that they were a gamechanger. So why keep it from you?