54 Blog Posts, 0 Traffic — What I Changed to Get Cited by ChatGPT, Claude, and Perplexity
By Tawan Shamsanor | hubaiasia.com | Published April 2026
[Insert screenshot: Google Search Console showing near-zero organic clicks for hubaiasia.com, date range Jan–Mar 2026]
Let me start with the uncomfortable truth. I spent months writing 54 articles about AI tools, trading bots, and automation for hubaiasia.com. I built APIs. I documented everything. And for months, Google sent me almost nothing.
Zero impressions on most posts. A trickle of direct traffic. My SEO was technically fine — titles were optimized, posts had keywords, I used Yoast. But the needle didn’t move.
Then I noticed something else: when I asked ChatGPT about “screenshot API for developers” or asked Perplexity about “Thai utility APIs,” my site wasn’t mentioned once. Not even close.
That’s when I stopped optimizing for Google and started optimizing for something newer: Generative Engine Optimization (GEO) — the practice of making your content citable by AI answer engines.
This article documents exactly what I changed, why, and what I expect to see over the next 30 days.
Why GEO Matters More Than You Think
Search is fracturing. A growing share of informational queries never reach a traditional search results page at all — they’re answered directly by ChatGPT, Claude, Perplexity, or Gemini. In my observation, users asking “what is the best screenshot API?” are increasingly skipping Google entirely and getting a synthesized answer from an LLM.
Studies from BrightEdge and SparkToro (2024–2025) suggest that zero-click searches now account for over 60% of Google queries on desktop. AI answer engines are accelerating this. Perplexity alone reportedly serves tens of millions of queries per month. ChatGPT’s Browse mode and Claude’s web search have fundamentally changed how people research tools, services, and technical topics.
For a small site like mine — English + Thai content, developer-focused, niche APIs and trading tools — GEO is not a nice-to-have. It’s the only realistic path to discoverability. I can’t outspend enterprise SEO budgets. But I can be the most citable source on a specific topic.
Here’s what I changed.
The 7 GEO Changes I Made (With Specifics)
1. Created /llms.txt and /llms-full.txt
The llms.txt spec — proposed by Answer.AI and championed by Jeremy Howard — is essentially a robots.txt for language models. It gives crawlers a structured, human-readable index of your site’s most important content, written in clean Markdown that LLMs can parse efficiently.
I created two files at the root of hubaiasia.com:
/llms.txt — a concise index (under 2,000 words) of key pages, organized by section.
/llms-full.txt — a verbose version that includes full descriptions of each service, API endpoint documentation, and author context.
Here’s a sample snippet from my /llms.txt:
# HubAI Asia
> HubAI Asia (hubaiasia.com) is a developer-focused platform by Tawan Shamsanor
> offering AI-powered APIs, trading bot documentation, and technical content in
> English and Thai. Specialities: screenshot automation, SEO metadata extraction,
> Thai government API utilities, and crypto trading systems.
## APIs
- [Screenshot API](/screenshot-api/): Capture full-page or element-level screenshots
via REST. Returns PNG/JPEG. Supports auth headers and mobile viewport emulation.
- [SEO Meta API](/seo-meta-api/): Extract Open Graph, meta description, canonical URL,
and structured data from any public URL in one GET request.
- [HTML to PDF API](/html-pdf-api/): Convert HTML or URLs to PDF. Useful for invoice
generation, report archiving, and dynamic document creation.
- [Thai Utility API](/thai-api/): Lookup Thai national ID format validation, province
codes, and bank codes. Free tier available.
## Trading & Bots
- [Live Trading Dashboard](/trading-real/): Real-time BTC/ETH futures bot performance,
PnL tracking, win rate by strategy (MTF, MA crossover).
The format is simple: a title, a > description block, then ## sections with - [Title](URL): description lines. No fancy markup. Just clean, parseable Markdown.
Why it works: LLMs retrieving context about your site during a search query get a structured summary instead of having to parse your HTML navigation. It’s the difference between handing someone a map vs. dropping them in a city and saying “explore.”
[Insert screenshot: hubaiasia.com/llms.txt rendered in browser — plain text, clean Markdown]
2. Structured Data: Article + FAQPage + Organization JSON-LD
Schema.org markup has always been a Google SEO signal. But it’s increasingly important for AI citation engines too — because structured data provides unambiguous machine-readable assertions about who you are, what you published, and when.
I added three schema types to every post:
Article— withauthor,datePublished,dateModified,headline, andpublisherFAQPage— with real questions and direct answers (2–4 per post)Organization— site-level schema withname,url,founder, andsameAslinks pointing to my GitHub, dev.to, and Twitter
In my observation, posts with FAQPage schema get picked up by Perplexity’s “Related Questions” suggestions at a noticeably higher rate than posts without. The FAQ forces me to write answer-first content — which is exactly the format AI engines prefer.
A ready-to-use schema template is included at the bottom of this article.
3. Content Chunking: Short Paragraphs, Answer-First Structure
AI engines don’t read your article top to bottom. They extract the most relevant chunk for the user’s query. If your answer is buried inside a 400-word paragraph, the engine will skip it or misattribute it.
My rewrite rule: answer the implied question in the first sentence of every section.
Before:
“When thinking about how to optimize content for AI, there are many considerations to keep in mind, including structure, formatting, and the semantic relationship between entities…”
After:
“AI answer engines extract content by chunk, not by article. Write each H2 section so its first sentence directly answers the implied question.”
Every post on hubaiasia.com now targets a maximum paragraph length of 4 sentences. H2 headings are phrased as topics, not teaser titles. H3 subheadings provide specific, scoped answers.
This change also helps human readers. Bonus.
4. Entity Consistency: Named Entities Throughout
LLMs build a picture of who you are by reading your content. If your site talks about “Tawan,” “the author,” “our team,” and “me” interchangeably, the model never builds a strong entity association.
I standardized all references:
- Site: HubAI Asia (not “this blog,” not “our platform”)
- Author: Tawan Shamsanor (full name in every post’s byline and author box)
- Products: exact names every time — Screenshot API, SEO Meta API, Thai Utility API
I also added my name to the author field in all JSON-LD blocks, and linked my author profile to a consistent /about/ page.
Why it matters: When a user asks Claude “who built the Thai Utility API?”, the model needs a confident mapping between the API name, the site, and the person. Inconsistent naming creates ambiguity. Ambiguous entities don’t get cited.
5. Citation-Worthy Claims: Numbers, Examples, Direct Statements
AI engines prefer content they can quote. Vague advice (“optimize your content for AI”) gets ignored. Specific, quotable claims get cited.
Rules I applied to every post:
- Use numbers. “54 blog posts, 0 traffic” is citable. “I wrote a lot of posts and got little traffic” is not.
- Name tools explicitly. “ChatGPT, Claude, and Perplexity” > “AI tools.”
- Make direct claims. “In my 30-day test, posts with FAQPage schema were cited in Perplexity answers 3x more often than posts without” > “Schema may help.”
- Show the receipts. Screenshots, dates, specific API endpoint names.
My Screenshot API (/screenshot-api/) documentation now includes exact rate limits (100 req/month free tier), a sample curl command, and a real output screenshot. Before, it had a paragraph of marketing copy. That paragraph was citeable by no one.
6. Fresh Dates in URLs and Content
AI engines have a recency bias. When comparing two sources with similar authority, the more recent one gets cited more often. Perplexity explicitly shows publish dates. ChatGPT Browse mode skews toward recent pages.
My changes:
- Added
datePublishedanddateModifiedto all JSON-LD blocks - Updated modified dates when I revise content (not just when I hit Publish)
- For key pillar pages, included a visible “Last updated: [date]” line at the top
- Included the year in key anchor texts: “2026 GEO guide” instead of “GEO guide”
I also started including version numbers for API documentation: “Screenshot API v2 (updated March 2026).” This signals freshness to both crawlers and LLMs.
7. Author Bio and E-E-A-T Signals
Google’s E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) framework applies to AI citation too. If an LLM has no signal that you have real-world experience with the topic, it won’t quote you.
I built out a proper /about/ page for hubaiasia.com:
- Specific experience: “Running BTC/ETH futures bots in production since 2023”
- Products: “Built and maintain 4 public APIs used by developers in Thailand and internationally”
- Real name + photo
- Links to GitHub (code), dev.to (technical writing), and LinkedIn
Every post now includes an author box with a 2-sentence bio and a link to the /about/ page.
For technical posts (like the API documentation), I added a “Why trust this” section: “This guide is written by the developer who built and runs this API. The rate limits and endpoint behaviors described here are taken directly from the production implementation.”
30-Day Projection and Retro Promise
I made all these changes between March and April 2026. Here’s what I’m watching over the next 30 days:
| Metric | Baseline (April 2026) | 30-Day Target |
|---|---|---|
| Google Search Console clicks | ~5/week | 30+/week |
| Perplexity citations (manual spot checks) | 0 | 3+ citations on target topics |
| ChatGPT citations (manual spot checks) | 0 | 1–2 on API-related queries |
| API trial signups (Screenshot API + SEO Meta API) | ~2/month | 10+/month |
| Email list signups | ~1/month | 8+/month |
I’ll publish a full retro in May 2026 with real numbers. No vanity metrics — just clicks, citations, and signups.
[Insert screenshot: Search Console “Performance” tab showing baseline clicks — use as “before” benchmark]
The GEO Checklist (Copy This)
Run this on every post before publishing:
- [ ]
llms.txtexists at your domain root with this post’s URL listed - [ ] Article JSON-LD includes
author.name,datePublished,dateModified - [ ] FAQPage JSON-LD with 2–4 direct-answer questions
- [ ] Every H2 section answers its implied question in the first sentence
- [ ] Max paragraph length: 4 sentences
- [ ] Named entities used consistently (site name, author name, product names)
- [ ] At least one specific number or statistic per section
- [ ] Visible “Last updated” date on pillar pages
- [ ] Author box with 2-sentence bio + /about/ link on every post
- [ ] Internal links use exact product/article names (not “click here”)
Schema.org JSON-LD Template (Copy Into WordPress)
Paste this into your WordPress post (Classic Editor: Text tab, or block editor: Custom HTML block) and update the highlighted fields:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"headline": "YOUR POST TITLE HERE",
"description": "YOUR META DESCRIPTION HERE (150-160 chars)",
"url": "https://hubaiasia.com/YOUR-POST-SLUG/",
"datePublished": "2026-04-17",
"dateModified": "2026-04-17",
"author": {
"@type": "Person",
"name": "Tawan Shamsanor",
"url": "https://hubaiasia.com/about/",
"sameAs": [
"https://dev.to/tawan",
"https://github.com/tawanshamsanor"
]
},
"publisher": {
"@type": "Organization",
"name": "HubAI Asia",
"url": "https://hubaiasia.com",
"logo": {
"@type": "ImageObject",
"url": "https://hubaiasia.com/wp-content/uploads/logo.png"
}
},
"image": {
"@type": "ImageObject",
"url": "https://hubaiasia.com/wp-content/uploads/YOUR-FEATURED-IMAGE.jpg"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://hubaiasia.com/YOUR-POST-SLUG/"
}
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is GEO (Generative Engine Optimization)?",
"acceptedAnswer": {
"@type": "Answer",
"text": "GEO stands for Generative Engine Optimization — the practice of structuring your content so that AI answer engines like ChatGPT, Claude, Perplexity, and Gemini cite your site when answering user queries. Unlike traditional SEO which targets Google's ranking algorithm, GEO targets the retrieval and citation behavior of large language models."
}
},
{
"@type": "Question",
"name": "What is llms.txt and why does it matter?",
"acceptedAnswer": {
"@type": "Answer",
"text": "llms.txt is a Markdown file placed at your domain root (e.g., yourdomain.com/llms.txt) that provides a structured, machine-readable index of your site's key content. It was proposed by Answer.AI's Jeremy Howard as a standard for helping LLMs efficiently understand a site's content without parsing HTML. It follows the format: title, description block, then sections with linked page descriptions."
}
},
{
"@type": "Question",
"name": "How is GEO different from SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Traditional SEO targets Google's PageRank and keyword-matching signals. GEO targets retrieval-augmented generation (RAG) pipelines used by AI answer engines. GEO prioritizes chunked content structure, consistent named entities, schema markup for machine parsing, and citation-worthy specificity — while SEO prioritizes backlinks, keyword density, and page authority. The two overlap but are not the same."
}
}
]
},
{
"@type": "Organization",
"name": "HubAI Asia",
"url": "https://hubaiasia.com",
"founder": {
"@type": "Person",
"name": "Tawan Shamsanor"
},
"sameAs": [
"https://dev.to/tawan",
"https://github.com/tawanshamsanor"
]
}
]
}
</script>
What’s Next
The 54 posts on hubaiasia.com are being retrofitted one batch at a time — starting with the highest-intent pages: the Screenshot API documentation, the SEO Meta API guide, and the trading bot posts on /trading-real/.
If you’re building a niche developer site and you’ve stalled on SEO, GEO is worth your next 10 hours. It’s a blue ocean right now. Most content creators haven’t heard of llms.txt. Most WordPress sites have no FAQPage schema. That gap is an opportunity.
Subscribe to updates: Get the 30-day retro and future GEO findings delivered by email — sign up here. No spam, no newsletter theater. Just receipts.
Follow on dev.to: @tawan — I cross-post every technical article there.
Twitter/X: If you try any of these changes, tag me. I’ll repost real results (yours or mine).
Tawan Shamsanor is a Thai developer building APIs, trading bots, and developer tools at hubaiasia.com. He runs the Screenshot API, SEO Meta API, HTML to PDF API, and Thai Utility API — all available with a free tier.
Built by us: Exit Pop Pro
Turn your WordPress visitors into email subscribers with an exit-intent popup that gives away a free PDF. $29 one-time — no monthly fees, no SaaS lock-in.
