Idea: Suppose we have an NFA $(Q, \Sigma, \Delta, I, F)$ for $\mathcal{L}$. To build an NFA for $\text{SW}(\mathcal{L})$, our plan is to make a separate copy of the states of the NFA for each candidate start state $q$, where that machine reads in $y$ and checks whether it is possible for some $x$ to (i) get from an initial state $I$ to the candidate start state $q$ on $x$, (ii) get from $q$ to $q'$ on $y$, and (iii) read in the same string $x$ to get from $q'$ to an accepting state in $F$. Formally, the states of the new NFA are $Q \times Q$ (one copy of $Q$ for each possible start state $q \in Q$), and our new NFA is
$$
(Q \times Q, \Sigma, \Delta', \{(q, q) \mid q \in Q\}, F')
$$
where $F'$ is defined formally as
$$
F' = \{(q, q') \in Q \times Q \mid \exists x: q \in \Delta(I, x) \text{ and } \Delta(q', x) \cap F \ne \varnothing.
$$
Note that the set $F'$ is a finite set -- we can just enumerate all the pairs in $Q \times Q$ and determine whether they are in $F'$ or not.
The definition of $\Delta'$ will be straightforward as it is the same for each copy of the original automaton.
Then we have to carefully argue two things (left as an exercise):
If $w \in \text{SW}(\mathcal{L})$, then there is an accepting run of the new automaton on $w$.
If there is an accepting run of the new automaton on $w$, then $w \in \text{SW}(\mathcal{L})$.