/ Case study · SEO, GEO & AEO

devilfruittcg.com

A Spanish-language niche site about the One Piece Card Game, built end to end as a live testbed for a complete organic visibility strategy: classic SEO, answer engine optimisation and generative engine optimisation. Self-hosted infrastructure, a methodology documented before the first article, and affiliate monetisation designed in from the start.

URL
devilfruittcg.com
Market
Spain, then LATAM
Launched
September 2026
Niche
One Piece TCG
Model
Niche affiliate
Role
Strategy and full execution

Where it stands: the site is live. It launched in September 2026 and indexing is now open, after being held back on purpose (noindex) through the whole build. No traffic or ranking claims here yet: the day zero baseline was captured before the first indexation, and measuring honestly against it from the first day is the whole point.

What makes it different

Three layers, one article

SEO, AEO and GEO worked at the same time on the same piece of content, with no duplicated writing and no separate "AI version" of anything.

Architecture by search intent

Four hubs, each answering a different stage of the journey, from learning the rules to deciding what to buy. Product logic, not blog logic.

Schema generated from the DOM

FAQPage markup is built by parsing the visible <details> blocks, so what the reader sees and what the bot reads can never drift apart. No cloaking.

Day zero on the record

The "zero mentions" measurement from before publishing anything exists as data. Most projects never have that baseline because they start measuring too late.

20 prompts, four engines, monthly

ChatGPT, Perplexity Pro, Google AI and Claude, run on the first of every month and logged against the baseline. Visibility inside AI treated as a metric, not a hunch.

Self-hosted, zero SaaS bill

Docker, Nginx Proxy Manager and a Cloudflare Tunnel on my own server. The rank tracker and the GEO tracker run there too. The only recurring cost is the domain.

Interactive components, already live

Annotated card, playmat, pack simulator and colour system. All built and running, teaching the mechanism instead of describing it.

Fast and responsive by construction

Blocksy as a base, then overridden with my own child theme. Native Gutenberg blocks instead of a page builder, WebP and automated compression. Quick on a phone, not just on my desk.

No paid tools, on purpose

A rule I set myself: zero SaaS subscriptions. Every tracker runs on hardware I own. Slower than renting the answer, and that is exactly the point.

  1. Before publishing

    Competitor audit with Screaming Frog, keyword filtering with the reasons written down, and the day zero GEO baseline captured.

  2. Build

    Architecture by search intent, custom child theme, interactive components and the automatic schema. noindex on the whole time.

  3. September 2026

    Launch. Indexing opened and the first wave of content went live, with tracking already running rather than set up afterwards.

  4. From month one

    The 20-prompt battery across four engines every month, plus rank tracking, measured against a baseline that already exists.

A real niche, built like a product

devilfruittcg.com is not an unstructured blog or a training exercise. It is designed as an editorial product: intentional content architecture, a custom child theme with interactive components, and a positioning strategy meant to work both in Google and in the generative answer engines that are reshaping how people find information.

It runs as a real affiliate project and as a living case study at the same time, which is exactly the kind of work I offer as a service.

I set myself one rule before starting: no paid tools. Rank tracking, GEO tracking, audits and automation all run on hardware I own. Buying a subscription would have been faster, and that is precisely why I did not. The goal was to learn the technical side from the root, understanding what every piece does instead of renting the answer.

3positioning layers: SEO, AEO and GEO
4content hubs, one search intent each
0€in paid SaaS tools, the stack is my own
D-0tracking running before the first indexation

An SEO, GEO and AEO architecture case for a collecting niche: content that an LLM can cite (direct answers, schema generated from the DOM), interactive components used as link assets, and a design system built to stand out in a market full of generic templates. All of it verifiable in production, with no invented data left unmarked.

Structure by intent, not by topic

Every section attacks a different type of search and answers a different stage of the customer journey. It is not a blog, it is a site laid out with product logic.

/como-jugar/Informational
Basic rules
Reading a card
Interactive playmat
/decks-y-meta/Informational and commercial
Tier list
Recommended starters
Meta by set
/coleccionismo/Navigational and transactional
Rarities and prices
Active sets
Cardmarket and TCGplayer
/articulos/Editorial hub
Accessories
Card value
Buying and selling

Editorial interlinking, not forced: each article links to the next logical piece in the journey (basic rules, how to play, reading a card, collecting, decks) cited in running text instead of generic "related posts" boxes. Clean permalinks (/%postname%/, no dates) so the content does not look stale in the SERP.

SEO, AEO and GEO: three layers, one piece of content

Most niche sites optimise for Google only. This one is built to rank on three fronts with the same article, without duplicated work.

One article

Google results Has to rank for the query in the first place.
Answer boxes Has to be quotable in 40 to 60 self-contained words.
AI answers Has to be worth citing as the source of the mechanism.
SEO

Silo architecture and keywords with a filter

  • Audit of four competitors with Screaming Frog before publishing a single line.
  • Every keyword passes three filters: transactional intent, weak Spanish-language competition and an experience advantage of my own. Anything that fails one is dropped, with the reason written down.
  • Audit finding: Reddit ranks top 5 for all six core keywords, which is a direct signal to work the GEO layer.
  • noindex through the build, so the site was not indexed until the content was complete. A deliberate decision, not an oversight. Lifted at launch.
AEO

