diff --git a/aleksis/core/migrations/0021_public_favicon.py b/aleksis/core/migrations/0021_public_favicon.py
new file mode 100644
index 0000000000000000000000000000000000000000..d8e9cb8cbbad3862fdc55109dffeafc824285441
--- /dev/null
+++ b/aleksis/core/migrations/0021_public_favicon.py
@@ -0,0 +1,27 @@
+# Generated by Django 3.2.4 on 2021-07-24 13:14
+import os
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0020_pdf_file_person_optional'),
+    ]
+
+    def _migrate_favicons(apps, schema_editor):
+        FaviconImg = apps.get_model('favicon', "FaviconImg")
+        for favicon_img in FaviconImg.objects.all():
+            old_name = favicon_img.faviconImage.name
+            new_name = os.path.join("public", old_name)
+            storage = favicon_img.faviconImage.storage
+            if storage.exists(old_name):
+                storage.save(new_name, favicon_img.faviconImage.file)
+                favicon_img.faviconImage.name = new_name
+                favicon_img.save()
+
+    operations = [
+        migrations.RunPython(_migrate_favicons)
+    ]
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index 78887d34f7926de812a31f4eda8e739d85f1c4af..10ce06dbbd1de00294ad6f1ac15eab4d7fe54695 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -635,6 +635,7 @@ PWA_ICONS_CONFIG = {
     "apple_splash": [192],
     "microsoft": [144],
 }
+FAVICON_PATH = os.path.join("public", "favicon")
 
 SERVICE_WORKER_PATH = os.path.join(STATIC_ROOT, "js", "serviceworker.js")