SEO, AEO, and GEO for a Modern Developer Portfolio
Search is still search. Answers want a blunt sentence under a question heading. Generative engines want dense facts tied to a person. I wire all three on purpose.

Article focus
3 layers
Search, answers, AI discoverability
Photo by Mikhail Nilov on Pexels
Key takeaways
- Write titles and descriptions a hiring manager could repeat without checking your site.
- Structured data should mirror reality and link entities, not hype.
- Match headings to real questions people type, then answer in one tight sentence first.
What do SEO, AEO, and GEO mean for a dev portfolio in plain English?
SEO helps Google rank you, AEO helps a snippet answer a question in one glance, GEO helps AI systems cite you instead of inventing a bio.
I used to think “just ship good work” was enough. It is not, because bots do not infer nuance the way humans do.
SEO still cares about crawl paths, canonicals, and topical relevance. AEO cares about question-shaped headings and a blunt answer up front. GEO cares about dense, attributable facts tied to a stable identity.
You can ignore any one of them and still have a nice site. You will just wonder why your name never shows up where people actually look.
How do I use structured data without sounding fake?
Model what you can defend in an interview, wire Person to Service and posts with shared `@id`s, and skip fields you cannot prove.
JSON-LD is not a wish list. If I would not say it out loud to a client, I do not stuff it into schema.
Clean Person + WebSite + Service graphs make it obvious who owns the expertise. BlogPosting and Project nodes should point back so a crawler can walk the graph in one hop.
Why do boring URLs beat clever paths?
Consistent canonicals, locales, and trailing-slash rules stack trust; messy redirects and mixed patterns leak that signal.
I would rather have `/en/services` than `/magic/✨-hire-me` because every analytics tool, sitemap, and AI crawler has to reconcile the same string twice.
When everything agrees, each page reinforces one entity story. When URLs fight, even great copy sounds uncertain.
- Pick one canonical style and enforce it in code, not in your head.
- Link services, projects, and posts in both directions.
- Keep blog posts tied to proof (numbers, stack, repo links).
How should a blog post tie back to what I sell?
Each post should chase one intent, show one measurable outcome, and link to the service or case study that proves I can repeat it.
Random essays do not compound. I write when I can point to something I shipped, broke, or measured.
If I talk about React performance, I link the audit offer and mention the framework version and metric. That is the kind of specificity both humans and models latch onto.
How do I connect JSON-LD so crawlers stop guessing?
Give stable `@id` URLs and connect Person, Service, BlogPosting, and Project so each node references the others without ambiguous strings.
Most sites stop at a lonely `Person` block. That is like handing someone your name on a sticky note with no phone number.
json
{
"@context": "https://schema.org",
"@id": "https://yashkapure.com/#person",
"@type": "Person",
"name": "Yash Kapure",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Frontend Engineering Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Next.js Performance Audit"
}
}
]
}
}What still gets portfolios ignored in 2026?
Thin copy, duplicate metadata, orphan pages, and headings that never match how people phrase questions in search.
Search engines got better at spotting fluff. Generative engines simply quote someone else if you never state a fact they can steal cleanly.
- Recycling the same title across similar projects.
- Skipping alt text on meaningful images.
- Broken internal links that strand good posts.
- Locales or sitemaps that disagree with the HTML canonical.
On this site
These pages expand on how I work with teams, what I ship, and how to hire me for the same kind of execution.
Recommended blogs
Continue reading

Improving Next.js Lighthouse Without Killing the Design
How I chase Lighthouse and Core Web Vitals on a real Next.js portfolio without turning the UI into a gray wireframe.
Photo by Pixabay on Pexels
Read article
Shipping React UI Fast Without Making a Mess
The way I structure React and Next.js UI so the team ships fast because the system is obvious, not because we skipped every guardrail.
Photo by Zak Chapman on Pexels
Read article