Technical SEO for software that already exists

If the answer is not in the first HTML response, a crawler does not owe you a ranking. We work on that fact, not on a directory of towns.

This domain once published city × technology pages — Blazor in Pervomaisc, Angular developers in Consul, Saskatchewan. Those URLs were the same answer with the place name swapped. That is a doorway surface. We took it down. Old paths now redirect to the one page that can stand on its own.

What we do instead

  • Decide, route by route, whether the public HTML is prerendered, server-rendered, or legitimately private.
  • Give every indexable URL its own title, H1, and description that match the visible copy.
  • Emit Organization, WebSite, and page schema that repeat what a reader can already see — nothing fabricated.
  • Keep the sitemap to canonical URLs with honest lastmod dates. A single deploy stamp on every row teaches a crawler to ignore the field.
  • Consolidate near-duplicates with rel=canonical instead of noindex, so signals move to the page that should rank.

What we will refuse

We will not generate a page for every city in a gazetteer and call it local SEO. We will not attach review stars or FAQ markup that the page does not show. We will not invent a sameAs profile the company does not have.

Why this studio can say that

We ran the doorway version of this domain. We also spend current engineering time on a research surface — Parks Manager — that is allowed to have many URLs only because each one owns a different answer. The difference is not volume. It is whether two sibling pages still say the same thing after you strip the place name.

Read why those pages failAsk about a crawl

Questions we actually get

Do you still publish a page for every city and technology?

No. That pattern is a doorway surface. We retired it. One URL now answers each question; old city URLs redirect to the service they were trying to describe.

Can you make an Angular or Blazor app rank?

Yes, when the HTML a crawler receives already contains the answer. That usually means prerender or server render for the public routes, unique titles, and schema that repeats what is on the page — not a sitemap full of thin variants.