diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index b9c3f0680fd..b644a289475 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -301,7 +301,7 @@ module ApplicationHelper
) if opts[:twitter_summary_large_image].present?
result = []
- result << tag(:meta, property: "og:site_name", content: SiteSetting.title)
+ result << tag(:meta, property: "og:site_name", content: opts[:site_name] || SiteSetting.title)
result << tag(:meta, property: "og:type", content: "website")
generate_twitter_card_metadata(result, opts)
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 74bd9b17049..2ad6caa7ee3 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -687,6 +687,27 @@ RSpec.describe ApplicationHelper do
expect(metadata).to include output_tags
end
end
+
+ context "with custom site name" do
+ before { SiteSetting.title = "Default Site Title" }
+
+ it "uses the provided site name in og:site_name" do
+ custom_site_name = "Custom Site Name"
+ result = helper.crawlable_meta_data(site_name: custom_site_name)
+
+ expect(result).to include(
+ "",
+ )
+ end
+
+ it "falls back to the default site title if no custom site name is provided" do
+ result = helper.crawlable_meta_data
+
+ expect(result).to include(
+ "",
+ )
+ end
+ end
end
describe "discourse_color_scheme_stylesheets" do