This approach has obvious shortcomings, as it requires manually identifying the constant coefficient. My idea is how to automatically identify the leftmost constant coefficient and divide both sides of the equation by it simultaneously.
You can use FreeQ[#, x1 | x2 | y1 | y2] & instead of VectorQ[#, NumericQ] & if there are literal (nonnumeric) constants as in another one of your questions.