diff --git a/funkwhale_network/crawler.py b/funkwhale_network/crawler.py
index db9cfc03e4a2491d4b3bd7b306ec6a4f3a30b66d..3181cd133f8379a115fe8971c699a99b103f4e8a 100644
--- a/funkwhale_network/crawler.py
+++ b/funkwhale_network/crawler.py
@@ -144,6 +144,11 @@ async def save_check(cursor, data):
     await cursor.execute(sql, values)
     check = await cursor.fetchone()
 
+    if data.get("private") is True:
+        # let's clean previous checks
+        sql = "DELETE FROM checks WHERE domain = %s"
+        await cursor.execute(sql, [data["domain"]])
+        return
     if node_name:
         await cursor.execute(
             "UPDATE domains SET node_name = %s WHERE name = %s",
diff --git a/tests/test_crawler.py b/tests/test_crawler.py
index 03790aaadea34207a4694054db1c10ece70b3933..b30a81f11e4114bf06d43be58951c31be22fc48f 100644
--- a/tests/test_crawler.py
+++ b/tests/test_crawler.py
@@ -177,7 +177,8 @@ async def test_clean_check_result():
     assert crawler.clean_check(check, data) == expected
 
 
-async def test_save_check(populated_db, db_cursor, db_conn):
+async def test_save_check(populated_db, db_cursor, db_conn, factories):
+    await factories["Check"].c(domain="test.domain", private=False)
     await serializers.create_domain(db_conn, {"name": "test.domain"})
     data = {
         "domain": "test.domain",
@@ -203,7 +204,7 @@ async def test_save_check(populated_db, db_cursor, db_conn):
         "software_build": "git.b575999e",
     }
 
-    sql = "SELECT * from checks"
+    sql = "SELECT * from checks ORDER BY time DESC"
     result = await crawler.save_check(db_conn, data)
 
     await db_cursor.execute(sql)
@@ -216,3 +217,30 @@ async def test_save_check(populated_db, db_cursor, db_conn):
     domain = await db_cursor.fetchone()
 
     assert domain["node_name"] == "Test Domain"
+
+
+async def test_private_domain_delete_past_checks(
+    populated_db, db_cursor, db_conn, factories
+):
+    await factories["Check"].c(domain="test.domain", private=False)
+    data = {
+        "domain": "test.domain",
+        "node_name": "Test Domain",
+        "up": True,
+        "open_registrations": False,
+        "federation_enabled": True,
+        "anonymous_can_listen": True,
+        "private": True,
+        "software_name": "funkwhale",
+        "software_version_major": 0,
+        "software_version_minor": 18,
+        "software_version_patch": 0,
+        "software_prerelease": "dev",
+        "software_build": "git.b575999e",
+    }
+
+    sql = "SELECT * from checks"
+    assert await crawler.save_check(db_conn, data) is None
+    await db_cursor.execute(sql)
+    result = await db_cursor.fetchall()
+    assert result == []