Skip to main content
Fix

Killed 13 dead in-page anchors across cyber + ROI calc

Five `#contact-booking` anchors in the cybersecurity service page and ROI calculator pointed nowhere — they now route to /pricing, /audit, and /contact based on CTA intent. Four `#hero` and four `#scan` anchors on /services/cybersecurity (smooth-scroll-to-nothing) now go to /audit, the actual scanner page. Verified the remaining 22 in-page anchors site-wide all have valid `id=` targets (some assigned dynamically via `id={g.id}`).

#cybersecurity#audit#navigation#conversion#roi-calculator

Affected routes

/services/cybersecurity/audit/contact/pricing

Built on tools you trust

Vercel
Stripe
Cloudflare
GitHub
Linear
Slack
Resend
Sentry
Postgres
PostHog
Loom
Notion

← swipe · 12 tools →

What we fixed

Thirteen href="#X" anchors had no matching id="X" target on the rendered page — they smooth-scrolled to the top of the same page and did nothing useful. Each is now a real route navigation:

  • Five `#contact-booking` anchors on /services/cybersecurity and BreachROICalculator → routed to /pricing (lock-in CTA), /audit (gap report), /contact (custom integration / scoping call / 90-day plan).
  • Four `#scan` anchors → /audit (the actual scanner landing page).
  • Four `#hero` anchors (one with a now-pointless window.scrollTo({top:0}) onClick) → /audit. Removed the dead onClick.

Why these were broken

The anchors looked like plain in-page navigation, but grep id= proved no element on the rendered page actually carried those ids. They were either left behind from a refactor (#contact-booking was an old booking-form section) or aspirational targets that never shipped (#hero and #scan assumed a hero scanner that lives on /audit, not on this page). Click-throughs went nowhere. PostHog cta_click events fired, but no destination conversion was possible.

Site-wide audit

After fixing, ran a complete inventory: 22 distinct in-page anchor patterns across src/. All others verified valid:

  • Same-file anchors (#tiers, #sku-grid, #register, #proof-system, #funnel-lead-form, #alternatives, #faq, #compare, #main-content) — same-file id, valid.
  • Cross-component anchors (#bounties, #apps, #algos, #live on /labs · #case-grid on /work · #full-comparison on /alternatives/[competitor] · #apply on /jobs/[slug] · #skus) — confirmed both source component and id-bearing target component mount on the same page.
  • Dynamically-assigned ids (#productized, #agencies, #in-house on /compare) — set via id={g.id} from the GROUPS data array. Valid.

Net: zero in-page anchors that don't resolve. Every CTA click now goes somewhere that can convert.

See the full changelog

Or peek at what we’re building next on the roadmap.