Change one variable per arm so the winner is attributable. Otherwise it's a guess.
If you must test combinations, use a multivariate (MVT) design with proper sample size.
You change the button colour to green and rewrite its label in the same variant, and conversion rises 9%. Which change did it? You can't say, because you moved two things at once, so the “winner” teaches you nothing you can reuse. Change one variable per arm and the result is attributable: the lift belongs to the thing you changed. If you genuinely need to test combinations, that is a multivariate test with a proper design and sample size, not a two-change guess.
Strict one-variable isolation is for learning why something worked. When you simply need the best of a few fully-formed designs and don't need to attribute the cause, a straight A/B between complete variants is fine. And a coherent redesign is often best shipped and measured as a whole, since splitting it into isolated variables would test a product nobody would actually build.
A team ships 3 variants of a hero with different copy, color, and image.