A locally recoverable code of locality r over \(\mathbb {F}_{q}\) is a code where every coordinate of a codeword can be recovered using the values of at most r other coordinates of that codeword. Locally recoverable codes are efficient at restoring corrupted messages and data which make them highly applicable to distributed storage systems. Quasi-cyclic codes of length \(n=m\ell \) and index \(\ell \) are linear codes that are invariant under cyclic shifts by \(\ell \) places. In this paper, we decompose quasi-cyclic locally recoverable codes into a sum of constituent codes where each constituent code is a linear code over a field extension of \(\mathbb {F}_q\) . Using these constituent codes with set parameters, we propose conditions which ensure the existence of almost optimal and optimal quasi-cyclic locally recoverable codes with increased dimension and code length.