7/2024 Aman Azad
Can you get traffic from Google without ANY SEO gimmicks? Write content → Google traffic?
Yes.
I’ll walk you through setting up a topical cluster, how I write my content, and how I set up my site to get these results.
I started this SEO experiment a few months ago. My hypothesis was if strictly building a topical cluster, a comprehensive information map of one particular subject - no backlinks, no programmatic SEO, just a few well crafted content pieces - I would start to get page visits.
Google is a blackbox for obvious reasons - they can’t give up their secrets or the entire SEO industry becomes non-existent.
My best guess as for an explanation of these results…
Let’s go through each in detail.
I think the simplest way to describe a topical cluster is as follows - a topical cluster is a comprehensive, definitive guide on a particular subject.
The way I think about a topical cluster is like a tree of content - we have one “parent” branch, with several “child” branches.
Our goal here is to show Google we have the definitive answer on a particular subject — the subject is what we’re interested in ranking for.
Let’s walk through an example.
For example, let’s try to rank our fintech SaaS product. We’ll go with looking to provide a topical cluster on our particular niche like “cash advances”.
Our 3 steps —
A bit more of the research phase.
ChatGPT and common sense will get us the general list of topics we’ll need to cover.
Here’s a prompt that should get a good v1 of our cluster done:
I'm writing an SEO topical cluster for the keywords "cash advance" what
are some questions I would need to address to make sure I have a fleshed
out content strategy here?
To find the more niche questions to dive into, answerthepublic.com is excellent. Inputting our topic “cash advance” gives us this wheel below. We’ll get a report with a list of questions, the phrases being searched, and the corresponding traffic data.
We’ll want to find a maximum of the search volume, and a minimum of the CPC listed for each query. A high CPC is a great proxy for understanding how competitive a keyword or phrase is. We can repeat this for the prepositions section as well to round out our research.
Write the answers you’d want Google to give you.
The Vercel blog is a great example to dive into. Note the style of writing used here - clear, concise, encyclopedic almost, and confident. Vercel answered this question so well their AI is using it as it’s first reference point.
This is what Google wants because, and most importantly, this is what the people want.
Using NextJS and Vercel, we can easily create a custom endpoint to serve our sitemap.xml
. The code below is an endpoint to automatically generate our sitemap. My particular site used a custom built CMS leveraging Prisma and a SQL database, but this can easily be replaced with your CMS of choice - Sanity, Contentful, WP, etc.
export default async function handler(
req: NextApiRequest,
res: NextApiResponse,
) {
res.statusCode = 200
res.setHeader('Content-Type', 'text/xml')
// Instructing the Vercel edge to cache the file
res.setHeader('Cache-control', 'stale-while-revalidate, s-maxage=3600')
const programmaticPages = await prisma.textContent.findMany({
select: {
slug: true,
category: true,
createdAt: true,
updatedAt: true,
},
})
const pagesXml = programmaticPages.map((page) => {
const dateYYYYMMDD = new Date(page.updatedAt || page.createdAt)
.toISOString()
.slice(0, 10)
return `<url>
<loc>${SITE_URL}/${page.category}/${page.slug}</loc>
<lastmod>${dateYYYYMMDD}</lastmod>
</url>`
})
// generate sitemap here
const xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url><loc>${SITE_URL}/explore</loc><lastmod>2023-05-11</lastmod></url>
<url><loc>${SITE_URL}/explore-all</loc><lastmod>2023-05-13</lastmod></url>
${pagesXml.join('')}
</urlset>
`
res.end(xml)
}
I’m not 100% sure the efficacy of sitemaps, but we’re able to get this easily set up and it is a programmatic way for Google to quickly understand the totality of our site.
Core web vitals, the performance metrics Google uses as a factor when ranking your site, is publicly available if you already have a good amount of traffic.
https://developer.chrome.com/docs/crux/dashboard
Here’s the dashboard for an example site:
CWV is a key aspect of differentiation in SEO. Most content will be generally commoditized unless our writing is exceptional. Performance is an easy, technical win we can score in the SEO algorithms.
Again the combo of NextJS and Vercel gives us the most levers and knobs to optimize performance when we’re using our CMS.
Notice this line in the code snippet above:
// Instructing the Vercel edge to cache the file
res.setHeader('Cache-control', 'stale-while-revalidate, s-maxage=3600')
We’ll want to leverage caching whenever possible to improve the speed of our site. NextJS 14 now ships with more granular cache controls out of the box. In addition, we can build our site 100% statically, and deploy it on Vercel’s CDN. This’ll be the fastest way to get our site to users, and the Google bot’s, hands.