diff --git a/web/src/components/feature-page.tsx b/web/src/components/feature-page.tsx index c793879..9ea7c5b 100644 --- a/web/src/components/feature-page.tsx +++ b/web/src/components/feature-page.tsx @@ -32,6 +32,22 @@ export function FeaturePageTemplate({ page }: FeaturePageProps) { + {page.featuredLink ? ( + + + + {page.featuredLink.title} + + + + {page.featuredLink.description} + + + ) : null} + What you can do diff --git a/web/src/lib/feature-page-slugs.js b/web/src/lib/feature-page-slugs.js index dabb11f..4fb4d8f 100644 --- a/web/src/lib/feature-page-slugs.js +++ b/web/src/lib/feature-page-slugs.js @@ -1,7 +1,7 @@ export const FEATURE_PAGE_SLUGS = { keywordResearch: "keyword-research", siteAudit: "site-audit", - backlinks: "backlinks", + backlinks: "backlink-checker", domainOverview: "domain-overview", rankTracking: "rank-tracking", savedKeywords: "saved-keywords", diff --git a/web/src/lib/feature-pages.ts b/web/src/lib/feature-pages.ts index cb75086..51455fb 100644 --- a/web/src/lib/feature-pages.ts +++ b/web/src/lib/feature-pages.ts @@ -21,6 +21,11 @@ export type FeaturePage = { showMetrics?: boolean; useCases: string[]; differentiators: string[]; + featuredLink?: { + title: string; + description: string; + href: string; + }; related: Array<{ label: string; href: string; @@ -207,7 +212,7 @@ export const featurePages = { ], related: [ { label: "Domain Overview", href: "/features/domain-overview" }, - { label: "Backlinks", href: "/features/backlinks" }, + { label: "Backlinks", href: "/features/backlink-checker" }, { label: "Keyword Research", href: "/features/keyword-research" }, ], faqs: [ @@ -232,7 +237,7 @@ export const featurePages = { slug: FEATURE_PAGE_SLUGS.backlinks, eyebrow: "Backlinks", navDescription: "Check links and referring domains.", - title: "Backlink analysis for understanding a domain's link profile", + title: "Backlink checker for understanding a domain's link profile", description: "Analyze backlinks, referring domains, and linked pages without separating link research from the rest of your SEO workspace.", primaryKeyword: "backlink analysis", @@ -278,13 +283,19 @@ export const featurePages = { "Self-host or adapt backlink reporting for your team's workflow.", "MCP support lets an AI agent pull backlink context during SEO research.", ], + featuredLink: { + title: "Free backlink checker", + description: + "Check any domain's backlink summary and top 15 backlinks. No signup required.", + href: "/backlink-checker", + }, related: [ - { label: "Free Backlink Checker", href: "/backlink-checker" }, { label: "Link Prospecting", href: "/docs/skills/link-prospecting", }, { label: "Domain Overview", href: "/features/domain-overview" }, + { label: "OpenSEO MCP", href: "/features/mcp" }, ], faqs: [ { @@ -360,7 +371,7 @@ export const featurePages = { href: "/docs/skills/competitor-analysis", }, { label: "Keyword Research", href: "/features/keyword-research" }, - { label: "Backlinks", href: "/features/backlinks" }, + { label: "Backlinks", href: "/features/backlink-checker" }, ], faqs: [ { diff --git a/web/src/routes/_marketing/backlink-checker.tsx b/web/src/routes/_marketing/backlink-checker.tsx index 9145db6..b7463df 100644 --- a/web/src/routes/_marketing/backlink-checker.tsx +++ b/web/src/routes/_marketing/backlink-checker.tsx @@ -136,7 +136,7 @@ function BacklinkCheckerPage() { Learn about the Backlinks feature diff --git a/web/src/routes/_marketing/features/backlink-checker.tsx b/web/src/routes/_marketing/features/backlink-checker.tsx index 808c447..60309b4 100644 --- a/web/src/routes/_marketing/features/backlink-checker.tsx +++ b/web/src/routes/_marketing/features/backlink-checker.tsx @@ -1,10 +1,18 @@ -import { createFileRoute, redirect } from "@tanstack/react-router"; +import { createFileRoute } from "@tanstack/react-router"; +import { FeaturePageTemplate } from "@/components/feature-page"; +import { featurePages } from "@/lib/feature-pages"; +import { buildPageSeo } from "@/lib/seo"; + +const page = featurePages.backlinks; -// The old feature page ranks for "backlink checker"; that intent is now served -// by the free tool at /backlink-checker. The feature content moved to -// /features/backlinks. export const Route = createFileRoute("/_marketing/features/backlink-checker")({ - beforeLoad: () => { - throw redirect({ to: "/backlink-checker", statusCode: 301 }); - }, + head: () => + buildPageSeo({ + title: "Backlink Checker", + description: page.description, + path: "/features/backlink-checker", + titleSuffix: "OpenSEO", + imageAlt: page.imageAlt, + }), + component: () => , }); diff --git a/web/src/routes/_marketing/features/backlinks.tsx b/web/src/routes/_marketing/features/backlinks.tsx index 1cacca4..c469814 100644 --- a/web/src/routes/_marketing/features/backlinks.tsx +++ b/web/src/routes/_marketing/features/backlinks.tsx @@ -1,18 +1,7 @@ -import { createFileRoute } from "@tanstack/react-router"; -import { FeaturePageTemplate } from "@/components/feature-page"; -import { featurePages } from "@/lib/feature-pages"; -import { buildPageSeo } from "@/lib/seo"; - -const page = featurePages.backlinks; +import { createFileRoute, redirect } from "@tanstack/react-router"; export const Route = createFileRoute("/_marketing/features/backlinks")({ - head: () => - buildPageSeo({ - title: "Backlink Analysis Tool", - description: page.description, - path: "/features/backlinks", - titleSuffix: "OpenSEO", - imageAlt: page.imageAlt, - }), - component: () => , + beforeLoad: () => { + throw redirect({ to: "/features/backlink-checker", statusCode: 301 }); + }, });
+ {page.featuredLink.description} +