diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8df77798cf0f7da15187e357400acb469eb57d64..59bfe760ea4770756a45ab1a139e2bb9185001ca 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -72,6 +72,7 @@ upload:
   stage: deploy
   image: alpine
   before_script:
+    - apk add rsync
     - 'which ssh-agent || ( apk add --update openssh )'
     - eval $(ssh-agent -s)
     - echo "$B64SSHPRIVKEY" | base64 -d | tr -d '\r' | ssh-add - > /dev/null
@@ -83,6 +84,5 @@ upload:
     - if: $CI_COMMIT_BRANCH == "develop"
     - if: $CI_COMMIT_BRANCH == "master"
   script:
-    - ssh -p $SSHPORT $SSHCONNECT "rm -rf ~/web/latest/*"
-    - scp -P $SSHPORT -r site/* $SSHCONNECT:~/web/latest
-    - scp -P $SSHPORT -r public/* $SSHCONNECT:~/web/latest
+    - rsync -ravu --info=progress2 -e "ssh -p $SSHPORT" site/* $SSHCONNECT:~/web/latest
+    - rsync -ravu --info=progress2 -e "ssh -p $SSHPORT" public/* $SSHCONNECT:~/web/latest