diff --git a/packages/astro/src/server/middleware.ts b/packages/astro/src/server/middleware.ts
index 4b2f15eb3be4..86334feba731 100644
--- a/packages/astro/src/server/middleware.ts
+++ b/packages/astro/src/server/middleware.ts
@@ -188,7 +188,7 @@ function addMetaTagToHead(htmlChunk: string, scope: Scope, client: Client, span?
   if (typeof htmlChunk !== 'string') {
     return htmlChunk;
   }
-  const metaTags = getTraceMetaTags(span, scope, client);
+  const metaTags = getTraceMetaTags({ span, scope, client });
 
   if (!metaTags) {
     return htmlChunk;
diff --git a/packages/core/src/utils/meta.ts b/packages/core/src/utils/meta.ts
index 339dfcee2f28..fde740877a99 100644
--- a/packages/core/src/utils/meta.ts
+++ b/packages/core/src/utils/meta.ts
@@ -1,8 +1,11 @@
 import type { Client, Scope, Span } from '@sentry/types';
 import { getTraceData } from './traceData';
 
+// Function overloads
+export function getTraceMetaTags(params?: { span?: Span; scope?: Scope; client?: Client; asArray: true }): string[];
+export function getTraceMetaTags(params?: { span?: Span; scope?: Scope; client?: Client; asArray?: false }): string;
 /**
- * Returns a string of meta tags that represent the current trace data.
+ * Returns a string or string[] of meta tags that represent the current trace data.
  *
  * You can use this to propagate a trace from your server-side rendered Html to the browser.
  * This function returns up to two meta tags, `sentry-trace` and `baggage`, depending on the
@@ -22,8 +25,15 @@ import { getTraceData } from './traceData';
  * ```
  *
  */
-export function getTraceMetaTags(span?: Span, scope?: Scope, client?: Client): string {
-  return Object.entries(getTraceData(span, scope, client))
-    .map(([key, value]) => ``)
-    .join('\n');
+export function getTraceMetaTags({
+  span,
+  scope,
+  client,
+  asArray,
+}: { span?: Span; scope?: Scope; client?: Client; asArray?: boolean } = {}): string | string[] {
+  const traceTags = Object.entries(getTraceData(span, scope, client)).map(
+    ([key, value]) => ``,
+  );
+
+  return asArray ? traceTags : traceTags.join('\n');
 }
diff --git a/packages/core/test/lib/utils/meta.test.ts b/packages/core/test/lib/utils/meta.test.ts
index 3d78247b8951..415373d5cd2d 100644
--- a/packages/core/test/lib/utils/meta.test.ts
+++ b/packages/core/test/lib/utils/meta.test.ts
@@ -12,6 +12,20 @@ describe('getTraceMetaTags', () => {
 `);
   });
 
+  it('returns baggage and sentry-trace values to stringified Html meta tag array', () => {
+    jest.spyOn(TraceDataModule, 'getTraceData').mockReturnValueOnce({
+      'sentry-trace': '12345678901234567890123456789012-1234567890123456-1',
+      baggage: 'sentry-environment=production',
+    });
+
+    const metaTags = getTraceMetaTags({ asArray: true });
+
+    expect(metaTags).toContain('');
+    expect(metaTags).toContain(
+      '',
+    );
+  });
+
   it('renders just sentry-trace values to stringified Html meta tags', () => {
     jest.spyOn(TraceDataModule, 'getTraceData').mockReturnValueOnce({
       'sentry-trace': '12345678901234567890123456789012-1234567890123456-1',