diff --git a/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php b/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php
index f01146159fa81f65458c800d83da046724a2e398..1723e09708b3cf20946dba73c2c85f688568572f 100644
--- a/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php
+++ b/core/modules/content_translation/src/Plugin/migrate/source/d7/EntityTranslationSettings.php
@@ -193,7 +193,7 @@ public function getIds() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     // Since the number of variables we fetch with query() does not match the
     // actual number of rows generated by initializeIterator(), we need to
     // override count() to return the correct count.
diff --git a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
index d23c1b52c4fc559345f94706decf4a09f79d60e3..572f6142b1113bbab943ee4baf2ed164823dee6a 100644
--- a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
+++ b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
@@ -252,7 +252,7 @@ public function getIds() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return $this->initializeIterator()->count();
   }
 
diff --git a/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php b/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php
index f4182a927e19b7ec6a4027b53c46a8d0b6da9795..08b2b3b0a0c4618984233cd5f180193e315651a9 100644
--- a/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php
+++ b/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php
@@ -78,7 +78,7 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return count($this->initializeIterator());
   }
 
diff --git a/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php b/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php
index 51a456a017a765a528b3438ca4014534f50c5c1e..93509af71ce6cb86d55d1dc10166c5caabcda100 100644
--- a/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php
+++ b/core/modules/migrate/src/Plugin/migrate/source/DummyQueryTrait.php
@@ -27,7 +27,7 @@ public function query() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return 1;
   }
 
diff --git a/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php b/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php
index 2ae9cbd2d429ab846c69891adc38ebf5ca0e7287..feca681f59f444fa191bafcbb645472399bc5df8 100644
--- a/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php
+++ b/core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php
@@ -114,6 +114,8 @@ public function getIds() {
    * {@inheritdoc}
    */
   public function count($refresh = FALSE) {
+    // We do not want this source plugin to have a cacheable count.
+    // @see \Drupal\migrate_cache_counts_test\Plugin\migrate\source\CacheableEmbeddedDataSource
     return count($this->dataRows);
   }
 
diff --git a/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php b/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php
index 04667cb91d1000802637b5939b85c583b6ae21ce..123eb9c4cbe6bbabe0f967834af9ce2e252bc2b2 100644
--- a/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php
+++ b/core/modules/migrate/src/Plugin/migrate/source/EmptySource.php
@@ -63,7 +63,7 @@ public function getIds() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return 1;
   }
 
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php
index 1b7679ea0dbc00f919799f0fd791137a269c4133..62f4f6f0249a2f3ab05460aae19376d0b1770479 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php
@@ -134,7 +134,7 @@ protected function values() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     if (empty($this->variablesNoRowIfMissing)) {
       return 1;
     }
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php
index eb897ee385802a0d111193ab6546cd08847c6bb3..ad55192bf7b1947a121bcee37fb1b55aa8dcb7af 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/VariableTranslation.php
@@ -88,7 +88,7 @@ protected function values() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return $this->initializeIterator()->count();
   }
 
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php
index eb71189a442a2f3c616981ce28b7cee9aefe29df..fe55c782ec14dce56ba1ff6613cfde850669250d 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/VariableTranslation.php
@@ -93,7 +93,7 @@ protected function values() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return $this->initializeIterator()->count();
   }
 
diff --git a/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php b/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php
index 88d84d95249fd1c2fc9068788730aaaff48589ea..a85d49b3008c207a6151a0e28908dfbdb8e9939d 100644
--- a/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php
+++ b/core/modules/node/src/Plugin/migrate/source/d6/ViewModeBase.php
@@ -12,7 +12,7 @@ abstract class ViewModeBase extends DrupalSqlBase {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return count($this->initializeIterator());
   }
 
diff --git a/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php b/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php
index 079bfaeb7e7170a68045c74d48487a9b5bf57517..ca90d9fb51ab3635cd6584aec833a1c00b1e63ff 100644
--- a/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php
+++ b/core/modules/search/src/Plugin/migrate/source/d7/SearchPage.php
@@ -73,7 +73,7 @@ public function getIds() {
   /**
    * {@inheritdoc}
    */
-  public function count($refresh = FALSE) {
+  protected function doCount() {
     return $this->initializeIterator()->count();
   }