<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ookyet.eth</title>
    <description>The latest articles on DEV Community by ookyet.eth (@ookyet).</description>
    <link>https://dev.to/ookyet</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3548812%2Fb511354c-b1da-42f2-8449-5653a38bbe7b.png</url>
      <title>DEV Community: ookyet.eth</title>
      <link>https://dev.to/ookyet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ookyet"/>
    <language>en</language>
    <item>
      <title>I Retired My "85% Knowledge Panel Probability" Claim. Then Google Built the Entity Anyway.</title>
      <dc:creator>ookyet.eth</dc:creator>
      <pubDate>Wed, 08 Jul 2026 03:48:44 +0000</pubDate>
      <link>https://dev.to/ookyet/i-retired-my-85-knowledge-panel-probability-claim-then-google-built-the-entity-anyway-3e5o</link>
      <guid>https://dev.to/ookyet/i-retired-my-85-knowledge-panel-probability-claim-then-google-built-the-entity-anyway-3e5o</guid>
      <description>&lt;p&gt;Nine months ago I wrote &lt;a href="https://dev.to/ookyet/i-made-my-ens-domain-searchable-on-google-85-knowledge-panel-probability-2d5"&gt;a post on here&lt;/a&gt; claiming my ENS identity architecture had reached "85% Knowledge Panel trigger probability."&lt;/p&gt;

&lt;p&gt;Two things happened since.&lt;/p&gt;

&lt;p&gt;Google's Knowledge Graph actually minted an entity node for me. And I learned that the 85% number was fiction — mine.&lt;/p&gt;

&lt;p&gt;This is the honest retrospective.&lt;/p&gt;

&lt;h2&gt;
  
  
  The timeline, with receipts
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;What happened&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aug 2025&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://ookyet.com/" rel="noopener noreferrer"&gt;ookyet.com&lt;/a&gt; first indexed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oct 2025&lt;/td&gt;
&lt;td&gt;Entity markup shipped: Person &lt;code&gt;@graph&lt;/code&gt;, Dentity verification, ENS identifiers. The "85%" post&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jun 2026&lt;/td&gt;
&lt;td&gt;Search Console turned red: &lt;code&gt;Q&amp;amp;A&lt;/code&gt; errors, &lt;code&gt;Profile page: Invalid object type&lt;/code&gt;. Cleanup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jun 28, 2026&lt;/td&gt;
&lt;td&gt;Fixed markup deployed. Then: hands off&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jul 2, 2026&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Knowledge Graph Search API returns a machine-minted Person node for &lt;code&gt;ookyet&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jul 7, 2026&lt;/td&gt;
&lt;td&gt;Search Console fully green: ProfilePage valid, indexed pages up, zero 404s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Still no Knowledge Panel. Keep reading — that part matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Google actually built
&lt;/h2&gt;

&lt;p&gt;You can reproduce this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://kgsearch.googleapis.com/v1/entities:search?query=ookyet&amp;amp;limit=10&amp;amp;key=YOUR_API_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"result"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"@id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"kg:/g/11z806my44"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Qifeng Huang"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Person"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three details in that tiny response taught me more than anything I shipped in 2025.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The &lt;code&gt;/g/&lt;/code&gt; MID is machine-minted.&lt;/strong&gt; You can't register one, buy one, or submit one. Google's entity reconciliation creates it when enough independent sources agree that a person exists. This is the mechanical prerequisite for a Knowledge Panel — the entity has to exist in the graph before anything can be displayed about it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The node's name is my real name, not my handle.&lt;/strong&gt; My site declares &lt;code&gt;name: "ookyet"&lt;/code&gt;. The node says "Qifeng Huang" — pulled from the high-authority anchors (LinkedIn, ORCID), not from my self-declaration. Third-party corroboration outweighs anything you say about yourself. Expected, and honestly a relief: the graph is working as designed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Knowledge Graph holds 8 distinct people named Qifeng Huang.&lt;/strong&gt; Query any of them by real name and you get a crowded namespace. Query &lt;code&gt;ookyet&lt;/code&gt; and exactly one node comes back — mine. A coined handle turns out to be a cross-namespace disambiguation key: every external signal converts cleanly because Google never has to ask "which one?"&lt;/p&gt;

