general pseo-internal-linking

pseo-internal-linking

This skill should be used when the user asks to "set up internal linking for pSEO", "link programmatic SEO pages", "internal linking strategy for pSEO", "connect pSEO pages", "build a pSEO link structure", "programmatic SEO site architecture", "link pSEO pages to hub pages", "internal linking at scale", "pSEO page hierarchy linking", or any variation of designing internal linking structures for programmatic SEO pages in B2B SaaS.
Download .md

pSEO Internal Linking

Internal linking for programmatic SEO connects hundreds or thousands of template-generated pages into a structure that Google can crawl, understand, and rank. Without internal linking, pSEO pages are orphans. Google can't find them, can't understand their relationships, and won't rank them. Internal linking is the difference between 500 indexed pages and 500 invisible pages.

The principle: every pSEO page must be reachable within 3 clicks from the homepage. Every page must link to related pages. Every category must have a hub page that aggregates its children. The link structure IS the site architecture.

The Link Architecture

Three-tier structure

Tier 1: Hub pages (category-level)
  /alternatives/          → lists all alternative pages
  /comparisons/           → lists all comparison pages
  /integrations/          → lists all integration pages
  /glossary/              → lists all glossary terms

Tier 2: pSEO pages (individual)
  /alternatives/hubspot/  → HubSpot alternatives
  /comparisons/hubspot-vs-salesforce/ → comparison page
  /integrations/slack/    → Slack integration page

Tier 3: Related clusters
  Each Tier 2 page links to 5-10 related Tier 2 pages
  HubSpot alternatives → links to Salesforce alternatives,
  Pipedrive alternatives, etc.

Link type rules

Link type From → To Purpose How many
Hub → Child /alternatives/ → /alternatives/hubspot/ Google discovers all children through the hub All children linked from hub
Child → Hub /alternatives/hubspot/ → /alternatives/ Passes authority back to hub. Breadcrumb navigation 1 per page (in breadcrumb)
Child → Related child /alternatives/hubspot/ → /alternatives/salesforce/ Distributes authority. Keeps users on site 5-10 per page
Child → Editorial /alternatives/hubspot/ → /blog/choosing-a-crm/ Links pSEO to deep content. Boosts pSEO authority 1-3 per page
Editorial → Hub /blog/choosing-a-crm/ → /alternatives/ Sends editorial authority to pSEO pages Where contextually relevant
Homepage → Hub / → /alternatives/ Google discovers hub pages from homepage All hub pages linked from homepage or main nav

Building the Link Structure

Step 1: Create hub pages

Every pSEO template type gets a hub page.

Template: alternatives pages
Hub: /alternatives/
Content:
  - H1: "Software Alternatives"
  - Category filters (by category, by feature, alphabetical)
  - Grid of all alternative pages with title + short description
  - Links to every child page

Template: comparison pages
Hub: /comparisons/
Content:
  - H1: "Software Comparisons"
  - Grid of all comparison pages
  - Popular comparisons section
  - Category navigation

Step 2: Build child-to-child links

For each pSEO page, identify 5-10 related pages and link to them.

Relation types:

Relation How to determine Example
Same category Both are CRM alternatives HubSpot alternatives → Salesforce alternatives
Same tool mentioned Both reference the same product HubSpot vs Salesforce → HubSpot alternatives
Same audience Both target the same persona or segment HubSpot for startups → Salesforce for startups
Complementary Tools that work together HubSpot alternatives → Outreach alternatives (CRM + sequencing)
Competitive Direct competitors in the comparison HubSpot vs Salesforce → Pipedrive vs Salesforce

Step 3: Implement linking programmatically

For each page:
  1. Query for pages in same category (max 5)
  2. Query for pages mentioning same primary tool (max 3)
  3. Query for pages in complementary categories (max 2)
  4. Render link blocks:
     - "Related alternatives" section at bottom
     - In-content contextual links (1-2 per page)
     - Breadcrumb (child → hub → home)

Link implementation rules

  • Automate link generation. Don't manually link 500 pages. Build the linking logic into the template. When a new page is added, links are generated automatically
  • Use descriptive anchor text. "Salesforce alternatives" not "click here" or "learn more." The anchor text tells Google what the linked page is about
  • 5-10 related links per page. Fewer than 5 and the page is under-linked. More than 10 and the links lose value. Google distributes link equity across all links on a page
  • Contextual links > footer links. A link in the body content with surrounding context is worth more than a link in a "Related pages" footer. Include 1-2 in-content links alongside the related section
  • Breadcrumbs on every page. Home → Hub → Current page. Breadcrumbs give Google the site hierarchy and provide navigation for users

Link Patterns by pSEO Type

Alternatives pages

/alternatives/hubspot/ links to:
  Related alternatives:
  - /alternatives/salesforce/ (same category: CRM)
  - /alternatives/pipedrive/ (same category: CRM)
  - /alternatives/zoho-crm/ (same category: CRM)
  - /alternatives/freshsales/ (same category: CRM)
  Complementary:
  - /alternatives/outreach/ (sequencing tool, pairs with CRM)
  Comparison:
  - /comparisons/hubspot-vs-salesforce/
  Editorial:
  - /blog/how-to-choose-a-crm/
  Hub:
  - /alternatives/ (breadcrumb)

