diff --git a/tasks/nginx.yml b/tasks/nginx.yml
index d1182dfd25391b706117fe8197ec4a71c9ba2541..86fcb46690457125390d7369e073a5bcfc773501 100644
--- a/tasks/nginx.yml
+++ b/tasks/nginx.yml
@@ -15,30 +15,35 @@
 
 # from https://gist.github.com/mattiaslundberg/ba214a35060d3c8603e9b1ec8627d349
 
+- name: Check if certbot is already installed
+  stat:
+    path: "/usr/bin/certbot"
+  register: "certbot_installed"
+
 - name: Install snapd
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and not certbot_installed.stat.exists
   become: true
   package:
     name: snapd
     state: present
 
 - name: Prepare snapd for certbot installation
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and not certbot_installed.stat.exists
   become: true
   command: snap install core
 
 - name: Refresh core snap before installing certbot
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and not certbot_installed.stat.exists
   become: true
   command: snap refresh core
 
 - name: Install certbot snap
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and not certbot_installed.stat.exists
   become: true
   command: snap install --classic certbot
 
 - name: Link certbot snap installation
-  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled
+  when: funkwhale_nginx_managed and funkwhale_letsencrypt_enabled and not certbot_installed.stat.exists
   become: true
   file:
     src: /snap/bin/certbot