&lt;h2&gt;
  
  
  What I got wrong in the last post
&lt;/h2&gt;

&lt;p&gt;The percentage. There is no such metric.&lt;/p&gt;

&lt;p&gt;Google does not expose a "Knowledge Panel probability," a candidate state, or a trigger score. Anyone quoting you a percentage — including 2025 me — computed it from their own weighted checklist and dressed it up as measurement. I've since rewritten the &lt;a href="https://github.com/ookyet/web3-identity-seo" rel="noopener noreferrer"&gt;open-source tooling&lt;/a&gt; to call the number what it is: a signal-completeness checklist of things &lt;em&gt;you&lt;/em&gt; maintain. Saturating it does not trigger anything.&lt;/p&gt;

&lt;p&gt;The mindset behind the number was the deeper bug. I treated the Knowledge Panel as something you &lt;em&gt;trigger&lt;/em&gt; with sufficiently clever markup. It isn't. It's a notability decision Google makes about independent third-party coverage, and markup cannot force it. What markup can do — all it can do — is make sure that when signals arrive, they reconcile into one clean entity instead of a fog of ambiguity.&lt;/p&gt;

&lt;p&gt;And some of that clever markup actively hurt. The June 2026 Search Console cleanup retired, with prejudice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;FAQPage&lt;/code&gt; / &lt;code&gt;HowTo&lt;/code&gt;&lt;/strong&gt; — Google removed those rich results; emitting them now just generates errors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A synthetic "Knowledge Panel candidate" node&lt;/strong&gt; — markup that described my ambitions instead of the page. Google's policy is blunt: markup must reflect visible content&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON-LD for press coverage that was still "planned"&lt;/strong&gt; — asserting articles that didn't exist yet. That's fabricated notability evidence, pointed at the exact system I was trying to earn trust from&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;SearchAction&lt;/code&gt;&lt;/strong&gt; pointing at a search page my site doesn't have&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of those felt like optimization when I shipped it. Every one was debt.&lt;/p&gt;

&lt;h2&gt;
  
  
  What survived
&lt;/h2&gt;

&lt;p&gt;The boring parts. The parts that are just schema.org used correctly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One Person entity, referenced everywhere.&lt;/strong&gt; A single &lt;code&gt;@id&lt;/code&gt;, with every page — ProfilePage, articles, breadcrumbs — pointing at it. Handle as &lt;code&gt;name&lt;/code&gt;, ENS as &lt;code&gt;alternateName&lt;/code&gt; + &lt;code&gt;identifier&lt;/code&gt;, never two competing self-descriptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One ProfilePage, with a typed &lt;code&gt;mainEntity&lt;/code&gt;.&lt;/strong&gt; Not a bare &lt;code&gt;@id&lt;/code&gt; reference — Search Console rejects that with "Invalid object type." Carry &lt;code&gt;@type&lt;/code&gt; and &lt;code&gt;name&lt;/code&gt; explicitly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;sameAs&lt;/code&gt; quality over quantity.&lt;/strong&gt; Live, identity-consistent profiles only. LinkedIn and ORCID matter disproportionately — they're the reconciliation sources Google actually reads, and unlike Wikipedia or Wikidata they're attainable without notability. Don't force wiki entries; a deleted self-created item is a negative signal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix once, then freeze.&lt;/strong&gt; The June 28 fix went from deploy to fully green Search Console in 9 days — with zero tweaks in between. Every markup edit resets Google's re-evaluation clock. The discipline is the feature: patience is doing work while you aren't.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the node looks like today
&lt;/h2&gt;

&lt;p&gt;Sparse. No &lt;code&gt;detailedDescription&lt;/code&gt;, no &lt;code&gt;image&lt;/code&gt;, no &lt;code&gt;url&lt;/code&gt;, resultScore around 0.0001. A newborn entity.&lt;/p&gt;

