diff --git a/chronik/chronik-indexer/src/indexer.rs b/chronik/chronik-indexer/src/indexer.rs
--- a/chronik/chronik-indexer/src/indexer.rs
+++ b/chronik/chronik-indexer/src/indexer.rs
@@ -48,7 +48,8 @@
     /// Cannot rewind blocks that bitcoind doesn't have
     #[error(
         "Cannot rewind Chronik, it contains block {0} that the node doesn't \
-         have. You may need to -reindex, or delete indexes/chronik and restart"
+         have. You may need to use -reindex/-chronikreindex, or delete \
+         indexes/chronik and restart"
     )]
     CannotRewindChronik(BlockHash),
 
diff --git a/src/init.cpp b/src/init.cpp
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -642,6 +642,10 @@
             regtestBaseParams->ChronikPort()),
         ArgsManager::ALLOW_STRING | ArgsManager::NETWORK_ONLY,
         OptionsCategory::CHRONIK);
+    argsman.AddArg("-chronikreindex",
+                   "Reindex the Chronik indexer from genesis, but leave the "
+                   "other indexes untouched",
+                   ArgsManager::ALLOW_BOOL, OptionsCategory::CHRONIK);
 #endif
     argsman.AddArg(
         "-blockfilterindex=<type>",
@@ -2651,7 +2655,9 @@
 
 #if ENABLE_CHRONIK
     if (args.GetBoolArg("-chronik", chronik::DEFAULT_ENABLED)) {
-        if (!chronik::Start(config, node, fReindex)) {
+        const bool fReindexChronik =
+            fReindex || args.GetBoolArg("-chronikreindex", false);
+        if (!chronik::Start(config, node, fReindexChronik)) {
             return false;
         }
     }
diff --git a/test/functional/chronik_resync.py b/test/functional/chronik_resync.py
--- a/test/functional/chronik_resync.py
+++ b/test/functional/chronik_resync.py
@@ -98,8 +98,8 @@
         # It needs the node's block data to undo the stale blocks.
         init_error_msg = (
             f"Error: Cannot rewind Chronik, it contains block {block_hashes[149]} " +
-            "that the node doesn't have. You may need to -reindex, or delete " +
-            "indexes/chronik and restart"
+            "that the node doesn't have. You may need to use -reindex/" +
+            "-chronikreindex, or delete indexes/chronik and restart"
         )
         node.assert_start_raises_init_error(["-chronik"], init_error_msg)
 
@@ -124,6 +124,13 @@
         self.restart_node(0, ['-chronik', '-reindex'])
         assert_equal(query_block(100).status, 200)
 
+        # Test -chronikreindex
+        with node.assert_debug_log(["Wiping Chronik at "]):
+            self.restart_node(0, ['-chronik', '-chronikreindex'])
+        assert_equal(query_block(0).status, 200)
+        assert_equal(query_block(100).status, 200)
+        assert_equal(query_block(101).status, 404)
+
 
 if __name__ == '__main__':
     ChronikResyncTest().main()