diff --git a/.changeset/hydration-head-renderer-type.md b/.changeset/hydration-head-renderer-type.md
new file mode 100644
index 0000000000..bc566c158d
--- /dev/null
+++ b/.changeset/hydration-head-renderer-type.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: don't corrupt renderer type during SSR's legacy `bind:` retry loop
diff --git a/packages/svelte/src/internal/server/renderer.js b/packages/svelte/src/internal/server/renderer.js
index 35aac64721..ba6a361a90 100644
--- a/packages/svelte/src/internal/server/renderer.js
+++ b/packages/svelte/src/internal/server/renderer.js
@@ -451,6 +451,7 @@ export class Renderer {
*/
copy() {
const copy = new Renderer(this.global, this.#parent);
+ copy.type = this.type;
copy.#out = this.#out.map((item) => (item instanceof Renderer ? item.copy() : item));
copy.promise = this.promise;
return copy;
diff --git a/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/Foo.svelte b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/Foo.svelte
new file mode 100644
index 0000000000..b991cdf968
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/Foo.svelte
@@ -0,0 +1,3 @@
+
diff --git a/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/Wrapper.svelte b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/Wrapper.svelte
new file mode 100644
index 0000000000..d48c90fe59
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/Wrapper.svelte
@@ -0,0 +1,6 @@
+
+
+
diff --git a/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/_expected.html b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/_expected.html
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/_expected_head.html b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/_expected_head.html
new file mode 100644
index 0000000000..904fa1d9eb
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/_expected_head.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/main.svelte b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/main.svelte
new file mode 100644
index 0000000000..b68ccd07fe
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/head-with-multiple-binding-components/main.svelte
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+