&lt;p&gt;I check it weekly (daily is pointless — same-day queries return byte-identical results), reading the fields in the order they typically grow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;url&lt;/code&gt;&lt;/strong&gt; — Google binding my site to the node as its entity home. Driven by corroboration already shipped; this is the milestone I'm actually watching&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;image&lt;/code&gt;&lt;/strong&gt; — the reconciled avatar&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;resultScore&lt;/code&gt;&lt;/strong&gt; — rising an order of magnitude would be a display-confidence precursor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;detailedDescription&lt;/code&gt;&lt;/strong&gt; — sourced from encyclopedic references, so for a niche entity: probably never. It isn't a blocker for the rest&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No change week over week is the normal case. Confidence for a small entity compounds like interest — source quality times time times stability — and none of those factors respond to impatience.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest scoreboard
&lt;/h2&gt;

&lt;p&gt;Real, today: position 1 for my name, sitelinks, an image pack, AI Overview describing me as an entity with my real name and ENS resolved together, and a persistent MID in the Knowledge Graph.&lt;/p&gt;

&lt;p&gt;Not real, today: a Knowledge Panel. Possibly not ever — Google may simply never grant panels to entities at my scale, and no architecture changes that.&lt;/p&gt;

&lt;p&gt;I used to frame the panel as the prize. I now think the prize is already collected: an identity that machines resolve unambiguously, backed by &lt;a href="https://ookyet.com/proof/" rel="noopener noreferrer"&gt;evidence anyone can verify&lt;/a&gt;. The panel, if it comes, is a bonus rendered on top of work that already paid out.&lt;/p&gt;

&lt;p&gt;Everything above is documented in the open-source repo — including the retired strategies, kept as documented failures with dates, because the failures are the useful part: &lt;a href="https://github.com/ookyet/web3-identity-seo" rel="noopener noreferrer"&gt;github.com/ookyet/web3-identity-seo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'll write the next chapter when the node grows a &lt;code&gt;url&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>ens</category>
      <category>seo</category>
      <category>google</category>
    </item>
    <item>
      <title>I Made My ENS Domain Searchable on Google (85% Knowledge Panel Probability)</title>
      <dc:creator>ookyet.eth</dc:creator>
      <pubDate>Mon, 06 Oct 2025 12:58:17 +0000</pubDate>
      <link>https://dev.to/ookyet/i-made-my-ens-domain-searchable-on-google-85-knowledge-panel-probability-2d5</link>
      <guid>https://dev.to/ookyet/i-made-my-ens-domain-searchable-on-google-85-knowledge-panel-probability-2d5</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;**Update (July 2026): The "85% probability" framing in this title is retired — no such metric exists; Knowledge Panel display is notability-driven and cannot be scored. What did happen: Google's Knowledge Graph minted a persistent entity node for this identity. The honest 11-month retrospective — including exactly what this post got wrong — is here:&lt;a href="https://dev.to/ookyet/i-retired-my-85-knowledge-panel-probability-claim-then-google-built-the-entity-anyway-3e5o"&gt; I Retired My "85% Knowledge Panel Probability" Claim. Then Google Built the Entity Anyway.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  I Made My ENS Domain Searchable on Google
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;: ENS domains are invisible to Google. Search for "ookyet.eth" and you get nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Solution&lt;/strong&gt;: I built a 5-layer architecture that achieved &lt;strong&gt;85% Knowledge Panel trigger probability&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here's how.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;With 4 billion Google users, making Web3 identities discoverable is critical for adoption. But blockchain and traditional search engines speak different languages.&lt;/p&gt;

