# Site has internal linking between pages

- **Pattern:** `ab-002509` (`seo-fundamentals.content-structure.internal-links`)
- **Severity:** low
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-002509
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-002509)

## Why it matters

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.

## Severity rationale

Low because the impact scales with site size — a single-page site is unaffected, but a multi-page site silently orphans subpages.

## Remediation

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.

```tsx
// 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.

## Detection

- **ID:** `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:

  ```tsx
  // 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>
    )
  }
  ```

---

Taxons: findability

HTML version: https://auditbuffet.com/patterns/ab-002509
