diff --git a/.env.template b/.env.template
index b7ae6eaae51aecfb91ba42c03d76fd27b922ed85..b388e6ff703d8dbd25d6b45683f5d98d2397d4b8 100644
--- a/.env.template
+++ b/.env.template
@@ -49,6 +49,11 @@
 ## otherwise it will delete them and they won't be downloaded again.
 # DISABLE_ICON_DOWNLOAD=false
 
+## Icon download timeout
+## Configure the timeout value when downloading the favicons.
+## The default is 10 seconds, but this could be to low on slower network connections
+# ICON_DOWNLOAD_TIMEOUT=10
+
 ## Controls if new users can register
 # SIGNUPS_ALLOWED=true
 
diff --git a/src/api/icons.rs b/src/api/icons.rs
index b7479f568f3a09be7d77bc7100b2e11a9d306fe7..e93eef81e9fd292267d853f066713ee0dc149108 100644
--- a/src/api/icons.rs
+++ b/src/api/icons.rs
@@ -26,7 +26,7 @@ lazy_static! {
     // Reuse the client between requests
     static ref CLIENT: Client = Client::builder()
         .gzip(true)
-        .timeout(Duration::from_secs(5))
+        .timeout(Duration::from_secs(CONFIG.icon_download_timeout()))
         .default_headers(_header_map())
         .build()
         .unwrap();
diff --git a/src/config.rs b/src/config.rs
index d7839a8ecaa47fe32c80cdb8ff5e02ebbb14a94a..fd153678721d6029e20c3ee416497e7bf6c9f1f1 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -241,6 +241,8 @@ make_config! {
         icon_cache_ttl:         u64,    true,   def,    2_592_000;
         /// Negative icon cache expiry |> Number of seconds before trying to download an icon that failed again.
         icon_cache_negttl:      u64,    true,   def,    259_200;
+        /// Icon download timeout |> Number of seconds when to stop attempting to download an icon.
+        icon_download_timeout:  u64,   true,   def,    10;
 
         /// Reload templates (Dev) |> When this is set to true, the templates get reloaded with every request. ONLY use this during development, as it can slow down the server
         reload_templates:       bool,   true,   def,    false;