Two pages on similar topics are fine when they serve distinct intents and each ranks for its own queries, and harmful when they compete for the same query and split signals. The line is distinct-intent-and-no-query-overlap, which means a shared topic is not the test at all; a shared query is. You can run several pages around the same subject without trouble as long as each owns a different set of searches, and you can run into real harm with pages that look only loosely related if they happen to chase the same query.

The fine case is more common than the fear around cannibalization suggests. A topic naturally splits into different needs, a beginner explainer, a how-to, a comparison, a pricing breakdown, and each of those can rank for its own queries and audiences without ever colliding. When you look at the query data and see each page winning distinct searches, the topical overlap is doing no harm; it is just thorough coverage. Pages serving genuinely different intents reinforce your authority on the subject rather than undermining each other.

The harmful case is narrow and specific: two pages targeting the same intent end up appearing for the same query, splitting its clicks and impressions, and trading positions so neither wins cleanly. That division is the damage, because the relevance and link signals that could have made one page strong are spread across two that keep undercutting each other. It is the shared query and split signal, not the resemblance of the topics, that turns coverage into competition. Judging by topic similarity alone would have you either tolerating real cannibalization or pruning pages that were doing fine.

Judge by query overlap, not topic similarity. Look at whether each page ranks for its own distinct queries, in which case leave them alone, or whether two pages compete for the same query with split signals, in which case treat it as harmful and resolve it. Let the shared-query test, not how alike the subjects feel, decide where the line falls.