Skip to content

[seo-geo-95] push SEO to ~100 + add the AI-search (GEO) layer - #60

Merged
Smetools merged 1 commit into
mainfrom
hassan-seo-geo-95
Jun 14, 2026
Merged

[seo-geo-95] push SEO to ~100 + add the AI-search (GEO) layer#60
Smetools merged 1 commit into
mainfrom
hassan-seo-geo-95

Conversation

@Smetools

@Smetools Smetools commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Round 2 after the 2026-06-14 SEO (89.9) + GEO audits.

SEO — lift remaining low scorers to ~100

  • /a /b /c /d: unique titles (kill duplicate <title>) + Org/WebSite/SoftwareApplication schema; still canonical→home.
  • Legal (policy, terms, contact-us, book, careers): WebPage / ContactPage schema.
  • /for/odoo-partners: FAQPage + site schema; meta description → ~160 chars.
  • Root layout: meta description → ~150 (home + A/B variants inherit).

GEO — AI-search readiness

  • lib/site-schema.ts + components/site/site-json-ld.tsx: one enriched Organization (founder Hassan Arslan, Cairo/EG, areaServed MENA, knowsLanguage en/ar, sales contactPoint) reused across home + variants — fixes the entity confusion the audit found.
  • Homepage: entity-defining FAQPage ("What is Knowcap?", "alternative to Otter/Fireflies/Read AI?", Arabic, who it's for) + Speakable.
  • /for/odoo-partners: conversion FAQPage.
  • public/llms.txt + llms-full.txt: curated canonical positioning + the pages we want AI assistants to cite — directly attacks the stale-crawl identity problem (Perplexity was defining Knowcap from an old /terms crawl).

Verification

  • tsc --noEmit → 0 errors; next build → green, all routes compile.
  • Built HTML confirms: enriched Organization (founder/Place/ContactPoint), home + for-odoo FAQPage, /a unique title + schema, policy WebPage, contact-us ContactPage, meta descriptions 110–170.

Self-merging per granted authority (no security surface — metadata/schema/static files only). Live re-audit follows.

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced pages with structured data markup to improve search visibility and AI agent understanding of content.
    • Updated page metadata with descriptive titles for better search engine optimization.
  • Documentation

    • Added comprehensive reference guides for AI assistants describing product features, differentiators, and key resources.

Round 2 after the 2026-06-14 audits. SEO was 89.9; GEO had strong plumbing
but AI engines were quoting a stale crawl and missing the positioning.

SEO (lifts the low scorers to ~100):
- /a /b /c /d: unique titles (kill duplicate-<title>) + Organization/WebSite/
  SoftwareApplication schema; still canonical->home.
- Legal/utility (policy, terms, contact-us, book, careers): WebPage / ContactPage
  schema in each layout.
- /for/odoo-partners: FAQPage + site schema; meta description tightened to ~160.
- Root layout: meta description tightened to ~150 (home + A/B variants inherit).

GEO (AI-search readiness):
- New lib/site-schema.ts + components/site/site-json-ld.tsx: one canonical,
  enriched Organization (founder Hassan Arslan, Cairo/EG, areaServed MENA,
  knowsLanguage en/ar, sales contactPoint) reused across home + variants.
- Homepage: entity-defining FAQPage ("What is Knowcap?", "alternative to Otter/
  Fireflies/Read AI?", Arabic support, who it's for) + Speakable schema.
- /for/odoo-partners: conversion FAQPage (Odoo SH ticket, GitHub PR).
- public/llms.txt + llms-full.txt: curated canonical positioning + the pages we
  want AI assistants to cite, to fix the stale-crawl identity problem.

Verified: tsc --noEmit 0 errors; next build green; built HTML confirms enriched
Organization (founder/Place/ContactPoint), home + for-odoo FAQPage, /a unique
title + schema, policy WebPage, contact-us ContactPage; meta descriptions 110-170.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
knowcap-landing Building Building Preview, Comment Jun 14, 2026 2:08pm

Request Review

@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 156f8d6b-5a3e-498f-9cfc-087bf1954301

📥 Commits

Reviewing files that changed from the base of the PR and between 908aae9 and 9a5bba0.

📒 Files selected for processing (16)
  • app/app/a/page.tsx
  • app/app/b/page.tsx
  • app/app/book/layout.tsx
  • app/app/c/page.tsx
  • app/app/careers/layout.tsx
  • app/app/contact-us/layout.tsx
  • app/app/d/page.tsx
  • app/app/for/odoo-partners/page.tsx
  • app/app/layout.tsx
  • app/app/page.tsx
  • app/app/policy/layout.tsx
  • app/app/terms/layout.tsx
  • app/components/site/site-json-ld.tsx
  • app/lib/site-schema.ts
  • app/public/llms-full.txt
  • app/public/llms.txt

📝 Walkthrough

Walkthrough

A new app/lib/site-schema.ts library centralizes Schema.org JSON-LD constants (Organization, WebSite, SoftwareApplication, Speakable) and FAQ datasets. A SiteJsonLd server component consumes these to emit a single application/ld+json script tag. The homepage, four A/B/C/D variant pages, and the Odoo partners page are updated to use this component. Five route layouts (book, careers, contact-us, policy, terms) gain inline page-specific JSON-LD scripts. The root layout metadata description and two static LLM reference files are also added/updated.

Changes

Structured Data and SEO

Layer / File(s) Summary
Schema.org library: types, constants, FAQ helper, and datasets
app/lib/site-schema.ts
Introduces the Faq type, ORGANIZATION_JSONLD, WEBSITE_JSONLD, SOFTWAREAPP_JSONLD, SPEAKABLE_JSONLD constants, a faqJsonLd() helper, and HOME_FAQ/ODOO_FAQ arrays used by all consumers.
SiteJsonLd server component
app/components/site/site-json-ld.tsx
New component composes the schema constants and faqJsonLd() into a single application/ld+json script tag, with optional speakable and faqs props.
Homepage migration and root metadata copy update
app/app/layout.tsx, app/app/page.tsx
Homepage removes the local HOME_JSON_LD constant and inline script, replacing them with <SiteJsonLd faqs={HOME_FAQ} speakable />. Root layout metadata description is updated to new copy.
A/B/C/D variant pages and Odoo partners: SiteJsonLd + SEO titles
app/app/a/page.tsx, app/app/b/page.tsx, app/app/c/page.tsx, app/app/d/page.tsx, app/app/for/odoo-partners/page.tsx
Each variant page gains an explicit metadata title and renders <SiteJsonLd /> in a fragment alongside its version component; the Odoo partners page also passes ODOO_FAQ and updates its metadata description.
Route layouts: inline WebPage/ContactPage JSON-LD
app/app/book/layout.tsx, app/app/careers/layout.tsx, app/app/contact-us/layout.tsx, app/app/policy/layout.tsx, app/app/terms/layout.tsx
Each layout adds a module-level JSONLD constant with page-specific Schema.org data and injects it as an application/ld+json script before children.
Static LLM reference files
app/public/llms.txt, app/public/llms-full.txt
New static text files containing product descriptions, FAQs, audience/differentiator copy, and contact/nav links for AI crawlers.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • Knowcap-V2/knowcap-website#57: Edits the same A/B/C/D route files (app/app/a/page.tsx, etc.) by extending exported metadata with canonical alternates and related SEO fields, overlapping directly with this PR's metadata changes in those files.

Poem

🐰 Hops through the schema with structured delight,
JSON-LD blocks all wired up just right.
Organization, WebSite, FAQ in tow,
<SiteJsonLd /> makes the metadata glow.
From layouts to pages, the rabbit declares:
"Search engines shall know of our verified affairs!" 🌟

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hassan-seo-geo-95

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Smetools
Smetools merged commit df71bf6 into main Jun 14, 2026
1 of 3 checks passed
@Smetools
Smetools deleted the hassan-seo-geo-95 branch June 14, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant