# Caching

URL: /bengal/docs/0.5.0/theming/templating/kida/caching/
Section: caching
Description: Automatic and manual template caching

---

> For a complete page index, fetch /bengal/llms.txt.

Kida provides two levels of template caching: automatic block caching for site-wide content and manual fragment caching for expensive operations.

## Automatic Block Caching

Kida analyzes templates at compile time and automatically caches blocks that only depend on site-wide data. Blocks that only reference site-wide variables (like`site.*`, `config.*`) are rendered once per build and reused across all pages. For example, on a 500-page site, a site-scoped footer block renders once instead of 500 times.

## Fragment Caching

Use`{% cache %}`for manual control over expensive operations like navigation trees, related posts, and statistics.

kida
KIDA

```
{% cache "related-posts-" ~ post.id %}
  {% let related = site.pages
    |> where('type', 'blog')
    |> where('tags', post.tags[0])
    |> take(5) %}
  <ul>
    {% for item in related %}
      <li><a href="{{ item.href }}">{{ item.title }}</a></li>
    {% end %}
  </ul>
{% end %}
```
## Performance Impact

Automatic block caching provides significant performance improvements for site-scoped blocks. The following table illustrates theoretical savings assuming a 200-line footer block that depends only on site-wide data:

Site Size
Lines Rendered (Before)
Lines Rendered (After)
Savings

100 pages
20,000
200
99%

500 pages
100,000
200
99.8%

1000 pages
200,000
200
99.9%

Note: These percentages are illustrative examples based on theoretical calculations. Actual savings depend on:

- Number of site-scoped blocks in your templates

- Size of each cached block

- Site structure and template complexity

To verify actual performance improvements, build your site with`--verbose`to see block cache statistics, or compare build times with and without caching enabled.

## Topics

Automatic Block Caching

How Kida automatically caches site-scoped template blocks

(/bengal/docs/0.5.0/theming/templating/kida/caching/automatic/)

Fragment Caching

Manual caching for expensive template operations

(/bengal/docs/0.5.0/theming/templating/kida/caching/fragments/)

## In This Section

Automatic Block Caching (/bengal/docs/0.5.0/theming/templating/kida/caching/automatic/)

How Kida automatically caches site-scoped template blocks

Fragment Caching (/bengal/docs/0.5.0/theming/templating/kida/caching/fragments/)

Manual caching for expensive template operations
