diff --git a/src/react/data/QueryData.ts b/src/react/data/QueryData.ts
--- a/src/react/data/QueryData.ts
+++ b/src/react/data/QueryData.ts
@@ -101,11 +101,10 @@ export class QueryData<TData, TVariables> extends OperationData<
   public afterExecute({ lazy = false }: { lazy?: boolean } = {}) {
     this.isMounted = true;
     const options = this.getOptions();
-    const ssrDisabled = options.ssr === false;
     if (
       this.currentObservable &&
-      !ssrDisabled &&
-      !this.ssrInitiated()
+      !this.ssrInitiated() &&
+      !this.client.disableNetworkFetches
     ) {
       this.startQuerySubscription();
     }

diff --git a/src/react/hooks/__tests__/useQuery.test.tsx b/src/react/hooks/__tests__/useQuery.test.tsx
--- a/src/react/hooks/__tests__/useQuery.test.tsx
+++ b/src/react/hooks/__tests__/useQuery.test.tsx
@@ -376,6 +376,31 @@ describe('useQuery Hook', () => {
       unmount();
       expect(client.getObservableQueries().size).toBe(0);
     });
+
+    it('should work with ssr: false', async () => {
+      const query = gql`{ hello }`;
+      const mocks = [
+        {
+          request: { query },
+          result: { data: { hello: "world" } },
+        },
+      ];
+
+      const { result, waitForNextUpdate } = renderHook(
+        () => useQuery(query, { ssr: false }),
+        {
+          wrapper: ({ children }) => (
+            <MockedProvider mocks={mocks}>{children}</MockedProvider>
+          ),
+        },
+      );
+
+      expect(result.current.loading).toBe(true);
+      expect(result.current.data).toBe(undefined);
+      await waitForNextUpdate();
+      expect(result.current.loading).toBe(false);
+      expect(result.current.data).toEqual({ hello: "world" });
+    });
   });
 
   describe('polling', () => {

useQuery with {ssr: false} is not fetched on client-side
**Intended outcome:**
Invoking a `useQuery` with `{ssr: false}` skips the query on SSR but fetches it on client-side.

**Actual outcome:**
Invoking a `useQuery` with `{ssr: false}` does not fetch the query on client-side either. It returns `{data: undefined, loading: true}` indefinitely.

**How to reproduce the issue:**
- clone this fork https://github.com/hevele-moda/react-apollo-error-template
- run `npm install && npm run`
- Notice that the page shows 'Loading...' and the query never gets resolved.

**Versions**
```
System:
  OS: Linux 5.4 Ubuntu 20.04.2 LTS (Focal Fossa)
Binaries:
  Node: 14.17.1 - ~/.nvm/versions/node/v14.17.1/bin/node
  Yarn: 1.22.10 - /src/discovery/node_modules/.bin/yarn
  npm: 7.20.3 - /src/discovery/node_modules/.bin/npm
Browsers:
  Chrome: 92.0.4515.107
  Firefox: 90.0
npmPackages:
  @apollo/client: ^3.4.1 => 3.4.1 
  apollo: ^2.33.4 => 2.33.4 
  apollo-link-rest: ^0.8.0-beta.0 => 0.8.0-beta.0 
  apollo-storybook-react: ^0.2.4 => 0.2.4 
```

@hevele-moda Thanks for the reproduction!

This appears to be a regression introduced in `@apollo/client@3.4.0-rc.13`, possibly from commit 43d64356e656c42bd28523394e07c1c0584aa4b2. Does that sound plausible @brainkim?