Entity resolution comes first. If an engine cannot confidently tell who you are — what you make, who you serve, how you differ, which of the similarly-named things on the web you are — it defaults to a brand it can resolve. Explicit structured data, consistent naming across the web, and a clean external-identifier graph are what make you resolvable.
Corroboration is second, and it is the one most brands underestimate. An engine weighs what OTHER sources say about you far more heavily than what you say about yourself. If your competitor appears in reviews, comparison articles, community threads and industry lists and you do not, the engine has more independent evidence for them than for you — regardless of which product is better.
Extractability is third. A claim buried in a hero animation, an image, or a JavaScript-rendered widget may be invisible: most AI crawlers do not execute JavaScript. If your differentiators live only in visuals or in prose no machine can parse into a statement, they cannot be quoted back to a buyer.
Fourth is question coverage. Engines answer specific questions. If your content never addresses "best <category> for <constraint>" or "alternatives to <competitor>", there is nothing of yours for the engine to pull into that answer — while your competitor's comparison page is sitting right there, ready to be quoted.
The honest caveat: sometimes the competitor genuinely is the better answer for that question, and no amount of optimization should change that. The value of measuring per question is that it shows you WHICH questions you are losing — the ones where you truly are the better answer are the ones worth fixing first.