diff --git a/frontend/src/metabase/admin/settings/components/SettingHeader.jsx b/frontend/src/metabase/admin/settings/components/SettingHeader.jsx
index 9f4d863d3dea49e3515833eb43619fa204746f76..ff892ae505c1a3e05848546e651f39d111e30197 100644
--- a/frontend/src/metabase/admin/settings/components/SettingHeader.jsx
+++ b/frontend/src/metabase/admin/settings/components/SettingHeader.jsx
@@ -7,6 +7,11 @@ const SettingHeader = ({ setting }) => (
       {setting.display_name}
     </div>
     <div className="text-medium text-measure my1">
+      {setting.warningMessage && (
+        <React.Fragment>
+          <strong>{setting.warningMessage}</strong>{" "}
+        </React.Fragment>
+      )}
       {setting.description}
       {setting.note && <div>{setting.note}</div>}
     </div>
diff --git a/frontend/src/metabase/admin/settings/selectors.js b/frontend/src/metabase/admin/settings/selectors.js
index b48076733e4d69b87044cf49d3bb925cf37141cb..cfe07b8cf20ea0172b7ce4cd73f940e6e4a7b353 100644
--- a/frontend/src/metabase/admin/settings/selectors.js
+++ b/frontend/src/metabase/admin/settings/selectors.js
@@ -65,6 +65,7 @@ const SECTIONS = updateSectionsWithPlugins({
         display_name: t`Site URL`,
         type: "string",
         widget: SiteUrlWidget,
+        warningMessage: t`Only change this if you know what you're doing!`,
       },
       {
         key: "redirect-all-requests-to-https",
diff --git a/src/metabase/public_settings.clj b/src/metabase/public_settings.clj
index 651722e308a5e3ffa4d27362c685e078f0a9b1a7..04fa6096a5e7d2b5269886eafade15874ad80939 100644
--- a/src/metabase/public_settings.clj
+++ b/src/metabase/public_settings.clj
@@ -86,7 +86,9 @@
 ;; This value is *guaranteed* to never have a trailing slash :D
 ;; It will also prepend `http://` to the URL if there's no protocol when it comes in
 (defsetting site-url
-  (deferred-tru "The base URL of this Metabase instance, e.g. \"http://metabase.my-company.com\".")
+  (str (deferred-tru "This URL is used for things like creating links in emails, auth redirects,")
+       " "
+       (deferred-tru "and in some embedding scenarios, so changing it could break functionality or get you locked out of this instance."))
   :visibility :public
   :getter (fn []
             (try