Site-wide Blogs Topic Clustering

By organizing content around central themes and establishing semantic relationships, topic clusters can significantly boost your website's authority and visibility in search results. In this post, we'll dive into the concept of topic clustering, explore its benefits for SEO, and discover how AI can streamline the process using Moonlit.

What are Topic Clusters?

At its core, a topic cluster is a strategic way to structure your website's content. It involves creating a main pillar page that comprehensively covers a broad topic, surrounded by smaller cluster pages that delve into related subtopics. These pages are interconnected through strategic internal linking, forming a cohesive and easily navigable network of content.

An educational infographic explaining the concept of a topic cluster
Topic Clustering - source

The primary goal of topic clusters is to establish your website as an authority on a particular subject matter. By providing in-depth, well-organized content, you signal to search engines that your site is a valuable resource for users seeking information on that topic. This, in turn, can lead to improved search rankings, increased organic traffic, and better user engagement [].

Moreover, topic clusters align with the evolving landscape of search, where conversational queries and voice assistants are becoming increasingly prevalent. As Google prioritizes topic-based content over keyword-focused strategies, implementing topic clusters positions your website to meet the needs of modern searchers [].

Planning and Creating Topic Clusters

Choosing a Core Topic

The first step in creating a topic cluster is selecting a broad core topic that aligns with your business objectives and audience interests. Conduct thorough keyword research to identify high-volume, relevant search terms that encompass the main theme you want to target. Consider factors such as search intent, competition level, and business relevance when choosing your core topic.

Identifying Subtopics

Once you have your core topic, dive deeper to uncover related subtopics and keyword clusters. Use tools like SEMrush or Ahrefs to identify semantically related keywords and phrases that users commonly search for in relation to your main topic. These subtopics will form the basis of your cluster pages.

A simple visual diagram titled 'Keyword Cluster Example' from SEMrush

Content Audit

Before creating new content, assess your existing website pages to identify any content that can be repurposed or consolidated within your topic cluster. Look for opportunities to update and optimize existing articles, eliminating content overlap and ensuring each page serves a distinct purpose within the cluster.

Creating the Pillar Page

The pillar page is the centerpiece of your topic cluster – a comprehensive, in-depth resource that covers all aspects of your core topic. When crafting your pillar page, focus on providing value to the reader, incorporating relevant keywords naturally, and structuring the content for easy navigation. Use clear headings, subheadings, and bullet points to break up the text and enhance readability.

Developing Cluster Content

With your pillar page in place, it's time to create the supporting cluster pages. Each cluster page should focus on a specific subtopic, targeting relevant keywords while providing detailed, valuable information. Maintain a consistent brand voice and style across all pages within the cluster, and be sure to optimize each page for its target keywords.

Crucially, establish clear internal linking between your pillar page and cluster pages. Use descriptive anchor text that reflects the content of the linked page, making it easy for both users and search engines to understand the relationship between the pages.

Implementing with AI Assistance

The app we built, handles the process of grouping together articles that are semantically similar, but there's a lot that AI can handle and more apps that you can build with Moonlit to create a coherent topic based linking system that can boost your SEO ranking.

Keyword Research and Content Planning

AI writing tools like or Frase can help with topic ideation, suggesting relevant subtopics and semantic keywords based on your core topic, we've also developed a keyword research app that you can customize to your liking. These tools can also generate content briefs and outlines, ensuring your cluster pages cover essential points and maintain a coherent structure.

Optimization and Content Creation

AI writing assistants can aid in drafting content for your pillar and cluster pages, providing suggestions for optimizing content for search intent and readability. By leveraging AI, you can create high-quality, SEO-friendly content at scale while maintaining style consistency across your topic cluster.

Monitoring and Iteration

Once your topic cluster is live, AI-powered content analysis and auditing tools can help you track performance, identifying areas for improvement and new opportunities to expand your cluster. By continuously monitoring and iterating based on data-driven insights, you can refine your topic cluster strategy over time and stay ahead of the competition.


Implementing topic clusters is a powerful way to boost your website's SEO performance, establish topical authority, and meet the evolving needs of searchers. By organizing content around central themes and leveraging AI tools to streamline the process, you can create a cohesive, user-friendly content ecosystem that drives organic traffic and engagement.

To get started with topic clustering, conduct thorough keyword research, identify core topics and subtopics, and create comprehensive pillar pages supported by focused cluster content. Continuously monitor and optimize your clusters, using AI-powered insights to guide your strategy.

By embracing topic clusters and AI-assisted content creation, you'll be well-positioned to excel in the competitive world of SEO and deliver value to your target audience.

Building our Topic Clustering App with Moonlit

Setting the Inputs

To kick off our project, we first gather essential user inputs. These inputs play a pivotal role in how our AI app functions:

  • Root URL: This acts as a starting point for fetching the sitemap, typically located at /sitemap.xml. We utilise this to access all links under the domain.
  • Number of Clusters: Indicates how many topic clusters to create for the blog posts. This aids in organising content effectively.
  • Blog Prefix: Helps in filtering out non-blog pages (like contact or legal pages) from the sitemap. For instance, setting this to 'post' targets links formatted as /post/{blog-title}.

These inputs provide the foundation for our app, ensuring it operates with precision tailored to user needs.

Fetching the Blogs

This step is where the complexity ramps up. We employ a custom Python node, as shown below, to fetch blog posts and structure them into a table with titles, URLs, and content. The process starts with the root URL to access the sitemap, then filters and scrapes content using Python libraries. The outcome is a neatly organised list of blog entries.

Semantic Clustering & Grouping

We utilise a K-means clustering node, ensuring to select the 'Text Clustering' option. This transforms the blog text into vectors for clustering.

After clustering, we employ a Group By node to categorise the table by cluster, using the 'Concatenate' option to amalgamate text from each cluster. The result? A table neatly organised into distinct topic clusters.

K Means Semantic Clustering and Grouping by Cluster

Labelling the Clusters

The clusters initially appear as integers, so our next task is to make them meaningful. We use GPT to generate descriptive titles for each cluster. Before this, we remove the 'content' column to avoid token limit issues, focusing on URLs and Blog Titles for insight. This step is crucial for understanding and navigating our clustered content efficiently.

Here is the used prompt:

The table below is the result of performing semantic clustering on a list of blogs, currently each cluster is indicated 
by an integer. your task is to give a meaningful topic (1, 2, or a 3 word phrase) to encompasses that collection of 
blogs. You'll notice that the data has been grouped by cluster and the text in the columns has been concatenated, use 
the concatenated titled to infer the topic. Your response should be a JSON mapping of each cluster to it's topic, for 

{"0": "Walkthrough Guides",
 "1": "Digital Marketing",
 ...continue for all clusters}
Here is the data:

You can ask it to return the data in whatever format you want. If you want it as a table, change the prompt to tell it to return the data in the same format just with a cluster title instead of a cluster integer. Also make sure that the ‘Force JSON’ option is ticked in the LLM function so that it outputs a valid JSON to be parsed by a Table Output node.

Published on
May 29, 2024
Minute Read