diff --git a/modules/yamlform_ui/src/Tests/YamlFormUiElementTest.php b/modules/yamlform_ui/src/Tests/YamlFormUiElementTest.php
index f313fc4..10fe53d 100644
--- a/modules/yamlform_ui/src/Tests/YamlFormUiElementTest.php
+++ b/modules/yamlform_ui/src/Tests/YamlFormUiElementTest.php
@@ -48,6 +48,7 @@ class YamlFormUiElementTest extends YamlFormTestBase {
     $this->drupalPostForm('admin/structure/yamlform/manage/contact', $edit, t('Save elements'));
 
     \Drupal::entityTypeManager()->getStorage('yamlform_submission')->resetCache();
+    \Drupal::entityTypeManager()->getStorage('yamlform')->resetCache();
     $yamlform_contact = YamlForm::load('contact');
     $this->assertEqual(['message', 'subject', 'email', 'name'], array_keys($yamlform_contact->getElementsDecodedAndFlattened()));
 
diff --git a/src/Entity/YamlForm.php b/src/Entity/YamlForm.php
index c54a7aa..c6ddd21 100644
--- a/src/Entity/YamlForm.php
+++ b/src/Entity/YamlForm.php
@@ -24,6 +24,7 @@ use Drupal\yamlform\YamlFormSubmissionInterface;
  *   id = "yamlform",
  *   label = @Translation("Form"),
  *   handlers = {
+ *     "storage" = "\Drupal\yamlform\YamlFormEntityStorage",
  *     "view_builder" = "Drupal\yamlform\YamlFormEntityViewBuilder",
  *     "list_builder" = "Drupal\yamlform\YamlFormEntityListBuilder",
  *     "access" = "Drupal\yamlform\YamlFormEntityAccessControlHandler",
diff --git a/src/YamlFormEntityStorage.php b/src/YamlFormEntityStorage.php
new file mode 100644
index 0000000..6a30f67
--- /dev/null
+++ b/src/YamlFormEntityStorage.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Drupal\yamlform;
+
+use Drupal\Core\Config\Entity\ConfigEntityStorage;
+
+/**
+ * Storage controller class for "yamlform" configuration entities.
+ */
+class YamlFormEntityStorage extends ConfigEntityStorage {
+
+  /**
+   * {@inheritdoc}
+   *
+   * Config entities are not cached and there is no easy way to enable static
+   * caching. See: Issue #1885830: Enable static caching for config entities.
+   *
+   * Overriding just EntityStorageBase::load is much simpler
+   * than completely re-writting EntityStorageBase::loadMultiple. It is also
+   * worth noting that EntityStorageBase::resetCache() does purge all cached
+   * yamlform config entities.
+   *
+   * Forms need to be cached when they are being loading via
+   * a form submission, which requires a form's elements and meta data to be
+   * initialized via YamlForm::initElements().
+   *
+   * @see https://www.drupal.org/node/1885830
+   * @see \Drupal\Core\Entity\EntityStorageBase::resetCache()
+   * @see \Drupal\yamlform\Entity\YamlForm::initElements()
+   */
+  public function load($id) {
+    if (isset($this->entities[$id])) {
+      return $this->entities[$id];
+    }
+
+    $this->entities[$id] = parent::load($id);
+    return $this->entities[$id];
+  }
+
+}
