diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 395ba8632ce34257e56bcfe8717121003733bad2..8256bc03bb0f2eb98aa09d62caee5f184047cbbb 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -47,6 +47,7 @@ Changed
 * [Dev] The undocumented field `check` on `DataCheckResult` was renamed to `data_check`
 * Frontend bundling migrated from Webpack to Vite
 * Get dashboard widgets and data checks from apps with new registration mechanism.
+* Use write-through cache for sessions to retain on clear_cache
 * Better error page with redirect option to login page when user has no permission to access a route.
 
 Fixed
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index 0cd27e97ac422b7da054fe4beddca57a239a4ff8..8b3148771b2310d455228911189712340a4ebb7c 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -277,8 +277,9 @@ CACHALOT_TIMEOUT = _settings.get("caching.cachalot.timeout", None)
 CACHALOT_DATABASES = set(["default", "default_oot"])
 SILENCED_SYSTEM_CHECKS += ["cachalot.W001"]
 CACHALOT_ENABLED = _settings.get("caching.query_caching", True)
+CACHALOT_UNCACHABLE_TABLES = ("django_migrations", "django_session")
 
-SESSION_ENGINE = "django.contrib.sessions.backends.cache"
+SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
 SESSION_CACHE_ALIAS = "default"
 
 # Password validation