Most of the thread's landing on the same thing: prioritizing. Worth asking why it's so hard here when it isn't in other channels.
Run ads and you know inside a week. You can hold a control group. With SEO, you change five things over eight weeks, something moves, and you can't tell which one did it. So you credit whatever you already believed in, and next site you prioritize the same thing again.
What's helped me is running it like an experiment even though it's slower. A dated log of every change, one type of change at a time, and a chunk of comparable pages left completely alone. Two or three rounds of that and you know what moves your sites, which isn't the same as knowing what moves sites in general.
Useless on a 5 page site, you need enough pages to split. But for anything of decent size, it turns the guessing into something you can actually point at.