diff --git a/admin/track-and-disable-inactive-users-1.3.groovy b/admin/track-and-disable-inactive-users-1.3.groovy
index 99471cf..71dcfc4 100644
--- a/admin/track-and-disable-inactive-users-1.3.groovy
+++ b/admin/track-and-disable-inactive-users-1.3.groovy
@@ -122,6 +122,7 @@
 
   final Set<Account.Id> ignoreAccountIds
   final Set<AccountGroup.UUID> ignoreGroupIds
+  final boolean preloadAccounts
 
   private final PluginConfig config
 
@@ -138,6 +139,7 @@
 
     ignoreAccountIds = ignoreAccountIdsFromConfig("ignoreAccountId")
     ignoreGroupIds = ignoreGroupIdsFromConfig("ignoreGroup", groupCache)
+    preloadAccounts = config.getBoolean("preloadAccounts", true)
 
     logger.atInfo().log("Accounts ids ignored for inactivity: %s", ignoreAccountIds)
     logger.atInfo().log("Group ids ignored for inactivity: %s", ignoreGroupIds)
@@ -258,12 +260,18 @@
 
   @Override
   void start() {
-    def currentMinutes = MILLISECONDS.toMinutes(System.currentTimeMillis())
-    accounts.all()
-        .findAll {
-          it.account().isActive() && !serviceUserClassifier.isServiceUser(it.account().id()) && !trackActiveUsersCache.getIfPresent(it.account().id().get())
-        }
-        .each { trackActiveUsersCache.put(it.account().id().get(), currentMinutes) }
+    if (autoDisableConfig.preloadAccounts) {
+      def accountsToPreload = accounts.all()
+                                .collect { it.account() }
+                                .findAll { it.isActive() }
+                                .findAll { !serviceUserClassifier.isServiceUser(it.id()) }
+                                .findAll { !trackActiveUsersCache.getIfPresent(it.id().get()) }
+
+      def currentMinutes = MILLISECONDS.toMinutes(System.currentTimeMillis())
+      def numAccountsToPreload = accountsToPreload.size()
+      logger.atInfo().log("Preloading $numAccountsToPreload accounts into ${TrackActiveUsersCache.NAME} with TS=$currentMinutes")
+      accountsToPreload.each { trackActiveUsersCache.put(it.id().get(), currentMinutes) }
+    }
   }
 
   @Override
diff --git a/admin/track-and-disable-inactive-users.md b/admin/track-and-disable-inactive-users.md
index 025d5c0..b79e635 100644
--- a/admin/track-and-disable-inactive-users.md
+++ b/admin/track-and-disable-inactive-users.md
@@ -43,6 +43,16 @@
    > **NOTE**: The `Service Users` group is always added to the list of groups of
    > accounts to not disable.
 
+```plugin.@PLUGIN@.preloadAccounts```
+:  Allow to preload the active users persistent cache with all the accounts that
+   are currently flagged as active on All-Users when the plugin starts.
+
+   > **NOTE**: When this option is enabled, all users configured in Gerrit will
+   > always be flagged as active when Gerrit or the plugin is started, even though
+   > they were not active for a long time.
+
+   Default: true.
+
 ```cache."@PLUGIN@.users_cache".maxAge```
 :  Maximum allowed inactivity time for user.
    Value should use common time unit suffixes to express their setting:
