You merge two pages without losing rankings by absorbing both intents into one stronger page, keeping the URL that holds more equity, and 301 redirecting the other into it. The whole point is that the survivor page must keep doing everything both originals did. If the weaker page ranked for a slightly different intent or a set of queries the stronger one never touched, that coverage has to live on inside the merged page. Lose it, and you lose those rankings even though the redirect technically worked.
Start by reading what each page actually ranks for, not just its main keyword. Pull the queries, the sub-topics, and the angle each one served, then build the merged page so it answers both. Take the best content from both, the clearest explanations, the examples, the sections that earned their traffic, and fold them into the page on the URL with more accrued equity. You are not picking one page and discarding the other. You are growing the survivor so it covers the full ground the two pages used to cover between them.
Once the merged page genuinely serves both intents, point the weaker URL at it with a permanent 301 redirect. The redirect passes the old page’s signals to the new home, but it can only carry rankings forward if the content those rankings depended on is present on the destination. This is why the common shortcut, deleting one page and hoping the other picks up the slack, tends to bleed traffic. There is nothing to absorb the lost intent, so it simply disappears from the index.
Finish by cleaning up the connections around the merge. Update every internal link that pointed to the retired URL so it now points to the survivor, since stale links waste equity and confuse the path. For your next merge, list what each page ranks for first, combine both sets of content into the higher-equity URL, 301 the other to it, and re-point your internal links before you call it done.