diff --git a/.changeset/itchy-carpets-watch.md b/.changeset/itchy-carpets-watch.md
new file mode 100644
index 0000000000..2bafdae5ea
--- /dev/null
+++ b/.changeset/itchy-carpets-watch.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: visit synthetic value node during ssr
diff --git a/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js
index e653f545af..42d9bcb667 100644
--- a/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js
+++ b/packages/svelte/src/compiler/phases/3-transform/server/visitors/RegularElement.js
@@ -126,7 +126,7 @@ export function RegularElement(node, context) {
if (node.metadata.synthetic_value_node) {
body = optimiser.transform(
- node.metadata.synthetic_value_node.expression,
+ /** @type {Expression} */ (context.visit(node.metadata.synthetic_value_node.expression)),
node.metadata.synthetic_value_node.metadata.expression
);
} else {
diff --git a/packages/svelte/tests/server-side-rendering/samples/select-option-store-implicit-value/_expected.html b/packages/svelte/tests/server-side-rendering/samples/select-option-store-implicit-value/_expected.html
new file mode 100644
index 0000000000..0a0a4351f1
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/select-option-store-implicit-value/_expected.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/samples/select-option-store-implicit-value/main.svelte b/packages/svelte/tests/server-side-rendering/samples/select-option-store-implicit-value/main.svelte
new file mode 100644
index 0000000000..5d133d5bf3
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/select-option-store-implicit-value/main.svelte
@@ -0,0 +1,11 @@
+
+
+
diff --git a/packages/svelte/tests/server-side-rendering/samples/select-option-store-text-content/_expected.html b/packages/svelte/tests/server-side-rendering/samples/select-option-store-text-content/_expected.html
new file mode 100644
index 0000000000..daf2176928
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/select-option-store-text-content/_expected.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/samples/select-option-store-text-content/main.svelte b/packages/svelte/tests/server-side-rendering/samples/select-option-store-text-content/main.svelte
new file mode 100644
index 0000000000..27055caad6
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/select-option-store-text-content/main.svelte
@@ -0,0 +1,13 @@
+
+
+