In the solved state, each row and column is a permutation with a certain parity. Shifting the blank is one inversion. Notice that if the blank starts in the lower right, goes along some path of shifts, and returns to lower right, there will always be an even number of shifts, thus an even number of inversions. So you cannot get the permutations of the rows and columns to a different parity than what you started (multiplying all the parities together). If you change the parity of some row or column, then you must have also changed the parity of another row or column, keeping total parity the same when multiplied.
I got really into this puzzle a while ago and programmed an algorithm to solve a puzzle of any size grid. It just solves the left column and top row to the goal state, then calls the same algorithm recursively on the subgrid of unsolved tiles. It was bretty fun