Skip to content

seo: comprehensive SEO/GEO audit — HowTo schemas, Speakable, DefinedTermSet, freshness#42

Open
elninad wants to merge 1 commit into
masterfrom
claude/festive-cannon-5ha2A
Open

seo: comprehensive SEO/GEO audit — HowTo schemas, Speakable, DefinedTermSet, freshness#42
elninad wants to merge 1 commit into
masterfrom
claude/festive-cannon-5ha2A

Conversation

@elninad
Copy link
Copy Markdown
Owner

@elninad elninad commented May 23, 2026

Summary

Full SEO + GEO audit of ninadmalvankar.com. The site already had strong foundations (Person schema, 42-item FAQPage, llms.txt, robots.txt with 40+ AI crawler rules). This PR adds the genuinely missing pieces identified in the audit.

What was missing / what this fixes

Finding Fix
No HowTo schema — highest GEO value schema type for instructional content Added 3 HowTo schemas (npm registry setup, CloudFront+WAF config, Principal Engineer career path)
No Speakable specification on articles — skips voice search and LLM oral citations Added SpeakableSpecification to all 4 article schemas
No audience property on articles — reduces GEO targeting precision Added audience to all 4 article schemas
No DefinedTermSet — LLMs lack structured vocab for Ninad's expertise domain Added DefinedTermSet with 5 defined terms (Staff+ Engineering, Platform Engineering, Cloud-Native Architecture, Leadership Without Authority, Fintech Platform Engineering)
WebSite schema missing maintainer, copyrightNotice, accessibilityFeature Added all three + accessMode and accessModeSufficient
Articles lacked mainEntityOfPage → entity graph not fully connected Added mainEntityOfPage pointing to #webpage on all articles
3 high-value FAQ Q&As missing for technical instructional queries Added npm registry setup, CloudFront+WAF config, and email contact — in both HTML microdata and JSON-LD FAQPage schema
All freshness signals stale (2026-05-22) Updated across all 7 files: index.html, sitemap.xml, llms.txt, llms-full.txt, ai.txt, humans.txt, feed.xml

Known issue (out of scope)

The og:image is an SVG file. Facebook and LinkedIn do not render SVG OG images — shares show no preview image. Fixing requires generating a 1200×630 PNG. Flagging for a follow-up.

Audit results

  • JSON-LD @graph expanded: 17 → 21 nodes
  • All 15 automated audit checks: PASS
  • Zero stale 2026-05-22 date signals remaining in index.html
  • JSON-LD validated as parseable JSON before commit

Test plan

  • Paste URL into Google Rich Results Test — should show Person, FAQPage, HowTo, Article rich results
  • Validate JSON-LD at Schema.org Validator — 21 nodes, all valid
  • Check sitemap.xml renders as valid XML
  • Verify no JS console errors in browser
  • Merge to master to trigger GitHub Pages deployment

https://claude.ai/code/session_01DYu6angVjmCmMskzKiuTe8


Generated by Claude Code

…ermSet, freshness (#42)

Audit findings and improvements:

SEO/GEO Structural improvements:
- Add 3 HowTo JSON-LD schemas (highest GEO citation value for instructional content):
  • How to Set Up a Private npm Registry Using Nexus Repository Manager
  • How to Configure AWS CloudFront CDN with AWS WAF for High-Traffic Apps
  • How to Transition from Senior Engineer to Principal Engineer
- Add DefinedTermSet schema defining Ninad's 5 core expertise domains
  (Staff+ Engineering, Platform Engineering, Cloud-Native Architecture,
  Leadership Without Authority, Fintech Platform Engineering)
- Add Speakable specification to all 4 article schemas (voice search + LLM oral citation)
- Add audience property to all 4 article schemas (GEO targeting signal)
- Add mainEntityOfPage to all article schemas (entity graph reinforcement)
- Add author name to all article keywords arrays (entity association)
- Add sameAs Wikipedia links to article about[] entries

WebSite schema improvements:
- Add maintainer, copyrightNotice, accessibilityFeature, accessMode,
  accessModeSufficient, and audience properties

FAQ improvements (3 new Q&As in both HTML and JSON-LD):
- How to set up a private npm registry (technical instructional content)
- How to configure AWS CloudFront CDN with WAF (from Upstox production work)
- Ninad Malvankar's email address (contact/entity signal)

Freshness signals updated across all 7 files:
- index.html: DCTERMS.modified, citation_publication_date, og:updated_time,
  last-modified, dateModified, lastReviewed, footer date
- sitemap.xml: all 5 <lastmod> entries
- llms.txt, llms-full.txt, ai.txt, humans.txt, feed.xml: Last updated dates

Result: JSON-LD @graph expanded from 17 to 21 nodes; all 15 audit checks pass;
zero stale 2026-05-22 date signals remain in the page.

https://claude.ai/code/session_01DYu6angVjmCmMskzKiuTe8
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