Search crawlers discover pages by following internal links from pages they already know. An orphaned page — one with no inbound link from anywhere else on the site — is invisible to the crawler unless it is listed in the sitemap, and even then it will rank poorly because PageRank flows through links. Internal links also pass anchor-text context that tells Google what a destination page is about; a homepage with no nav and no body links signals that the site has no content depth worth crawling.
Low because the impact scales with site size — a single-page site is unaffected, but a multi-page site silently orphans subpages.
Wire every route into a persistent navigation component and cross-link related pages in body content. Use next/link (or your framework's equivalent) so prefetching and client-side routing work correctly.
// components/Nav.tsx
import Link from 'next/link'
export function Nav() {
return (
<nav>
<Link href="/">Home</Link>
<Link href="/about">About</Link>
<Link href="/pricing">Pricing</Link>
<Link href="/docs">Docs</Link>
</nav>
)
}
For deep content trees, add a footer sitemap block so every page is reachable in at most two hops from the homepage.
ID: seo-fundamentals.content-structure.internal-links
Severity: low
What to look for: Check for <a> tags or Next.js <Link> components that link between pages within the site. Look in navigation components, page content, and footer links.
Pass criteria: Count all internal <a> or <Link> elements that link to other page routes within the site. The project must have at least 3 internal links connecting its pages — at minimum, a navigation component with links to key pages. For each page route, classify as "has inbound internal links" or "orphaned (no inbound links)."
Fail criteria: No internal linking found between pages, or pages are isolated with no navigation connecting them. Fewer than 3 internal links across the entire project is a fail.
Skip (N/A) when: The project has only one route (one page.tsx or equivalent, no dynamic routes), OR the project is a pure API with no HTML pages. A single-page marketing app with client-side routing still has one route file and should be skipped; the check is not meaningful without multiple navigable destinations.
Detail on fail: "No internal navigation or cross-linking found between pages. Each page appears isolated." or "Navigation links to only 2 of 8 pages — remaining pages have no inbound internal links"
Remediation: Internal links help search engines discover and understand the relationships between your pages. Ensure your navigation component links to all important pages:
// components/Nav.tsx
import Link from 'next/link'
export function Nav() {
return (
<nav>
<Link href="/">Home</Link>
<Link href="/about">About</Link>
<Link href="/pricing">Pricing</Link>
<Link href="/docs">Docs</Link>
</nav>
)
}