Skip to content

SEO/GEO audit fixes: FAQ schema, canonicals, sitemap, TechArticle - #938

Open
nehagup wants to merge 3 commits into
mainfrom
seo/geo-audit-fixes-2026-10
Open

nehagup wants to merge 3 commits into
mainfrom
seo/geo-audit-fixes-2026-10

Conversation

@nehagup

@nehagup nehagup commented Oct 22, 2026

Copy link
Copy Markdown
Member

Fixes the keploy/docs rows from the keploy.io SEO/GEO audit (Oct 2026).

Structured data

  • FAQPage JSON-LD was HTML-escaped ({&quot;@context…) on https://keploy.io/docs/keploy-explained/api-testing-faq/ and https://keploy.io/docs/keploy-explained/unit-testing-faq/. React entity-escapes text children of <script> during SSR. src/remark/remarkFaqSchema.js now emits the JSON through dangerouslySetInnerHTML (with < escaped as <). I checked the built HTML: every ld+json block on both pages parses with json.loads.
  • src/schema/siteEntities.js: SoftwareApplication @id is now https://keploy.io/#software (it was #keploy), with applicationCategory: "DeveloperApplication". Organization sameAs now includes Wikidata https://www.wikidata.org/wiki/Q137395272. Publisher already pointed at https://keploy.io/#organization. softwareHelp was already https://keploy.io/docs/. BreadcrumbList already comes from DocBreadcrumbs.
  • TechArticle dateModified already comes from git (showLastUpdateTime + src/lastUpdate/contentLastUpdate.js). I made no change there.

Canonicals

Sitemap and robots

  • /docs/search/ is excluded from the sitemap. 1.0.0 and 2.0.0 were already excluded and noIndex. 3.0.0 is not built (onlyIncludeVersions).
  • <lastmod> already uses per-doc git content dates (lastmod: "date"). It needs full history in CI, which is already fetch-depth: 0.
  • static/robots.txt (served at /docs/robots.txt, which crawlers ignore) is now a no-op Allow: / plus a comment. The real rules (AI-bot policy, /docs/1.0.0/–3.0.0/ disallows) must live in the root https://keploy.io/robots.txt. That is handled in the keploy/landing PR.

Content

  • "What is Keploy?" (https://keploy.io/docs/keploy-explained/introduction/, which pulls in concepts/what-is-keploy.md): I added the H2s Overview / How Keploy Generates Tests / Where to Run Keploy Tests over the existing text. No new claims.
  • I removed emoji from 24 doc H1s in v4 docs (e.g. "🤖 AI Models at Keploy" is now "AI Models at Keploy"). Sidebar labels are unchanged.
  • https://keploy.io/docs/server/install/ (via concepts/platform-requirements.md): the hot-linked Apple (pngplay), Windows (wikimedia) and Linux (th.bing.com) logos now use the existing /docs/img/os/*-logo.svg.

Skipped / manual steps

  • Green tick images in the platform table are still hot-linked from upload.wikimedia.org, because the repo has no equivalent local asset.
  • TechArticle author: docs with no front-matter author still fall back to the Organization, and datePublished falls back to the git last-modified date. Setting real authors and dates needs a decision on who the authors are.
  • Raster logo: there is no raster Keploy logo in this repo, so Organization.logo stays the SVG at keploy.io.
  • Trailing-slash 302: trailingSlash: true is already set. The 302 comes from the hosting/proxy layer and has to be changed to a 301 there.
  • CSP / HSTS: not configured in this repo's Docusaurus config. Set them at the edge/proxy.
  • llms.txt: content/llms-*.txt has no Allen Digital, no "Feneva" and no hard-coded star count, so no change was needed.

Build

yarn install --frozen-lockfile && yarn build succeeded locally. There were 2 broken-anchor warnings (samples-mux, samples-redis); they were already there and are unrelated to this PR. I checked the build output: the FAQ JSON-LD parses, the glossary canonicals point to themselves, there are no /docs/search entries in the sitemap, and #software and the Wikidata ID are present.

🤖 Generated with Claude Code

Copilot AI balanced review requested due to automatic review settings October 22, 2026 11:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Six heading edits invalidate existing quickstart fragment links and need explicit IDs to preserve navigation.

6 open issues
What changed in this PR

This PR addresses the SEO/GEO audit for Keploy’s Docusaurus documentation, improving structured data, indexing metadata, and content presentation.

Changes:

  • Fix FAQ JSON-LD rendering and update shared software and organization metadata.
  • Restore glossary self-canonicals, exclude search from the sitemap, and clarify root-level robots policy ownership.
  • Remove heading emoji, organize introduction content, and replace external operating-system logos with local assets.
File Description
versioned_docs/​version-4.0.0/​running-keploy/​unit-test-architecture.md Remove heading emoji.
versioned_docs/​version-4.0.0/​running-keploy/​test-run-reports.md Remove heading emoji.
versioned_docs/​version-4.0.0/​running-keploy/​test-generate.md Remove heading emoji.
versioned_docs/​version-4.0.0/​running-keploy/​api-test-architecture.md Remove heading emoji.
versioned_docs/​version-4.0.0/​running-keploy/​about-unit-testing.md Remove heading emoji.
versioned_docs/​version-4.0.0/​running-keploy/​about-api-testing.md Remove heading emoji.
versioned_docs/​version-4.0.0/​quickstart/​samples-go-gin-mongo.md Remove Docker and local heading emoji.
versioned_docs/​version-4.0.0/​quickstart/​go-mux-sql.md Remove Docker and local heading emoji.
versioned_docs/​version-4.0.0/​quickstart/​go-mux-mysql.md Remove Docker and local heading emoji.
versioned_docs/​version-4.0.0/​quickstart/​go-gin-redis.md Remove Docker and local heading emoji.
versioned_docs/​version-4.0.0/​quickstart/​go-fasthttp-postgres.md Remove local heading emoji.
versioned_docs/​version-4.0.0/​quickstart/​code-coverage.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​testing-guide.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​supported-languages.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​keploy-security.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​keploy-privacy.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​integrations-pr-agent.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​debugger-guide.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​api-testing-faq.md Remove heading emoji.
versioned_docs/​version-4.0.0/​keploy-explained/​ai-models.md Remove heading emoji.
versioned_docs/​version-4.0.0/​concepts/​what-is-keploy.md Add descriptive section headings.
versioned_docs/​version-4.0.0/​concepts/​reference/​glossary/​regression-testing.md Remove blog canonical override.
versioned_docs/​version-4.0.0/​concepts/​reference/​glossary/​black-box-testing.md Remove blog canonical override.
versioned_docs/​version-4.0.0/​concepts/​platform-requirements.md Use local operating-system logos.
static/​robots.txt Simplify ineffective subpath rules and document root policy ownership.
src/​schema/​siteEntities.js Update software identity, category, and organization references.
src/​remark/​remarkFaqSchema.js Emit unescaped JSON-LD while escaping < for script safety.
docusaurus.config.js Exclude search routes from the sitemap.

Review effort: Balanced

Comment thread versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md Outdated
Comment thread versioned_docs/version-4.0.0/quickstart/go-gin-redis.md Outdated
Comment thread versioned_docs/version-4.0.0/quickstart/go-gin-redis.md Outdated
Comment thread versioned_docs/version-4.0.0/quickstart/go-mux-mysql.md Outdated
Comment thread versioned_docs/version-4.0.0/quickstart/go-mux-sql.md Outdated
Comment thread versioned_docs/version-4.0.0/quickstart/go-mux-sql.md Outdated
@nehagup
nehagup force-pushed the seo/geo-audit-fixes-2026-10 branch from 0a50de8 to ecc1b00 Compare October 23, 2026 15:49
nehagup and others added 3 commits October 23, 2026 21:26
- FAQPage JSON-LD via dangerouslySetInnerHTML so it is not entity-escaped
- Glossary regression-testing / black-box-testing: self-canonical
- SoftwareApplication @id #software, DeveloperApplication; Wikidata sameAs
- Exclude /docs/search/ from sitemap
- Neutralize /docs/robots.txt (rules belong in root robots.txt)
- Add H2 sections to What is Keploy?; strip emoji from doc H1s
- Self-host OS logos on platform requirements table

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
Removing emoji from headings changed generated fragment IDs (e.g.
using-docker-compose- -> using-docker-compose), breaking links in
QuickStartList.js and in-page fallback links. Pin the old IDs on all
24 de-emojied headings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
@nehagup
nehagup force-pushed the seo/geo-audit-fixes-2026-10 branch from ecc1b00 to 8b58a73 Compare October 23, 2026 15:56

This branch has not been deployed

No deployments
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.

2 participants