diff --git a/docs/api-reference/redux-store-api.md b/docs/api-reference/redux-store-api.md
index a09dd09b69..0a71f3a67b 100644
--- a/docs/api-reference/redux-store-api.md
+++ b/docs/api-reference/redux-store-api.md
@@ -4,6 +4,10 @@
>
> This Redux API is no longer recommended as it prevents dynamic code splitting for performance. Instead, you should use the standard `react_component` view helper passing in a "Render-Function."
+> [!IMPORTANT]
+>
+> **Script Loading Requirement:** If you use Redux shared stores with inline component registration (registering components in view templates with ``), you **must use `defer: true`** in your `javascript_pack_tag` instead of `async: true`. With async loading, the bundle may execute before inline scripts, causing component registration failures. See the [Streaming Server Rendering documentation](../building-features/streaming-server-rendering.md#important-redux-shared-store-caveat) for details and alternatives.
+
You don't need to use the `redux_store` api to use Redux. This API was set up to support multiple calls to `react_component` on one page that all talk to the same Redux store.
If you are only rendering one React component on a page, as is typical to do a "Single Page App" in React, then you should _probably_ pass the props to your React component in a "Render-Function."
diff --git a/docs/building-features/streaming-server-rendering.md b/docs/building-features/streaming-server-rendering.md
index 7fff39eb6d..c8858c955b 100644
--- a/docs/building-features/streaming-server-rendering.md
+++ b/docs/building-features/streaming-server-rendering.md
@@ -211,3 +211,129 @@ Streaming SSR is particularly valuable in specific scenarios. Here's when to con
- Prioritize critical data that should be included in the initial HTML
- Use streaming for supplementary data that can load progressively
- Consider implementing a waterfall strategy for dependent data
+
+### Script Loading Strategy for Streaming
+
+**IMPORTANT**: When using streaming server rendering, you should NOT use `defer: true` for your JavaScript pack tags. Here's why:
+
+#### Understanding the Problem with Defer
+
+Deferred scripts (`defer: true`) only execute after the entire HTML document has finished parsing and streaming. This defeats the key benefit of React 18's Selective Hydration feature, which allows streamed components to hydrate as soon as they arrive—even while other parts of the page are still streaming.
+
+**Example Problem:**
+
+```erb
+
+<%= javascript_pack_tag('client-bundle', defer: true) %>
+```
+
+With `defer: true`, your streamed components will:
+
+1. Arrive progressively in the HTML stream
+2. Be visible to users immediately
+3. But remain non-interactive until the ENTIRE page finishes streaming
+4. Only then will they hydrate
+
+#### Recommended Approaches
+
+**For Pages WITH Streaming Components:**
+
+```erb
+
+<%= javascript_pack_tag('client-bundle', 'data-turbo-track': 'reload', defer: false) %>
+
+
+<%= javascript_pack_tag('client-bundle', 'data-turbo-track': 'reload', async: true) %>
+```
+
+**For Pages WITHOUT Streaming Components:**
+
+With Shakapacker ≥ 8.2.0, `async: true` is recommended even for non-streaming pages to improve Time to Interactive (TTI):
+
+```erb
+
+<%= javascript_pack_tag('client-bundle', 'data-turbo-track': 'reload', async: true) %>
+```
+
+Note: `async: true` with the `immediate_hydration` feature allows components to hydrate during page load, improving TTI even without streaming. See the Immediate Hydration section below for configuration details.
+
+**⚠️ Important: Redux Shared Store Caveat**
+
+If you are using Redux shared stores with the `redux_store` helper and **inline script registration** (registering components in view templates with ``), you must use `defer: true` instead of `async: true`:
+
+```erb
+
+<%= javascript_pack_tag('client-bundle', 'data-turbo-track': 'reload', defer: true) %>
+```
+
+**Why?** With `async: true`, the bundle executes immediately upon download, potentially **before** inline `