diff --git a/.gitignore b/.gitignore
index 13aff8fc1772312b46adca967b76f9a07e7e79ab..19635840550ca679ad4ef855046e2fd10ac9924b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,7 @@
 /node_modules/
 /public/
 /reports/
-.eslintcache
+/.eslintcache
+/.sonar
+/.scannerwork
+
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d1f4f8a8dd446af90c5ed4193cf6cbee37aa6064..10338e1cf03d30e303936995ea0fd51755adaf65 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -70,12 +70,17 @@ sonarqube:
     entrypoint: [""]
   variables:
     GIT_DEPTH: 0
+    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"
   rules:
     - if: '$CI_COMMIT_REF_NAME == "master"'
       when: always
       allow_failure: true
   script:
     - sonar-scanner -Dsonar.qualitygate.wait=true -Dsonar.projectKey="$CI_PROJECT_PATH_SLUG" -Dsonar.projectName="$CI_PROJECT_TITLE" -Dsonar.links.homepage="$CI_PROJECT_URL" -Dsonar.links.issue="$CI_PROJECT_URL/-/issues" -Dsonar.links.ci="$CI_PROJECT_URL/-/pipelines"
+  cache:
+    key: $CI_JOB_NAME-$CI_COMMIT_REF_NAME
+    paths:
+      - $SONAR_USER_HOME
 
 build:
   stage: build