Extractable structure for answer engines

  • A "quick answer" block at the top of every article: 40 to 60 self-contained words answering the question in the title, the format ChatGPT, Perplexity and Google AI Overviews actually quote.
  • FAQPage schema generated automatically from the visible HTML, parsing <details><summary> in functions.php. No cloaking, and a single source of truth between what the user sees and what the bot reads.
  • Semantic comparison tables (rarities, set prefixes, card types), the format an LLM extracts best for questions like "what does OP17-046 mean".
  • Deliberate bold density over concrete data points rather than whole sentences, as an extraction signal for snippets.
  • H2s written as natural questions, matching how people actually ask an AI.
GEO

Measuring visibility inside generative engines

  • Monthly tracking protocol: a battery of 20 prompts run against ChatGPT, Perplexity Pro, Google AI and Claude on the first of each month, logged in Google Sheets.
  • Day zero on the record: the "zero mentions" result from before anything was published exists as data. Most projects never have that baseline because they start measuring too late. Here the history starts before the first indexation.
  • Community presence (Reddit, forums, Spanish TCG groups) as a GEO pillar, since those are the same sources the AI cites.
  • EXIF authorship metadata on every original image plus ImageObject schema, so the domain travels with the picture when it gets shared.

Link assets, not just content

All of these are built and running on the live site. To stand apart from the generic affiliate sites in the niche, they teach the mechanism instead of listing facts, which is what earns natural links and what an LLM can cite as an authority on how something works, not just on the number.

Own infrastructure, SaaS cost near zero

The whole stack is self-hosted or free. The only recurring cost is the domain, around 10€ a year. No Ahrefs, no Semrush, no paid rank tracker.

Infrastructure

  • HP EliteDesk G4, physical server
  • Ubuntu Server LTS
  • Docker and Docker Compose
  • Nginx Proxy Manager
  • Cloudflare Zero Trust Tunnel
  • Tailscale, private access
  • SSL via DNS challenge, Cloudflare API

CMS and theme

  • WordPress
  • Blocksy base, overridden
  • Custom child theme
  • Gutenberg, native blocks, no page builder
  • Rank Math
  • WP-CLI, publishing from the terminal
  • Custom functions.php, automatic schema

Measurement and tracking

  • SerpBear, self-hosted rank tracking
  • OneGlanse, self-hosted GEO tracker
  • Google Search Console
  • Google Sheets, monthly GEO protocol
  • Screaming Frog, competitor audit

Performance and front end

  • Core Web Vitals
  • Responsive, mobile first
  • No page builder overhead
  • WebP and automated compression
  • Lazy loading and asset trimming
  • Custom CSS over theme defaults

Content production

  • ExifTool, authorship metadata on images
  • WebP and automated compression
  • Writing skill with SEO, GEO and AEO structure
  • PowerShell script: rename, upload, WP-CLI
  • PHP and GD, automatic product background cutout

Real experience, verifiable data

Google weighs Experience, Expertise, Authoritativeness and Trustworthiness. Each of the four has a concrete answer in this project.

E-E-A-T signalHow it is implemented
Experience My own collection, tracked in an app. Photos of real cards I own, no stock and no official Bandai art. First-hand data: pull rates and real purchase prices.
Expertise Pull rates and tournament meta figures cited with source and date. An explicit note whenever two sources disagree, editorial honesty instead of inventing consensus. No invented data left unmarked.
Authoritativeness Interactive components that demonstrate deep knowledge of the object itself: the card, the playmat, the mechanics. Linkable assets that earn natural references.
Trustworthiness Affiliate disclosure in the footer from day one. rel="sponsored nofollow" on every commercial link. Prices flagged as approximate. Explicit placeholders wherever a verified figure is still missing.

What this project demonstrates

DimensionWhat it shows
Technical Standing up complete self-hosted infrastructure (Docker, Nginx, Cloudflare Tunnel, SSL) without depending on SaaS hosting, plus an editorial pipeline that goes from my desktop to WordPress in one command.
SEO Content architecture by intent, competitive audit with real data (Screaming Frog and manual SERPs), and keyword research documented with the reasoning behind every choice, the ones taken and the ones dropped.
AEO FAQPage schema generated from the DOM instead of hand-injected. Direct answer blocks. Tables and H2s designed for LLM extraction. Interactive components as citable assets.
GEO A visibility measurement protocol across ChatGPT, Perplexity, Google AI and Claude, with history starting before the first article. Equivalent commercial tools run 100 to 300€ a month, this one runs on my own server.
Design An identity of its own, well away from generic template aesthetics. Colour tokens, typography and reusable components, with automatic background cutout in PHP and GD.
Business A real niche, a real community and monetisation designed in from the start. Tracking exists from before the first publication, so the day zero state is verifiable.

How it looks in production

A visual system built around the niche, not around a stock theme. Same tokens across every hub, so the site reads as one product.

devilfruittcg.com home page

Home

Positioning above the fold and a single entry point into the how-to-play hub.

Decks and meta hub page

Decks and meta

The commercial hub, where informational intent turns into a buying decision.

Collecting hub page

Collecting

Rarities, active sets and marketplaces, the transactional end of the journey.

/ Next

Everything connects.

This project is the clearest version of how I like to work: one system, built deep instead of wide, where the design, the code and the search strategy are the same decision. If that is the kind of work you need, say hi.