nexaex.in · Marketing

Publishing 300+ guides without letting them compete with each other

Our own site: a content platform at a few hundred pages, the keyword cannibalisation that came with it, and the consolidation pattern we now use to fix it.

Live

01 — The problem

Publishing at volume is easy. Publishing at volume without producing several pages that compete for the same query is not.

Past a couple of hundred posts, the failure mode is invisible from inside: nothing looks broken, but Google has to choose between three of your own pages and ends up ranking none of them well.

Answer engines make it worse. They cite one authoritative page, so a topic split three ways gets cited zero times.

02 — Decisions

What we chose, and what it cost

Every one of these had a cheaper option we deliberately didn't take.

Expand the strongest existing URL rather than publish a new one

A merged topic keeps the accumulated age and links of the best slug. Creating a fresh URL and redirecting everything into it throws that away and needs more redirects.

The trade-off. Less satisfying than a new post with a new date, and it makes the content calendar look emptier.

Redirect first, unpublish second

Deploying the 301 before removing the old page means there is never a window where the URL returns a 404. We verify the redirect in production before touching the post's published flag.

The trade-off. Two steps and a deploy between them, rather than one database update.

Structured data on every post, not just the marketing pages

Article, breadcrumb and FAQ schema on each guide is what lets an answer engine lift a specific Q&A. The FAQ block is the part that actually gets quoted.

The trade-off. Every post now carries an editorial obligation to write six to eight genuinely distinct questions, which is slower than writing prose.

03 — What shipped

  • 300+ published guides with per-post structured data
  • Service and city landing pages generated from one catalogue
  • A self-serve project cost calculator
  • An admin CRM for leads and posts
  • LocalBusiness schema matched to the Google Business Profile

Stack

Next.jsTypeScriptTailwind CSSSupabaseVercelJSON-LD

04 — What we’d do differently

We should have run a duplicate check before writing each post rather than after a few hundred had accumulated. Cleaning up cannibalisation costs far more than avoiding it, and we are still working through the backlog.

Tell us what you're building.

One conversation to scope the work, meet the team, and get a proposal — usually within two business days.