Comparison pages

/comparisons/hubspot-vs-salesforce/ links to:
  Related comparisons:
  - /comparisons/hubspot-vs-pipedrive/
  - /comparisons/salesforce-vs-pipedrive/
  - /comparisons/hubspot-vs-zoho/
  Alternatives:
  - /alternatives/hubspot/
  - /alternatives/salesforce/
  Editorial:
  - /blog/crm-buying-guide/
  Hub:
  - /comparisons/ (breadcrumb)

Integration pages

/integrations/slack/ links to:
  Related integrations:
  - /integrations/microsoft-teams/ (same category: messaging)
  - /integrations/zapier/ (complementary: automation)
  - /integrations/hubspot/ (complementary: CRM)
  Use case:
  - /use-cases/sales-notifications/
  Editorial:
  - /blog/setting-up-sales-alerts/
  Hub:
  - /integrations/ (breadcrumb)

Technical Implementation

Sitemap structure

<!-- Main sitemap index -->
<sitemapindex>
  <sitemap>
    <loc>/sitemap-alternatives.xml</loc>
  </sitemap>
  <sitemap>
    <loc>/sitemap-comparisons.xml</loc>
  </sitemap>
  <sitemap>
    <loc>/sitemap-integrations.xml</loc>
  </sitemap>
</sitemapindex>

Technical rules

  • Separate sitemaps per pSEO type. Don't put 5,000 URLs in one sitemap. Split by template type. Max 50,000 URLs per sitemap, but keep it under 10,000 for faster processing
  • Submit sitemaps in Google Search Console. After launch and after each batch of new pages
  • Monitor indexing rate. If you publish 500 pages and only 200 are indexed after 4 weeks, Google isn't finding or valuing the rest. Check internal linking coverage
  • Canonical tags on every page. Self-referencing canonical prevents duplicate content issues. <link rel="canonical" href="/alternatives/hubspot/" />
  • Noindex thin pages. If a pSEO page has fewer than 200 words of unique content, noindex it until you can add more content. Thin pages drag down the domain

Measuring Link Structure Health

Metric How to measure Target
Crawl depth Average clicks from homepage to pSEO page ≤ 3 clicks
Orphan pages pSEO pages with no internal links pointing to them 0 orphans
Internal links per page Average inbound internal links per pSEO page 5-15
Hub page coverage % of pSEO pages linked from their hub 100%
Indexing rate % of published pSEO pages indexed by Google > 90% within 4 weeks
Click depth distribution % of pages at each click depth 80%+ within 3 clicks

Pre-Launch Checklist

  • [ ] Hub page created for each pSEO template type
  • [ ] All hub pages linked from homepage or main navigation
  • [ ] Every child page links back to its hub (breadcrumb)
  • [ ] Every child page links to 5-10 related children
  • [ ] Anchor text is descriptive (not "click here" or "learn more")
  • [ ] 1-2 contextual links in body content per page (not just footer)
  • [ ] Separate sitemaps per pSEO type, submitted to Search Console
  • [ ] Canonical tags on every pSEO page
  • [ ] No orphan pages (every page has at least 1 inbound internal link)
  • [ ] Crawl depth verified (all pages within 3 clicks of homepage)
  • [ ] Indexing rate monitored weekly for the first month after launch

Anti-Pattern Check

  • Orphaned pSEO pages. You publish 500 pages but forget to link them from anywhere. Google can't discover them. They're invisible. Every page must be reachable from the hub, which must be reachable from the homepage
  • All links in the footer. A "Related pages" footer with 10 links. No contextual links in the body. Footer links carry less weight than in-content links. Include 1-2 links in the body content
  • No hub pages. 500 alternatives pages exist but no /alternatives/ hub page to aggregate them. Google has no entry point to discover the collection. Build hub pages first, before building child pages
  • Linking to every page from every page. Each page has 200 internal links. Link equity is diluted across 200 links. Each link carries 0.5% of the value. Keep it to 5-10 related links per page
  • Manual linking for 500+ pages. You're manually adding related links to each pSEO page. At page 50, you stop because it's tedious. At page 200, half the pages have no links. Automate link generation in the template
  • No cross-linking between pSEO and editorial. Your pSEO pages and your blog exist in separate silos. Neither links to the other. Cross-linking strengthens both. pSEO gains authority from editorial. Editorial gains topical relevance from pSEO
  • Flat URL structure. All 500 pages at the root: /hubspot-alternatives, /salesforce-alternatives, etc. No hierarchy. Use /alternatives/hubspot/, /alternatives/salesforce/. The URL structure signals the relationship to Google
Want agents that use skill files like this?
We customize skill files for your brand voice and methodology, then run content agents against them.
Book a call