&lt;p&gt;My ENS domain &lt;code&gt;ookyet.eth&lt;/code&gt; was invisible to Google despite being:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Verified on-chain since 2023&lt;/li&gt;
&lt;li&gt;✅ Linked to 7+ social platforms&lt;/li&gt;
&lt;li&gt;✅ Backed by NFT avatar (Lil Ghost #761)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google saw: &lt;strong&gt;nothing&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 5-Layer Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Layer 1: Indexing Acceleration
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Google crawls can take 7-30 days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Google Indexing API&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;google&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;googleapis&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;submitToGoogle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;auth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;google&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GoogleAuth&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;keyFile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;service-account.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;scopes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://www.googleapis.com/auth/indexing&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;indexing&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;google&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;indexing&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;v3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;auth&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;indexing&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;urlNotifications&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;publish&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;requestBody&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;URL_UPDATED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// 24-48 hour indexing vs 30 days&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;submitToGoogle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://ookyet.com/proof/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;: Went from 30-day wait to 48-hour indexing.&lt;/p&gt;




&lt;h3&gt;
  
  
  Layer 2: Entity Markup
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Google doesn't understand blockchain identities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Schema.org structured data&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"application/ld+json"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@context&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://schema.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Person&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://ookyet.com/#Author&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ookyet.eth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;identifier&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;PropertyValue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;propertyID&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ens_domain&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;value&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ookyet.eth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;PropertyValue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;propertyID&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethereum_address&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;value&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0x1691E606553805D771e411bF5c6e395D16916f99&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hasCredential&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;EducationalOccupationalCredential&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dentity Verified Human&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key&lt;/strong&gt;: The &lt;code&gt;hasCredential&lt;/code&gt; property tells Google this is a &lt;strong&gt;verified human&lt;/strong&gt;, not an AI-generated identity.&lt;/p&gt;




&lt;h3&gt;
  
  
  Layer 3: Proof of Humanness
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Google's spam filters block entities without human verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: &lt;a href="https://dentity.com" rel="noopener noreferrer"&gt;Dentity&lt;/a&gt; Unique Human KYC&lt;/p&gt;

&lt;p&gt;Dentity verification includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Government ID verification&lt;/li&gt;
&lt;li&gt;✅ Biometric liveness check&lt;/li&gt;
&lt;li&gt;✅ Anti-Sybil database (ensures uniqueness)&lt;/li&gt;
&lt;li&gt;✅ 10/10 verification checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why this matters&lt;/strong&gt;: AI can create infinite identities. Proving you're a &lt;strong&gt;unique human&lt;/strong&gt; is the strongest anti-spam signal.&lt;/p&gt;

&lt;p&gt;My Dentity profile: &lt;a href="https://app.dentity.com/ookyet.eth" rel="noopener noreferrer"&gt;https://app.dentity.com/ookyet.eth&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Layer 4: Active Trigger Interfaces
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Even with perfect markup, Google needs explicit "Knowledge Panel candidate" signals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Active trigger interfaces&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Primary Entity Declaration --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"application/ld+json"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@context&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://schema.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ProfilePage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://ookyet.com/#KnowledgePanelCandidate&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mainEntity&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Person&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://ookyet.com/#Author&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;identifier&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;PropertyValue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;propertyID&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;knowledge_graph_eligible&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;value&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;verified_entity&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}]&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- FAQ Schema for AI Overviews --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"application/ld+json"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@context&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://schema.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;FAQPage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mainEntity&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Question&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Who is ookyet.eth?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;acceptedAnswer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Answer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ookyet.eth is a verifiably human Web3 identity...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;knowledge_graph_eligible&lt;/code&gt; flag is a Google internal property that marks entities as KP candidates.&lt;/p&gt;




&lt;h3&gt;
  
  
  Layer 5: Cross-Platform Validation
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Google validates entities across multiple sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: 7+ unified platforms&lt;/p&gt;

&lt;p&gt;All using consistent identity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ENS: ookyet.eth&lt;/li&gt;
&lt;li&gt;Twitter: &lt;a class="mentioned-user" href="https://dev.to/ookyet"&gt;@ookyet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a class="mentioned-user" href="https://dev.to/ookyet"&gt;@ookyet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Instagram: &lt;a class="mentioned-user" href="https://dev.to/ookyet"&gt;@ookyet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;[+ more platforms]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Linked via Schema.org &lt;code&gt;sameAs&lt;/code&gt; property:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Person"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sameAs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"https://twitter.com/ookyet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/ookyet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"https://instagram.com/ookyet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"https://app.ens.domains/name/ookyet.eth"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;: 99% cross-source consistency score.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;After implementing all 5 layers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google Indexing&lt;/td&gt;
&lt;td&gt;30 days&lt;/td&gt;
&lt;td&gt;48 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge Panel Probability&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;85%+&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entity Confidence&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;96%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rich Results&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FAQ in SERP&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Live proof&lt;/strong&gt;: &lt;a href="https://ookyet.com/proof/" rel="noopener noreferrer"&gt;https://ookyet.com/proof/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Verify
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Check Entity Recognition
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://kgsearch.googleapis.com/v1/entities:search?query=ookyet.eth&amp;amp;key=YOUR_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Test Rich Results
&lt;/h3&gt;

&lt;p&gt;Visit: &lt;a href="https://search.google.com/test/rich-results?url=https://ookyet.com/" rel="noopener noreferrer"&gt;https://search.google.com/test/rich-results?url=https://ookyet.com/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitor Progress
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Daily KG audit script&lt;/span&gt;
./scripts/kg-audit.sh

&lt;span class="c"&gt;# Outputs:&lt;/span&gt;
&lt;span class="c"&gt;# - Knowledge Graph API status&lt;/span&gt;
&lt;span class="c"&gt;# - SERP feature detection&lt;/span&gt;
&lt;span class="c"&gt;# - Entity score calculation&lt;/span&gt;
&lt;span class="c"&gt;# - Timeline tracking&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Critical Insight
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Google doesn't care about blockchain proofs. Google cares about structured data it can understand.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My mistake was thinking "ENS ownership on-chain" would be enough. It wasn't.&lt;/p&gt;

&lt;p&gt;What worked:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Translating blockchain proofs&lt;/strong&gt; → Schema.org properties&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adding human verification&lt;/strong&gt; → Dentity KYC (anti-spam signal)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active trigger interfaces&lt;/strong&gt; → Explicit KP candidate markers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform consistency&lt;/strong&gt; → 7+ unified identities&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;ENS domain (register at &lt;a href="https://app.ens.domains" rel="noopener noreferrer"&gt;app.ens.domains&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Dentity verification (&lt;a href="https://dentity.com" rel="noopener noreferrer"&gt;dentity.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Website with Schema.org markup&lt;/li&gt;
&lt;li&gt;Google Cloud service account&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Implementation
&lt;/h3&gt;

&lt;p&gt;Full architecture on GitHub:&lt;br&gt;
&lt;a href="https://github.com/ookyet/web3-identity-seo" rel="noopener noreferrer"&gt;https://github.com/ookyet/web3-identity-seo&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;My Complete Proof Hub&lt;/strong&gt;: &lt;a href="https://ookyet.com/proof/" rel="noopener noreferrer"&gt;ookyet.com/proof&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Deep-Dive&lt;/strong&gt;: &lt;a href="https://ookyet.com/blog/identity-through-ens/" rel="noopener noreferrer"&gt;Identity Through ENS blog post&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ENS Verification&lt;/strong&gt;: &lt;a href="https://app.ens.domains/name/ookyet.eth" rel="noopener noreferrer"&gt;app.ens.domains/name/ookyet.eth&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dentity Profile&lt;/strong&gt;: &lt;a href="https://app.dentity.com/ookyet.eth" rel="noopener noreferrer"&gt;app.dentity.com/ookyet.eth&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;I'm currently at &lt;strong&gt;85% Knowledge Panel trigger probability&lt;/strong&gt;. The final 15% comes from:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;External authority sources&lt;/strong&gt; (GitHub, Dev.to, ResearchGate citations)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time distribution&lt;/strong&gt; (signals spread over 7+ days)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platform diversity&lt;/strong&gt; (technical + community + academic)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I'll share when the Knowledge Panel goes live.&lt;/p&gt;




&lt;h2&gt;
  
  
  Questions?
&lt;/h2&gt;

&lt;p&gt;Drop them in the comments. Happy to share more technical details about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Indexing API setup&lt;/li&gt;
&lt;li&gt;Schema.org optimization&lt;/li&gt;
&lt;li&gt;Dentity verification process&lt;/li&gt;
&lt;li&gt;Knowledge Graph algorithms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's make Web3 identities discoverable to 4 billion Google users. 🚀&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with: ENS, Dentity, Schema.org, Google Indexing API&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Architecture: Open-source on GitHub&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Live Example: ookyet.eth&lt;/em&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>ens</category>
      <category>google</category>
      <category>seo</category>
    </item>
  </channel>
</rss>
