diff --git a/src/freedombone-app-pleroma b/src/freedombone-app-pleroma
index 922ee423126121c00c995cd0298a18e888bb2f1f..762c511f663ec2452d463fcc2540ba1f143b89a1 100755
--- a/src/freedombone-app-pleroma
+++ b/src/freedombone-app-pleroma
@@ -1299,6 +1299,8 @@ function pleroma_create_signing_salt {
 }
 
 function upgrade_pleroma {
+    update_user_agent
+
     pleroma_installing=
 
     read_config_param PLEROMA_DOMAIN_NAME
@@ -1816,6 +1818,10 @@ function install_pleroma {
           echo '  gzip_http_version 1.1;';
           echo '  gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/activity+json application/atom+xml;';
           echo '';
+          echo "  if (\$http_user_agent ~* (.*archivebot.*|.*archiveteam.*)) {";
+          echo '      return 403;';
+          echo '  }';
+          echo '';
           echo '  location / {';
           echo '    client_max_body_size 15m;';
           echo '    client_body_buffer_size 15m;';
@@ -1872,6 +1878,10 @@ function install_pleroma {
       echo '  gzip_http_version 1.1;';
       echo '  gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/activity+json application/atom+xml;';
       echo '';
+      echo "  if (\$http_user_agent ~* (.*archivebot.*|.*archiveteam.*)) {";
+      echo '      return 403;';
+      echo '  }';
+      echo '';
       echo '  location / {';
       echo '    client_max_body_size 15m;';
       echo '    client_body_buffer_size 15m;';
diff --git a/src/freedombone-utils-web b/src/freedombone-utils-web
index 07425af33a06887a1503a80d6f68e8371c4abbc0..17bf71c84be11f539f6e5d9fa5d8aff0fe8c8d06 100755
--- a/src/freedombone-utils-web
+++ b/src/freedombone-utils-web
@@ -1376,4 +1376,23 @@ function jquery_download {
     fi
 }
 
+function update_user_agent {
+    domain="$1"
+    if [ ! -f "/etc/nginx/sites-available/$domain" ]; then
+        return
+    fi
+
+    if ! grep -q 'http_user_agent' "/etc/nginx/sites-available/$domain"; then
+
+        sed -i '/server_name/a }' "/etc/nginx/sites-available/$domain"
+        sed -i '/server_name/a return 403;' "/etc/nginx/sites-available/$domain"
+        sed -i "/server_name/a if (\$http_user_agent ~\* (\.\*archivebot\.\*|\.\*archiveteam\.\*)) {" "/etc/nginx/sites-available/$domain"
+        systemctl restart nginx
+        return
+    fi
+
+    sed -i "s|if (\$http_user_agent.*|if (\$http_user_agent ~\* (\.\*archivebot\.\*|\.\*archiveteam\.\*)) {|g" "/etc/nginx/sites-available/$domain"
+    systemctl restart nginx
+}
+
 # NOTE: deliberately no exit 0