diff --git a/shared_scripts.yml b/shared_scripts.yml
index 5350b1b5376db864ab13dab61e5e4e607b836a1e..5a66280b24fc8ae7896433f1cb00265de97f4d43 100644
--- a/shared_scripts.yml
+++ b/shared_scripts.yml
@@ -111,6 +111,7 @@ variables:
     GIT_CHECKOUT: "true"
     CLIENT_CONFIG: "Shipping"
     EXTRA_ARGS: ""
+    CLEAN_CACHE: "true"
   tags:
     - linux
   script:
@@ -120,8 +121,12 @@ variables:
     -   echo -e "\e[31mERROR To specify the Unreal Version, change the UNREAL_VERSION variable in your .gitlab-ci.yml!"
     -   exit 1
     - fi
-    # Clean folder before building
-    - git clean -qxfdf && git submodule foreach --quiet --recursive git clean -qxfdf
+    # Clean folder before building. Exclude cache for now
+    - if [[ $CLEAN_CACHE = true ]] ; then
+      - git clean -qxfdf && git submodule foreach --quiet --recursive git clean -qxfdf
+    - else
+      - git clean -qxfdf -e Zen -e PSOCache -e LocalDDC -e Intermediate -e Saved -e Binaries -e Build && git submodule foreach --quiet --recursive git clean -qxfdf
+    - fi
     # Preparation and building stage
     - PATH=$PREPEND_PATH:$PATH:$APPEND_PATH
     - export PROJECT_NAME=`basename $(find *.uproject) .uproject`