DEV Community

Cover image for I'm Learning SEO by Doing It on My Own Portfolio — Roast My Setup
Muhammad Azmi
Muhammad Azmi

Posted on

I'm Learning SEO by Doing It on My Own Portfolio — Roast My Setup

I've spent the last few weeks going down the SEO rabbit hole — not reading about it, actually implementing it on my own site and watching what happens in Search Console. Figured I'd write up what I did and where I'm stuck, and ask people who actually know this stuff to tell me what I got wrong.

Site: https://muhammadazmi.web.id

What I've done so far

Per-locale metadata, not just translation. Site has en and id versions. Each route generates its own canonical + full hreflang map (including x-default), rather than slapping lang="id" on a copy-pasted English page:

alternates: {
  canonical,
  languages: {
    ...Object.fromEntries(locales.map((l) => [l, localePath(l, routeKey)])),
    "x-default": localePath("en", routeKey),
  },
}
Enter fullscreen mode Exit fullscreen mode

Structured data. Person and WebSite JSON-LD on every page, hoping it helps Google understand this is a person's portfolio, not a random landing page, and maybe someday earns a knowledge panel.

A directive I'm not sure matters yet: I added Content-Signal: search=yes, ai-input=yes, ai-train=yes to robots.txt — the new-ish contentsignals.org proposal for telling crawlers what you're okay with beyond just "can you index this." Genuinely don't know if any crawler respects it yet. Added it mostly out of curiosity because cloudflare ai ready site is recommended it.

Sitemap with per-URL alternate languages, dynamic via generateSitemap, one entry per route × locale.

What's NOT working

I'm ranking around position 12+ for my own name ("muhammad azmi") — which should be the easiest query to win. Turns out it's a fairly common Indonesian name, so I'm competing against other real people's LinkedIn/GitHub profiles, not just weak content. Makes me think the technical stuff I did above is necessary-but-not-sufficient — the actual gap is backlinks and domain authority, not markup.

What I want to ask you all

  1. Is per-locale hreflang actually worth the complexity for a portfolio this small, or is that over-engineering for a 4-page site?
  2. Anyone using the Content-Signal directive for real — is it worth the line, or premature?
  3. For a personal name query specifically — beyond backlinks, is there anything structurally different you'd do vs. a normal keyword-targeted page?
  4. If you have 2 minutes, an honest first-impression of the site (either language) would help more than anything I could read in a guide.

Not trying to fish for compliments — I'd rather hear "this part is wrong" than "looks good."

I'm new here, don't be kind. Cheers :)

Top comments (0)