DEV Community

Tugelbay Konabayev
Tugelbay Konabayev

Posted on • Originally published at about-kazakhstan.com

Automated Internal Linking with Tag-Based Content Graphs

Why Internal Links Matter

Internal links distribute page authority, help Google discover content, and keep users engaged. For 80+ articles, manual linking is unsustainable.

Tag-Based Link Graph

Every article has tags in frontmatter. The algorithm finds related articles by tag overlap:

function buildLinkMap(articles) {
  const linkMap = {};
  for (const article of articles) {
    const related = articles
      .filter(a => a.slug !== article.slug)
      .map(a => ({
        slug: a.slug,
        overlap: a.tags.filter(t => article.tags.includes(t)).length
      }))
      .filter(a => a.overlap > 0)
      .sort((a, b) => b.overlap - a.overlap)
      .slice(0, 6);
    linkMap[article.slug] = related;
  }
  return linkMap;
}
Enter fullscreen mode Exit fullscreen mode

Output Format

The script generates a TypeScript file with related articles that components import for rendering.

Dry Run Mode

Run with --dry-run to preview changes before committing.

Impact

After implementing automated internal linking:

  • Average internal links per article: 1.2 to 5.4
  • Pages with zero internal links: 23 to 0
  • Google discovered 17 more pages within two weeks

Top comments (0)