People write about GEO. I implemented it. And then I turned it into a tarot deck.
Over the past three months I implemented every pillar of Generative Engine Optimization on this blog. Not with plugins. Not with WordPress. With vanilla PHP, MariaDB and an obsession with understanding how AI models decide what to cite and what to ignore.
What I discovered is that GEO is not an abstract concept. It is roughly 22 concrete technical decisions. And 22 happens to be the same number as the major arcana in tarot. The metaphor was too perfect to ignore.
That is how GEO Tarot was born: an interactive visual guide where each card represents a pillar of GEO. But this article is not about the tool. It is about what is behind each card.
The data that changed everything
Before building anything, I researched. I asked three different AI models (ChatGPT, Gemini and Perplexity) what data existed about schema markup and AI citations. This is what I found:
81% of pages cited by AI engines use schema markup, and JSON-LD is the dominant format. Pages with validated JSON-LD are 20% to 40% more likely to appear in AI-generated responses. Content with structured schema is 3 to 4 times more likely to be cited by ChatGPT or Perplexity. And 50% of content cited by AI is less than 13 weeks old.
Those numbers convinced me that writing good content is not enough. You have to structure it for machines that reason.
Card V. The Hierophant: llms.txt
The file at your domain root that tells AI models who you are, what you write about and which pages matter. The equivalent of robots.txt for machines that generate answers.
I implemented it as a static file at the domain root. It includes an author description, the topics the blog covers, the free tools and the five strongest articles in English. Every time I publish something important, I update the file.
Then I built a free llms.txt generator so anyone could create their own. That tool alone is already generating organic traffic.
Card IV. The Emperor: Knowledge Graph
JSON-LD connecting your articles with relatedLink, marking topics with about, and detecting tools with mentions. Your blog stops being a list of pages and becomes a knowledge network that AI models navigate.
This was the most complex implementation. I rewrote the entire schema system using a unified @graph architecture with five entities connected by persistent @id references: WebSite, Organization, Person, WebPage and BlogPosting.
I asked ChatGPT to audit the resulting schema. The first time it scored 8.7 out of 10. After implementing its suggestions (adding a WebPage node, citation, dateCreated, abstract), it went up to 9.1. Gemini confirmed the @graph architecture was correct. Perplexity said the schema was better than the majority of sites that appear in AI-citation studies.
Card III. The Empress: citable content
Direct, specific statements that a model can extract without additional context. Not writing there are many ways but to do X you need Y because Z.
Perplexity confirmed that the first 200 characters of a page are critical for an AI to decide whether to extract content. That changed how I write. Every post starts with a direct statement, not a narrative introduction.
The excerpt field of each article is automatically mapped as abstract in the JSON-LD. LLMs read the abstract first to decide whether to process the rest of the page.
Card VI. The Lovers: SEO + GEO
Everything you do for GEO improves your SEO. More specific and citable content also ranks better on Google. The Knowledge Graph gives crawlers more context. Crossposts generate backlinks.
In three months I went from 26 indexed pages to 48. Search Console impressions grow every week. The keyword llm txt is at position 4. The Claude tutorial at position 6.8. And the llms.txt generator started ranking in its first week.
GEO does not replace SEO. It amplifies it.
Card VII. The Chariot: distribution
If your content only exists on your blog, LLMs have a single reference. If the same author appears on HackerNoon, Dev.to, Hashnode, Medium and Quora, the model builds an authority profile.
Today I have active presence on seven platforms with backlinks. Every crosspost carries a canonical URL pointing to my site. Quora has nine answers with links. Dev.to has three articles. HackerNoon two. Medium two. Hashnode two. Linking domains went from 7 to 21 in three months.
Card VIII. Strength: consistency
LLMs prioritize sources that update frequently. A blog that publishes once a month is a dead reference. A blog that publishes every three days is a living source.
52 posts in three months. Every three days, without exception. It is exhausting but the data from Amsive backs it up: 50% of content cited by AI is less than 13 weeks old. If you stop publishing, AI models stop citing you.
Card XVII. The Star: first ChatGPT citation
You ask ChatGPT about your topic and it cites you. It did not cite someone with more followers or more backlinks. It cited you because your content was more specific, more structured, more citable.
This is the moment that justifies all the work. You cannot measure it with Google Analytics. There is no dashboard. You can only verify manually by asking different AI models about your topics. When your name appears in the response, you know the structure works.
Card XXI. The World: complete GEO stack
llms.txt at the root. Automatic Knowledge Graph on every post. Citable content with experiential evidence. Distributed presence across authority platforms. Canonical URLs. Contextual inner-linking. Consistency. Everything connected. Everything working.
This is not theory. It is a blog running vanilla PHP that implements every GEO pillar and documents the results in real time.
How the tarot idea was born
While documenting each concept, I realized GEO has roughly 22 fundamental pillars. The number reminded me of the major arcana. The metaphor fit naturally: The Fool is publishing without strategy. The Hierophant is llms.txt. The Emperor is the Knowledge Graph. The Devil is generic AI content. The Star is your first citation.
Each card is an animated SVG using the same generative identity this blog uses for post images. The back shows a cube grid pattern generated from a deterministic hash. The front has an abstract geometric illustration with the concept name. Click any card and it flips with a CSS 3D animation.
I built it with vanilla PHP, CSS and JavaScript. No frameworks. No external libraries. Every illustration is hand-coded SVG geometry. The tool is trilingual (Spanish, English, Japanese) and every card that corresponds to a published blog post links directly to it.
The next SEO battlefield is not rankings. It is citations.