diff --git a/.github/file-paths.yaml b/.github/file-paths.yaml
index 770d3cb529dfb73db3f8d3b14c0e4b4f240c1133..eb57450dc725e85b939dff01fbe36e5b1c50bf04 100644
--- a/.github/file-paths.yaml
+++ b/.github/file-paths.yaml
@@ -43,6 +43,11 @@ frontend_all: &frontend_all
   - *frontend_sources
   - *frontend_specs
 
+frontend_loki_ci: &frontend_loki_ci
+  - ".github/workflows/loki.yml"
+  - ".loki/**"
+  - ".storybook/**"
+
 backend_ci: &backend_ci
   - ".github/actions/prepare-frontend/**"
   - ".github/actions/prepare-backend/**"
diff --git a/.github/workflows/loki.yml b/.github/workflows/loki.yml
index 7fa2aa2d89187444b8bcce8373506775ed63f7a1..b7aa7e6bc6c720e0525065a23ac343d585216b53 100644
--- a/.github/workflows/loki.yml
+++ b/.github/workflows/loki.yml
@@ -3,7 +3,26 @@ name: Loki Visual Regression Testing
 on: [pull_request]
 
 jobs:
+  files-changed:
+    name: Check which files changed
+    runs-on: ubuntu-22.04
+    timeout-minutes: 3
+    outputs:
+      frontend_ci: ${{ steps.changes.outputs.frontend_ci }}
+      frontend_sources: ${{ steps.changes.outputs.frontend_sources }}
+      frontend_loki_ci: ${{ steps.changes.outputs.frontend_loki_ci }}
+    steps:
+      - uses: actions/checkout@v4
+      - name: Test which files changed
+        uses: dorny/paths-filter@v3.0.0
+        id: changes
+        with:
+          token: ${{ github.token }}
+          filters: .github/file-paths.yaml
+
   visual-test:
+    needs: files-changed
+    if: needs.files-changed.outputs.frontend_ci == 'true' || needs.files-changed.outputs.frontend_sources == 'true' || needs.files-changed.outputs.frontend_loki_ci == 'true'
     runs-on: ubuntu-latest
     services:
       docker: