Commit 4c68cc0
feat: combined SEO/GEO/AEO + IndexNow auto-submission + build fix (#827)
* aeo update
Signed-off-by: Neha Gupta <gneha21[at]yahoo>
* fix: remove unused FAQSchema component
FAQSchema.jsx was never imported anywhere — dead code with no matching
visible FAQ content, risking structured-data spam if accidentally used.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* feat: GEO improvements — answer nuggets, schema upgrade, cross-linking, sitemap
- Add 40-60 word answer nuggets after H2s in what-is-keploy, how-keploy-works, features docs
- Rephrase doc headings as questions for AI extraction
- Upgrade Product schema to SoftwareApplication with featureList and keywords
- Add sameAs entity disambiguation links to Organization schema
- Add blog + landing cross-refs to llms.txt
- Fix canonicalBase to match actual domain (keploy.io)
- Add missing plugin package.json for docusaurus-tailwindcss-loader
- Configure sitemap filename
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* fix: resolve all 8 copilot review comments on PR #818
static/robots.txt:
- Remove per-bot Allow groups that bypassed default Disallow rules.
All crawlers now use single User-agent:* block. Only Bytespider blocked.
how-keploy-works.md:
- Fix description: "replay in production-like sandboxed environments"
(not "replay as sandboxes")
- Fix body: "capture socket-level application traffic" instead of
"intercept network packets" (packets are L3, sockets are L4+)
what-is-a-keploy-ebpf.md:
- Fix description: "capture socket-level network I/O via kernel hooks"
instead of "intercept network packets at the socket level"
what-is-keploy.md:
- Fix: "kernel socket layer (syscall-level network I/O)" instead of
"kernel network layer" to avoid L3/OSI confusion
docusaurus.config.js:
- Fix softwareHelp URL: https://keploy.io/docs/ (matches actual
url + baseUrl config) instead of https://docs.keploy.io
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* fix: resolve 2 copilot review comments (round 2)
static/robots.txt:
- Move Bytespider block before User-agent:* to ensure first-match-wins
crawlers don't skip the specific block
docusaurus.config.js:
- Change operatingSystem from ["Linux","macOS","Windows"] to "Linux"
since macOS/Windows require Lima/WSL/Docker (not native support)
- Add clarification in description about macOS/Windows requirements
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* feat: Phase 2 GEO/AEO — enrich docs schemas and llms.txt
docusaurus.config.js:
- Add AggregateRating to SoftwareApplication (Gartner 4.6/5, 11 ratings)
- Add foundingDate, knowsAbout, award to Organization schema
- Add Gartner, G2, Capterra review URLs to sameAs
static/llms.txt:
- Rewrite from 44 to 72 lines with comprehensive coverage
- Add awards, quickstart guides by language, cloud integrations,
contributing section, and expanded core concepts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* fix: resolve 8 copilot review comments on PR #819
static/llms.txt:
- Fix 7 broken URLs to match actual Docusaurus doc routes
(use frontmatter id-based slugs, not file paths)
docusaurus.config.js:
- Change AggregateRating values from strings to numbers
for Google Rich Results validation compliance
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* fix: resolve 7 copilot comments on PR #819 (round 2)
static/llms.txt:
- Fix eBPF doc URL to match page id (what-is-keploy-ebpf)
- Fix Supported Languages description to match actual page content
- Add doc links to Use Cases section for discoverability
- Remove hardcoded metrics (stars/installs) that go stale
- Replace Slack invite URL with stable contribution guide link
docusaurus.config.js:
- Change foundingDate to ISO-8601 format (2021-01-01)
- Remove aggregateRating — no visible on-page rating to match
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* fix: resolve 3 copilot comments on PR #819 (round 3)
static/llms.txt:
- Fix quickstart descriptions to match actual sample app content
- Fix Rust description (GraphQL+MongoDB, not Actix Web)
- Rename "Slack Community" to "Community & Contributing" since
link points to contribution guide, not Slack directly
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* feat: Phase 3 SEO — glossary titles, freshness signals, noindex old versions
Task 68 — Rewrite 10 glossary page titles for CTR optimization:
- "Idempotency" → "What is Idempotency in REST APIs? Complete Guide"
- "Black Box Testing" → "What is Black Box Testing? Types & Examples"
- Plus 8 more glossary pages with question-format titles
- Added 140-155 char meta descriptions to all 10 pages
Task 22 — Enable showLastUpdateTime and showLastUpdateAuthor:
- Freshness signals for AI citation and search ranking
Task 4 — Noindex deprecated doc versions (v1.0.0, v2.0.0):
- Added Disallow rules in robots.txt
- Added X-Robots-Tag noindex headers in netlify.toml
- Prevents duplicate content from old versions consuming crawl budget
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
* fix: GSC audit — descriptions, redirects, titles, breadcrumbs, headers
- Added descriptions to 51 docs pages missing them in v4.0.0
- Standardized keyword: -> keywords: across 37 files
- Fixed 16 duplicate page titles to be unique
- Removed breadcrumb microdata, keeping only JSON-LD
- Added OG image and standardized Organization logo
- Added security headers to netlify.toml
- Added soft 404 redirects (vercel.json + _redirects + client-redirect)
- Added Docusaurus client redirect for /keploy-explained/faq
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: align descriptions and H1s with frontmatter titles per Copilot review
Update generic "What is API testing" descriptions in test-run-reports.md
and test-generate.md to match their actual page titles. Sync in-page H1
headings with frontmatter titles in installation.md, unit-testing-faq.md,
and integration-testing-faq.md.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: align H1 headings with frontmatter titles per Copilot review
For 5 pages, changed the in-page H1 to match the frontmatter title
exactly (unit-test-architecture, api-test-architecture,
integrations-vscode, integrations-pr-agent, test-generate).
For 2 pages with embedded InstallationGuide components
(server/installation, quickstart/samples-node-mongo), added
hide_title: true to prevent duplicate H1 rendering.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: add 'linux' and 'env' to Vale vocabulary
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* ci: add IndexNow submission for changed docs after deploy
Submits only the docs URLs whose markdown files changed in the push
to Bing IndexNow after S3 deploy. Skips if no docs content changed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: remove webpackbar override causing ProgressPlugin build failure
webpackbar 6.0.1 passes invalid options (name, color, reporters) to
webpack 5.97.1's ProgressPlugin. Removing it from dependencies and
overrides lets Docusaurus use its own compatible version.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: address all 9 Copilot review comments on IndexNow step
- Upgrade actions/checkout@v2 → v4 (comment 1)
- Use built sitemap instead of git diff file mapping (comments 2-6)
Avoids unreliable path→URL mapping due to frontmatter id/slug,
versioned doc prefixes, and index page edge cases
- Move IndexNow key to secret with hardcoded fallback (comments 7-8)
- Replace ::warning:: with descriptive log + response body (comment 9)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: allow crawling of docs v1.0.0 and v2.0.0
Remove Disallow rules from robots.txt and noindex headers from
netlify.toml for old doc versions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: make IndexNow step truly non-blocking
Remove set -e and add continue-on-error so grep/jq/curl failures
don't block the deploy pipeline.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: correct quickstart URLs in llms.txt, remove URL cap in IndexNow
- Fix Language Guides URLs to use actual frontmatter ids (golang-filter,
java-springboot-filter, javascript-filter, python-filter)
- Remove head -100 limit — submit all sitemap URLs to IndexNow
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
* fix: use case-insensitive patterns for linux/env in Vale vocabulary
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
---------
Signed-off-by: Neha Gupta <gneha21[at]yahoo>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
Signed-off-by: Neha Gupta <gneha21@yahoo.in>
Co-authored-by: Neha Gupta <gneha21[at]yahoo>
Co-authored-by: slayerjain <shubhamkjain@outlook.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 2287f9d commit 4c68cc0
5 files changed
Lines changed: 56 additions & 14 deletions
File tree
- .github/workflows
- static
- vale_styles/config/vocabularies/Base
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | 12 | | |
23 | 13 | | |
24 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | 28 | | |
30 | 29 | | |
31 | 30 | | |
| |||
76 | 75 | | |
77 | 76 | | |
78 | 77 | | |
79 | | - | |
80 | 78 | | |
81 | 79 | | |
82 | 80 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
38 | 46 | | |
39 | 47 | | |
40 | 48 | | |
| |||
54 | 62 | | |
55 | 63 | | |
56 | 64 | | |
| 65 | + | |
57 | 66 | | |
58 | 67 | | |
59 | 68 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
0 commit comments