SEO checks / JavaScript Rendering
Internal links use hash-based routing
What this means
Links on this page route through a URL fragment (`#!` or `#/`). Fragments are never sent to the server and Google deprecated the AJAX-crawling `#!` scheme in 2015, so every one of these destinations collapses onto a single indexable URL. The distinct pages behind them cannot rank on their own.
How to fix it
Move the client-side router to the History API so each view has a real, server-addressable path, and link to those paths with ordinary <a href> elements.
Fix effort
This check needs a developer fix: it turns on a routing, hosting or infrastructure decision that no automatic edit can make safely.
Authoritative source
https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
Find every page this affects
CrawlX runs this check — and 161 others — across your whole site, ranks the findings by estimated impact, and opens the fixable ones as pull requests. Free for 500 URLs.