Crawlable Links.
Links that search engines can't follow mean pages won't be discovered or indexed
What does this check test?
This check verifies that all internal links are crawlable by search engine bots. Links must use standard `<a href="/path">` elements with valid URLs. Common crawlability failures include links implemented as JavaScript click handlers (`<div onclick="navigate('/page')">`), links with `href="#"` or `href="javascript:void(0)"`, links gated behind JavaScript event listeners without an `href`, links inside `<iframe>` elements, and links loaded dynamically via AJAX that are not present in the initial HTML. Links with `rel="nofollow"` are crawlable but do not pass ranking authority.
Why does it matter?
Googlebot discovers new pages by following links from pages it has already crawled. If your internal links are not standard `<a href>` elements, Googlebot cannot follow them, and those destination pages will not be discovered or indexed. This is one of the most damaging technical SEO issues because it makes entire sections of a site invisible to search engines. Modern JavaScript frameworks often use client-side routing with `<button>` or `<div>` elements that work fine for users with JavaScript enabled, but completely break search engine crawling. Google can execute JavaScript, but it is slower, more expensive, and less reliable than following standard links.
Who is affected?
Front-end developers choosing navigation and link patterns, framework developers building routing systems, React/Next.js/Vue/Nuxt developers using router components, and SEO specialists auditing crawl reports for discovery gaps.
Where does this apply?
All navigation menus, internal links within page content, pagination links, category/tag links, sidebar links, footer links, breadcrumbs, and sitemap links. Pay special attention to SPA (single-page application) navigation, JavaScript-rendered menus, infinite scroll pagination, and dynamically loaded content sections. Mobile hamburger menus that render links only after user interaction are a common issue.
How to fix it
<!-- Bad: Googlebot can't follow these -->
<div onclick="navigate('/pricing')">Pricing</div>
<a href="javascript:void(0)">About</a>
<button onClick="router.push('/blog')">Blog</button>
<!-- Good: standard anchor tags with href -->
<a href="/pricing">Pricing</a> import Link from 'next/link';
// Renders: <a href="/pricing">Pricing</a>
<Link href="/pricing">Pricing</Link>
// Pagination — use links, not buttons
<Link href="/blog?page=2">Next page</Link> References
AppVet checks Crawlable Links automatically
Run a free seo scan and get a full report with actionable fixes, including a Fix with AI prompt you can paste into any coding tool.
Run Audit