@@ -43,6 +62,12 @@ export function LibrarySpokePage({
+
+
);
}
@@ -51,11 +76,11 @@ function LibrarySpokeCta() {
return (
- Run every play in this guide
+ Run this strategy in OpenSEO
- OpenSEO connects your Search Console and expands your seeds. Open
- source, free to try, no credit card.
+ Run the MCP prompt in this guide with OpenSEO. OpenSEO is open source,
+ free to try, and does not require a credit card.
+
+
+ );
+}
diff --git a/web/src/routes/_marketing/library/keyword-research/cluster-topical-hubs.tsx b/web/src/routes/_marketing/library/keyword-research/cluster-topical-hubs.tsx
index af23bb1..c120852 100644
--- a/web/src/routes/_marketing/library/keyword-research/cluster-topical-hubs.tsx
+++ b/web/src/routes/_marketing/library/keyword-research/cluster-topical-hubs.tsx
@@ -6,6 +6,8 @@ import Content, {
import { LibrarySpokePage } from "@/components/library-page";
import { buildPageSeo } from "@/lib/seo";
+const PATH = "/library/keyword-research/cluster-topical-hubs";
+
export const Route = createFileRoute(
"/_marketing/library/keyword-research/cluster-topical-hubs",
)({
@@ -14,7 +16,7 @@ export const Route = createFileRoute(
title:
"Keyword Clustering: Turn a Keyword List into Topical Hubs (and Fix Cannibalization)",
description: frontmatter.description,
- path: "/library/keyword-research/cluster-topical-hubs",
+ path: PATH,
titleSuffix: "OpenSEO Library",
ogType: "article",
}),
@@ -23,6 +25,7 @@ export const Route = createFileRoute(
title={frontmatter.title}
description={frontmatter.description}
crumb="Cluster keywords into topical hubs"
+ path={PATH}
>
diff --git a/web/src/routes/_marketing/library/keyword-research/gsc-programmatic-discovery.tsx b/web/src/routes/_marketing/library/keyword-research/gsc-programmatic-discovery.tsx
index d03daa5..f2e6e81 100644
--- a/web/src/routes/_marketing/library/keyword-research/gsc-programmatic-discovery.tsx
+++ b/web/src/routes/_marketing/library/keyword-research/gsc-programmatic-discovery.tsx
@@ -6,6 +6,8 @@ import Content, {
import { LibrarySpokePage } from "@/components/library-page";
import { buildPageSeo } from "@/lib/seo";
+const PATH = "/library/keyword-research/gsc-programmatic-discovery";
+
export const Route = createFileRoute(
"/_marketing/library/keyword-research/gsc-programmatic-discovery",
)({
@@ -13,7 +15,7 @@ export const Route = createFileRoute(
buildPageSeo({
title: "Search Console Keyword Research: Striking-Distance Queries",
description: frontmatter.description,
- path: "/library/keyword-research/gsc-programmatic-discovery",
+ path: PATH,
titleSuffix: "OpenSEO Library",
ogType: "article",
}),
@@ -22,6 +24,7 @@ export const Route = createFileRoute(
title={frontmatter.title}
description={frontmatter.description}
crumb="Programmatic discovery with Search Console"
+ path={PATH}
>
diff --git a/web/src/routes/_marketing/library/keyword-research/index.tsx b/web/src/routes/_marketing/library/keyword-research/index.tsx
index b9647c1..7318268 100644
--- a/web/src/routes/_marketing/library/keyword-research/index.tsx
+++ b/web/src/routes/_marketing/library/keyword-research/index.tsx
@@ -1,59 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
-import { buildPageSeo } from "@/lib/seo";
+import { buildBreadcrumbJsonLd, buildPageSeo } from "@/lib/seo";
+import { keywordResearchStrategies } from "@/lib/strategy-libraries";
const PATH = "/library/keyword-research";
-const strategies = [
- {
- title: "Seed from conversation, not a volume report",
- description:
- "Harvest seed keywords from sales calls and support tickets: the phrasings tools never surface.",
- href: "/library/keyword-research/seed-from-conversation",
- },
- {
- title: "What are long-tail keywords, and how to mine them",
- description:
- "PAA fan-out, autocomplete harvesting, and the GSC queries you already half-rank for.",
- href: "/library/keyword-research/long-tail-question-mining",
- },
- {
- title: "Search-intent mapping (hot / warm / cold)",
- description:
- "Label every keyword by buying temperature before you write. Build the hot pages first.",
- href: "/library/keyword-research/search-intent-mapping",
- },
- {
- title: "Cluster keywords into topical hubs",
- description:
- "One page per intent, one hub per topic, plus the fix for keyword cannibalization.",
- href: "/library/keyword-research/cluster-topical-hubs",
- },
- {
- title: "Programmatic discovery with Search Console",
- description:
- "Query-mine your own GSC by MCP: striking-distance keywords, zero-click pages, dark queries.",
- href: "/library/keyword-research/gsc-programmatic-discovery",
- },
- {
- title: "Opportunity sizing & forecasting",
- description:
- "Size a cluster before you invest: difficulty, traffic ceiling, and modeled payback windows.",
- href: "/library/keyword-research/opportunity-sizing-forecasting",
- },
- {
- title: "Intent beyond Google (Pinterest, AI, LinkedIn)",
- description:
- "Where queries happen when they don't happen in a search box, AI assistants included.",
- href: "/library/keyword-research/intent-beyond-google",
- },
- {
- title: "Map positioning to real demand",
- description:
- "Check whether your category language matches what customers actually search.",
- href: "/library/keyword-research/positioning-to-demand",
- },
-];
-
const faqs = [
{
question: "How do you do keyword research for SEO?",
@@ -63,17 +13,17 @@ const faqs = [
{
question: "How do you do keyword research for free?",
answer:
- "The discovery half runs on sources you already have: customer conversations, Google's autocomplete and People Also Ask, and your Search Console. Quality SEO data (volume, difficulty, live SERPs) is difficult to get, which is why SaaS tools run $100/month and up. OpenSEO is the most affordable option, starting at $10/month, and you can start for free.",
+ "The discovery half runs on sources you already have: customer conversations, Google's autocomplete and People Also Ask, and your Search Console. Quality SEO data costs money, which is why the big SEO suites run $100/month and up. You can start OpenSEO for free; the paid plan starts at $10/month and includes $10 of usage. If you need more, you can buy top-up credits.",
},
{
question: "Can you do keyword research without Google Keyword Planner?",
answer:
- "Yes, and for SEO you should. Planner groups variants and hides zero-ad-demand queries. Use it to sanity-check commercial value, not to discover topics.",
+ "Yes. Keyword Planner combines close variants and reports approximate search-volume data designed for ad planning. Use it to sanity-check commercial value rather than as your only source for discovering topics.",
},
{
question: "What are the 3 types of keywords?",
answer:
- "By intent: informational, commercial/navigational, transactional. By shape: head, mid-tail, long-tail. The useful planning question is always intent first, shape second.",
+ "There is no universal set of three. OpenSEO uses four intent types: informational, navigational, commercial, and transactional. By shape, terms are often grouped as head, mid-tail, and long-tail.",
},
{
question: "How do you do keyword research for a blog?",
@@ -92,12 +42,17 @@ const faqLd = {
})),
};
+const breadcrumbLd = buildBreadcrumbJsonLd([
+ { name: "Strategy Library", path: "/library" },
+ { name: "Keyword Research", path: PATH },
+]);
+
export const Route = createFileRoute("/_marketing/library/keyword-research/")({
head: () =>
buildPageSeo({
title: "How to Do Keyword Research: The Strategy Library",
description:
- "Eight demand-discovery strategies drawn from interviews with working SEOs, each with a workflow you can run in OpenSEO.",
+ "Eight demand-discovery strategies drawn from interviews with working SEOs, each with a workflow and an OpenSEO MCP prompt for its data-backed steps.",
path: PATH,
titleSuffix: "OpenSEO",
}),
@@ -108,76 +63,70 @@ function KeywordResearchLibraryPage() {
return (
-
- Strategy Library
-
+
The Keyword Research Strategy Library
Eight demand-discovery strategies drawn from interviews with working
- SEOs, each with a workflow you can run in OpenSEO.
+ SEOs, each with a workflow and an OpenSEO MCP prompt for its
+ data-backed steps.
- How to do keyword research: demand discovery, not a volume spreadsheet
+ How to do keyword research through demand discovery
Most guides teach you to export a volume report and sort descending.
These strategies start earlier, where demand originates: customer
language, question mining, your own Search Console. They end with
pages mapped to intent, not keywords stuffed into paragraphs. Each
- strategy includes a walkthrough and a copy-paste MCP prompt for the
- workflow.
+ strategy includes a walkthrough and a copy-paste MCP prompt for its
+ data-backed steps.
@@ -185,47 +134,50 @@ function KeywordResearchLibraryPage() {
- What Google Keyword Planner hides (and what to use instead)
+ How to supplement Google Keyword Planner
- Keyword Planner is an ads tool wearing an SEO costume: it buckets
- close variants into one number, rounds volumes into bands, and hides
- everything with no ad demand. That's fine for bidding. It's blinding
- for content strategy.
+ Keyword Planner is built for planning search-ad campaigns. Its
+ historical metrics combine close variants and report approximate
+ monthly searches, so treat them as directional rather than a complete
+ content-discovery dataset.
- The strategies in this library replace it with three sources you can
- inspect: your customers' language (strategy 01), Google's own question
- surfaces (strategy 02), and your Search Console reality (strategy 05).
- Volume data still matters, but it's the last filter, not the
- first.
+ The strategies in this library supplement it with three sources you
+ can inspect: your customers' language (strategy 01), Google's own
+ question surfaces (strategy 02), and your Search Console reality
+ (strategy 05). Volume data still matters, but it is most useful after
+ you understand the customer language and search intent.
- Free keyword research tools for every strategy
+ Free sources for keyword discovery
Google's free surfaces (autocomplete, People Also Ask) plus your own
- Search Console do the discovery. You can run each workflow in{" "}
+ Search Console support the discovery. You can run the data-backed
+ parts of these workflows with{" "}
OpenSEO's keyword research
-
- , connected to your live Search Console. Open source, self-hostable,
- and scriptable through the{" "}
+ {" "}
+ and your connected Search Console. OpenSEO is open source and
+ self-hostable, and its{" "}
MCP
{" "}
- so your AI assistant can run the whole workflow. Quality SEO data is
- why the big suites run $100/month and up; OpenSEO starts at $10/month,
- and you can start for free.
+ lets a compatible AI assistant query both sources while it works
+ through the workflow. Quality SEO data is why the big suites run
+ $100/month and up; OpenSEO's paid plan starts at $10/month and includes
+ $10 of usage, with top-ups available if you need more. You can start
+ for free.
@@ -253,8 +205,8 @@ function KeywordResearchLibraryPage() {
The Keyword Research Playbook
- The strategies as a working PDF: checklists, the MCP prompts, and
- the keyword-map template. Ungated.
+ Eight interview-backed strategies and a seed-to-brief checklist in a
+ working PDF. Ungated.