chore(seo): SEO + AI-SEO audit — schema enrichment, stale data, AI Overview triggers#50
Merged
johnnichev merged 1 commit intomainfrom Apr 7, 2026
Merged
Conversation
… + AI Overview triggers Comprehensive SEO and AI-SEO pass against the landing page and docs. Verified with Playwright: 4 valid JSON-LD schemas (SoftwareApplication with 28 props, Organization, HowTo, FAQPage with 13 questions), 1 H1, 13 H2s, canonical correct, OG image PNG referenced. ## Stale data fixes (high impact for AI search citations) - llms.txt: "3344 tests" → "4612 tests at 95% coverage" - llms.txt: "76 examples" → "88 examples" - llms.txt: dropped em-dash on line 5 (consistent with the clarify rule from PR #48) - llms.txt: replaced em-dashes inside the code-comment block with -> arrows (still legible, no AI-tell) - SoftwareApplication.featureList: "24 pre-built tools" → "33 across 9 categories" - SoftwareApplication.featureList: every entry expanded with specific numbers (15 guardrails, 8 builder nodes, 7 templates, 4612 tests, 95% coverage) ## SoftwareApplication schema enrichment Added properties that AI crawlers and Google rich results reward: - applicationSubCategory: "AI Agent Framework" - softwareRequirements: explicit Python version list - installUrl - datePublished + dateModified (freshness signal) - inLanguage - isAccessibleForFree: true - publisher (NichevLabs) - maintainer (Person with email + GitHub URL) - image + screenshot (both point to og-image.png) - offers.availability + offers.url - keywords (broader than the meta keywords) ## New: Organization schema NichevLabs Organization JSON-LD with logo, founder, sameAs links to GitHub and PyPI. Helps establish entity identity in Google's knowledge graph and gives AI crawlers a clean entity to cite. ## New: HowTo schema (AI Overview trigger) How-to JSON-LD for "install Selectools and run your first AI agent in Python" with 3 explicit steps (install, create file, run). Each step has position, name, text, and url linking to the Quickstart section. AI Overviews and Google rich results frequently elevate HowTo schemas for "how to..." queries. ## FAQPage schema additions (5 → 13 questions) Added 4 new questions targeting common AI Overview triggers that the existing 9 didn't cover: - "Is Selectools free?" — direct yes/no AI Overview hit - "How does Selectools compare to CrewAI?" - "How does Selectools compare to AutoGen?" - "What is the difference between Selectools and LangGraph?" These match the literal phrasings users type into ChatGPT, Perplexity, and Google AI Overview when researching agent frameworks. ## docs/index.md: meta description Added a frontmatter `description:` field so MkDocs Material renders a per-page meta description tag on the docs landing page (was missing). ## docs/CLAUDE.md: search exclusion (partial) Added MkDocs frontmatter `search.exclude: true` to keep the internal agent-instruction file out of the docs search index. NOTE: this does NOT remove it from the sitemap.xml — full sitemap exclusion requires either the `mkdocs-exclude` plugin (out of scope for this PR) or moving docs/CLAUDE.md outside the docs/ directory entirely. The search exclusion is the 80% fix. ## mkdocs.yml: not_in_nav Added CLAUDE.md and RELEASE_GUIDE.md to the not_in_nav list so the build no longer warns about them being in docs/ but not in the nav.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two-track audit and fix pass: traditional SEO and AI-SEO (AEO/GEO/LLMO). The landing page already had a strong foundation; this PR ships the high-impact items: stale data, missing schema properties, and additions targeting AI Overview triggers.
Verified outcome
After this PR, the landing page has:
All verified via Playwright querying `document.querySelectorAll('script[type="application/ld+json"]')`.
Stale data fixed
SoftwareApplication schema enrichment
Added: applicationSubCategory, softwareRequirements, installUrl, datePublished, dateModified, inLanguage, isAccessibleForFree, publisher, maintainer (Person with email + GitHub URL), image, screenshot, offers.availability, offers.url, keywords.
New: Organization schema
NichevLabs Organization JSON-LD with logo, founder, sameAs links to GitHub and PyPI. Establishes entity identity in Google's knowledge graph.
New: HowTo schema (AI Overview trigger)
3-step HowTo: install Selectools and run your first AI agent. Each step has position, name, text, and url. AI Overviews and Google rich results frequently elevate HowTo schemas for "how to..." queries.
FAQPage schema: 9 questions to 13
Added 4 questions targeting AI Overview triggers:
Docs SEO
Deferred (out of scope)
Test plan