diff --git a/templates/gitlab-ci-maven.yml b/templates/gitlab-ci-maven.yml
index 4f7a7acf649132f2863bf724a1939d90d897204a..9e5b37401c910dd54b92c5c14410371e684e9289 100644
--- a/templates/gitlab-ci-maven.yml
+++ b/templates/gitlab-ci-maven.yml
@@ -495,9 +495,14 @@ mvn-sonar:
   stage: test
   extends: .mvn-base
   variables:
-    # Tells git to fetch all the branches of the project, required by the analysis task
-    # see: https://docs.sonarqube.org/8.5/analysis/gitlab-cicd/#header-2
-    GIT_DEPTH: 0
+    # see: https://docs.sonarqube.org/latest/analysis/gitlab-integration/#header-4
+    SONAR_USER_HOME: "${CI_PROJECT_DIR}/${MAVEN_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
+    GIT_DEPTH: 0 # Tells git to fetch all the branches of the project, required by the analysis task
+  cache:
+    key: "$CI_COMMIT_REF_SLUG-maven-sonar"
+    paths:
+      - "${MAVEN_PROJECT_DIR}/${MAVEN_CFG_DIR}/repository"
+      - "${MAVEN_PROJECT_DIR}/.sonar/cache"
   script:
     - sonar_autodetect_mr
     - |