diff --git a/caddy/tasks/main.yml b/caddy/tasks/main.yml
index b4735b4dce418100707d530ba0144c2bcd83fea4..a6afe800b10784271f7e40bf0c14c264b2d4c59c 100644
--- a/caddy/tasks/main.yml
+++ b/caddy/tasks/main.yml
@@ -36,21 +36,13 @@
     - caddy
 
 - name: Configure Caddy site drop-ins
-  ansible.builtin.template:
-    src: site.j2
-    dest: /etc/caddy/sites-available/{{ item.key | urlencode }}
-    validate: caddy validate --adapter caddyfile --config %s
-    owner: root
-    group: root
-    mode: "0644"
+  ansible.builtin.include_tasks: site.yml
   loop: "{{ caddy_local_sites | dict2items }}"
   loop_control:
     label: "{{ item.key }}"
   vars:
     site_name: "{{ item.key }}"
     site_config: "{{ item.value }}"
-  notify:
-    - Reload Caddy
   tags:
     - caddy
     - config
diff --git a/caddy/tasks/site.yml b/caddy/tasks/site.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a1779721bd84d3a1593c0f35d93cb1f11ab35102
--- /dev/null
+++ b/caddy/tasks/site.yml
@@ -0,0 +1,15 @@
+---
+
+- name: Configure Caddy site drop-in {{ site_name }}
+  ansible.builtin.template:
+    src: site.j2
+    dest: /etc/caddy/sites-available/{{ site_name | urlencode }}
+    validate: caddy validate --adapter caddyfile --config %s
+    owner: root
+    group: root
+    mode: "0644"
+  notify:
+    - Reload Caddy
+  tags:
+    - caddy
+    - config