diff --git a/core/.gitignore b/core/.gitignore
index 6b71af77a2666cb9e93b9636254f4a4661472066..9bbe3c94bb87243d601811b2f0d890c443804950 100644
--- a/core/.gitignore
+++ b/core/.gitignore
@@ -19,3 +19,6 @@ nightwatch.settings.json
 
 # Ignore dotenv
 .env
+
+# Ignore CSpell cache
+.cspellcache
diff --git a/core/package.json b/core/package.json
index 81a53070fa13539c0d6fcae5e755ffd4235503d3..ba3b05fe216b26b51c7537f4cd1bb27b20dfb172 100644
--- a/core/package.json
+++ b/core/package.json
@@ -20,9 +20,9 @@
     "lint:yaml": "node ./node_modules/eslint/bin/eslint.js --ext .yml .",
     "test:nightwatch": "node -r dotenv-safe/config ./node_modules/.bin/nightwatch --config ./tests/Drupal/Nightwatch/nightwatch.conf.js",
     "prettier": "prettier --write \"./**/*.js\"",
-    "spellcheck": "cspell -c .cspell.json",
+    "spellcheck": "cspell -c .cspell.json --cache",
     "spellcheck:make-dict": "rm -f misc/cspell/dictionary.txt && touch misc/cspell/dictionary.txt && yarn -s spellcheck:core --unique --words-only | perl -Mopen=locale -pe '$_=lc$_' | LC_ALL=en_US.UTF-8 tr -d \\\\\\\\ | LC_ALL=C sort -u -o misc/cspell/dictionary.txt",
-    "spellcheck:core": "cspell -c .cspell.json --root .. \"core/**/*\" \"composer/**/*\" \"composer.json\" \".gitlab-ci/*\" \".gitlab-ci.yml\"",
+    "spellcheck:core": "cspell -c .cspell.json --root .. --cache --cache-location core/.cspellcache \"core/**/*\" \"composer/**/*\" \"composer.json\" \".gitlab-ci/*\" \".gitlab-ci.yml\"",
     "spellcheck:make-drupal-dict": "rm -f misc/cspell/drupal-dictionary.txt && touch misc/cspell/drupal-dictionary.txt && yarn -s spellcheck:core --unique --words-only | perl -Mopen=locale -pe '$_=lc$_' | LC_ALL=en_US.UTF-8 tr -d \\\\\\\\ | LC_ALL=C sort -u -o misc/cspell/drupal-dictionary.txt",
     "vendor-update": "node ./scripts/js/vendor-update.js",
     "watch:ckeditor5": "webpack --config ./modules/ckeditor5/webpack.config.js --watch",