← Back to blog

Winning the SEO Battle for Richard Frnka · Part 2 of 2

How to Bump Your Page Higher in Search Results (Old vs. New)

Checking in after a week: frnka.net is now ranking second, right behind LinkedIn, when you search “Richard Frnka.” The /blog URL is also landing on the first page, near the bottom. I also updated frnka.github.io to be more of a personal splash page that points straight back to frnka.net — it’s now sitting at #6. Progress.

Google search results for “richard frnka,” showing frnka.net ranking second behind LinkedIn, with frnka.github.io and the frnka.net blog also appearing on the first page

There are a few different ways to claim SEO space here. Roughly, they split into old-school and new-school tactics — and it’s worth actually understanding why each one works, not just doing it because a checklist said to.

The old-school way

This one goes all the way back to the original PageRank algorithm — the thing that made Google’s search results better than everyone else’s in the first place. The core idea: every link from page A to page B is treated as a vote of confidence, and that vote is weighted by how authoritative page A itself is. A link from a page with lots of incoming authority counts for more than a link from an obscure, unlinked page.

The practical version of this for a personal SEO campaign: build a small network of pages you actually control — frnka.net, frnka.github.io, and soon richardfrnka.com — and have them link to each other consistently. Each one reinforces the others. On top of that, structured data (more on that below) ties them together as facts about the same entity, so search engines aren’t just seeing three separate pages that happen to share a name — they’re seeing one connected identity with multiple authoritative touchpoints. That’s exactly the kind of signal that helps Google’s knowledge graph disambiguate this Richard Frnka from a cousin’s DUI appeal or an unrelated Ricky Frnka.

2. Sitemaps

Already done — frnka.net has an XML sitemap (sitemap-index.xml, generated automatically on every build) submitted through Search Console. This is the part that just tells search engines “here is the full list of pages that exist, go crawl them” — necessary, but purely mechanical. It doesn’t earn ranking on its own; it just makes sure nothing gets missed.

3. Other on-page search signals

This is the stuff that actually shapes how a page shows up, not just whether it gets crawled:

  • Title tags and meta descriptions — the blue link text and gray snippet you see in search results. These are hand-written per page here, not auto-generated, specifically so “Richard Frnka” appears in them naturally.
  • Canonical URLs — tell search engines the one true address for a page, so duplicate or near-duplicate URLs don’t split ranking signal across multiple versions of the same content.
  • Open Graph and Twitter card tags — control how a link looks when shared on social media (title, description, preview image). Doesn’t directly move search rank, but better previews mean more clicks when links get shared, which is itself a signal.
  • Structured data (JSON-LD / schema.org) — the big one. Every page on frnka.net now carries machine-readable facts: this is an Organization, founded by a Person named Richard Frnka, with specific links (sameAs) to his other properties. Blog posts carry their own BlogPosting schema with an explicit author. This is the clearest possible signal to a search engine — or an AI system — about who’s who.

The new-school way

1. Google Search Console

Already set up, sitemap submitted, using URL Inspection to request indexing on new posts as they go up instead of waiting to be discovered organically.

2. Social media

LinkedIn and Instagram already show up in results, which is good — it means those profiles carry real authority. The next move is making sure they actively link back to frnka.net instead of just existing independently. Every outbound link from an already-trusted profile is another vote in the network described above.

3. AI-specific signals

Search isn’t just Google anymore — a growing share of “look someone up” traffic runs through AI assistants and AI-generated overviews instead of a traditional results page. A few things matter specifically for that:

  • Structured data does double duty. The same JSON-LD that helps Google disambiguate identity is directly parseable by AI systems doing retrieval — it’s not exclusively a “classic search” tactic.
  • Plain, crawlable HTML matters more, not less. A lot of AI crawlers (and plenty of classic ones) don’t execute JavaScript. This entire site is static-rendered Astro output — no client-side rendering required to see the content — which is exactly the shape AI crawlers handle best.
  • Don’t accidentally block AI bots. robots.txt needs to actually allow crawlers like GPTBot, ClaudeBot, Google-Extended, and PerplexityBot rather than blanket-blocking everything non-Google, which is a common mistake.
  • Consistency beats volume. When an AI system has to reconcile conflicting facts about “Richard Frnka” pulled from multiple sources, the version stated the same way, clearly, across the most sources tends to win out. That’s the whole game here: get the correct facts repeated consistently across enough owned and earned pages that they become the obvious answer.

Next steps in the battle

  1. Buying back richardfrnka.com. I used to own this on Namecheap and let it lapse after getting hired at my corporate job. It’s $14.99/year — cheap enough that there’s no excuse not to scoop it back up and fold it into the network. Updating the operating costs spreadsheet accordingly.
  2. More social backlinks — get LinkedIn, Instagram, and anywhere else pointing back to frnka.net and frnka.github.io directly.
  3. Keep updating frnka.net and frnka.github.io — including favicons and images, specifically chosen to be things worth showing up in image search. Current assets in play: the frnka.net favicon and logo — both due for a pass so they’re actually worth ranking for.

Second place behind LinkedIn after one week isn’t bad. Let’s see where we’re at next check-in.