# GEO + SEO for small shops: what actually moves the needle

> The five SEO + GEO changes that move real traffic for a small shop. No tooling, no agency, no subscription. Just the structural choices that get you cited.

- URL: https://www.agentskillpacks.com/blog/geo-seo-for-small-shops-what-moves-the-needle
- Author: İsmail Günaydın
- Published: 2026-04-14
- Updated: 2026-09-19

## Quick answer

For a small indie shop, five things move real traffic: a passage-quotable writing structure (40-60 word answer blocks under every H2), JSON-LD on every page (Product, Article, FAQPage, Person), a working llms.txt and an AI-crawler-friendly robots.txt, an author Person entity with real sameAs links, and three to ten cornerstone posts that answer your buyer's exact questions. Skip everything else until those five are done.

Most small-shop SEO advice in 2026 is still SEO advice from 2022 with "AI" pasted into the headline. This is the actual short list of changes that move traffic for a small site, ranked by impact.

## 1. How do you write passages AI engines can quote?

The single highest-leverage change for both SEO and GEO is to **structure your prose as a sequence of self-contained passages**, each capable of standing alone as a 40 to 60-word answer to a question.

The 40-60 word range is my own rule of thumb, not a study result. The closest research is the [GEO paper from Princeton, Georgia Tech, the Allen Institute for AI, and IIT Delhi](https://arxiv.org/abs/2311.09735) (KDD 2024). The authors built GEO-bench, a benchmark of 10,000 queries, and tested rewrites like adding statistics, quotations, and cited sources. The best methods lifted visibility in generative engine responses **by up to 40%**, with larger gains for sources ranked lower.

What "structured" actually means in practice:

- Every major heading starts with a one-line answer: "X is...", "X refers to...", "X means..."
- The 40-60 words right after that heading are self-sufficient. A reader who lands there with zero context can understand it.
- Specific facts inside the passage: a year, a percentage, a named entity, a number.

Bad example (a real one from a startup blog I will not name):

> If you've ever wondered why some websites load faster than others, the answer might surprise you. There's this amazing technology that has been around for a while now. It's changed the way we think about web performance.

Good example (same topic, restructured):

> Content delivery networks (CDNs) are distributed server systems that cache and serve web content from locations geographically close to end users. A CDN reduces latency by 50-70% on average by serving assets from edge servers rather than a single origin server. The three largest CDN providers in 2025 are Cloudflare (serving approximately 20% of all websites), Amazon CloudFront, and Akamai Technologies.

The second one is 58 words. It defines the term. It has three specific facts. ChatGPT will quote that one. The first one is unquotable. That is the entire difference.

## 2. Which JSON-LD does each page type need?

JSON-LD is structured data embedded in a script tag that tells search and AI engines exactly what a page is: a Product, an Article, a Person, an FAQPage. Every page should carry the schema matching its type. The work is unglamorous, and it has the best cost-to-impact ratio of anything on this list.

For ToolGenX, every page type carries its own schema:

| Page type         | Schemas                                                                    |
| ----------------- | -------------------------------------------------------------------------- |
| Home + every page | `Organization` + `WebSite` (with SearchAction)                             |
| Product page      | `Product` + `Offer` + `FAQPage` + `BreadcrumbList`                         |
| Blog post         | `Article` + `Speakable` + `FAQPage` + `Person` (author) + `BreadcrumbList` |
| About page        | `AboutPage` + `Person` (full entity with `sameAs`) + `BreadcrumbList`      |

All of it is JSON-LD inside `<script type="application/ld+json">` tags. Google's [structured data docs](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data) recommend JSON-LD, and the AI search crawlers all parse it.

The mistake almost everyone makes is treating JSON-LD as a checkbox: "I added Article schema, done." The actual value comes from:

- **Accurate `dateModified` and `datePublished`** that update when content changes.
- **`sameAs` arrays on Person and Organization** linking to your real social profiles.
- **`@id` URIs** that are stable so AI engines can resolve identity across pages.
- **`FAQPage` entries from real questions buyers ask**, not invented ones.

If you are not sure how your schema looks, [Google's Rich Results Test](https://search.google.com/test/rich-results) will tell you in 30 seconds. If it does not validate, AI engines will be even less forgiving.

## 3. Which AI crawlers should robots.txt allow?

Making AI crawlers welcome means explicitly allowing GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended, CCBot, and Applebot-Extended in robots.txt. A default robots.txt either allows everything, which already covers AI crawlers, or blocks some of them, which can make a shop invisible to AI search without anyone noticing. There is no neutral setting.

For a small shop that wants to be cited in AI answers, **explicitly allow** the major AI crawlers in robots.txt:

```
User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: CCBot
Allow: /

User-agent: Applebot-Extended
Allow: /
```

Two distinctions matter:

- Blocking `Google-Extended` stops Gemini from training on your content but, per [Google's crawler docs](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers), does **not** affect inclusion in Google Search (AI Overviews come from the regular `Googlebot` crawl).
- Blocking `GPTBot` stops OpenAI from training but does **not** remove you from ChatGPT search. [OpenAI's bot docs](https://developers.openai.com/api/docs/bots) say `OAI-SearchBot` surfaces sites in ChatGPT search answers, and `ChatGPT-User` fetches pages when a user asks. Each setting is independent.

Most small shops accidentally block themselves from one or both surfaces with a copy-pasted robots.txt. Check yours.

## 4. Is an `llms.txt` file worth shipping?

The [`llms.txt` spec](https://llmstxt.org) is a markdown file at the root of your site that gives AI crawlers a curated tour: who you are, what you sell, where to find things, your policies. Adoption is mixed but climbing. Anthropic publishes one for its own docs; Google has not committed publicly.

It takes about ten minutes to write. The version I shipped is at [agentskillpacks.com/llms.txt](/llms.txt) and it covers:

- One-line site description
- Founder identity and contact
- Categorized product list with prices and one-line summaries
- Blog topic areas
- Refund and privacy policies
- A short Q&A section addressing the most common questions an AI assistant would ask

The downside risk of shipping `llms.txt` is zero (no crawler is going to penalize you for having it). The upside is that AI assistants citing your site can pull from a clean, curated source instead of inferring everything from HTML.

## 5. Real author entity, real social presence

A real author entity means a named human with a verifiable public footprint: a byline, an about page, a Person schema with sameAs links. Google's quality rater guidelines [added the extra E for Experience in December 2022](https://developers.google.com/search/blog/2022/12/google-raters-guidelines-e-e-a-t), and raters are told to look for who created the content and why they are credible. AI search engines weigh author credibility too, because their answers carry liability.

For a small shop, this means **one person, named, with a real social footprint**:

- Page byline links to an `/about` page with full author bio.
- About page has a `Person` JSON-LD schema with `sameAs` array pointing to LinkedIn, X, YouTube, Medium, and any other real profiles.
- The same person actually posts on at least one of those platforms.
- Author photo is real, not generated.

For ToolGenX, that person is me. The [`Person` schema](/about) on the About page lists 16 `sameAs` URLs. The blog byline links back. The chain is closed.

The reason this matters: when ChatGPT or Perplexity considers whether to quote a passage, the author entity is one of the trust signals it weighs. A passage by "Admin" with no further information is worth less than the same passage by a named person with a public track record.

## What to skip

The tactics a small shop can safely skip include keyword density tuning, internal link maximization, 800-row long-tail spreadsheets, daily publishing, and manual citation chasing. Modern search is semantic and a small shop has 10 to 30 pages, so most rituals from the big-site SEO playbook cost hours and move almost nothing.

Five things people obsess about that move much less for a small shop:

1. **Keyword density and TF-IDF tuning.** Modern search is semantic. Write naturally about the topic and stop counting words.
2. **Internal link maximization.** Three to five relevant internal links per page is enough. Cramming twenty in does not help.
3. **Long-tail keyword spreadsheets with 800 rows.** A small shop has 10-30 pages. Pick the keywords by hand.
4. **Daily content publishing.** Quality + occasional updates beats volume + abandonment.
5. **Manual citation chasing.** Build content that gets cited because it is the best answer, then let the citations happen.

## A weekend GEO sprint for a 10-page shop

A weekend GEO sprint is ten focused hours that take a 10-page shop through the full checklist. Saturday covers the page audit and rewriting the top three pages; Sunday covers llms.txt, robots.txt, the sitemap, and the author Person entity. No tooling and no subscription, just the structural fixes in priority order.

If you have a small site live today and want to apply this, here is the sequence in order:

- **Saturday morning (2 hours):** Audit every page with a manual checklist — does it have a self-contained 40-60 word passage at the top? Does it have correct JSON-LD? Does the byline link to a real author?
- **Saturday afternoon (3 hours):** Rewrite the top 3 pages to fix the structure. Add Quick Answer blocks. Update the JSON-LD.
- **Sunday morning (2 hours):** Write `llms.txt`, fix `robots.txt`, submit updated `sitemap.xml` to Google Search Console.
- **Sunday afternoon (3 hours):** Build out the author Person entity on About, link `sameAs`, fill in real social URLs.

That is one weekend. By the following week, AI engines will have re-crawled. By month two, you will have data on whether citation share is moving.

I have run this sprint for myself and for two friends. It works.

---

_Tools that automate parts of this exist. [AI Search Visibility Toolkit](/products/ai-search-visibility-toolkit) is the GEO audit + scoring system I use myself; [Structured Data Pro Pack](/products/structured-data-pro-pack) is the JSON-LD library that powers ToolGenX's own schema. Both are products I built to solve my own problems first._

## FAQ

### Is GEO different from regular SEO?

They are siblings, not replacements. SEO optimizes for Google's ranking algorithm. GEO optimizes for the extraction layer that pulls passages from your page into ChatGPT, Perplexity, Gemini, and Google AI Overviews answers. The structural work is mostly the same, the emphasis shifts.

### How long does it take to see GEO results?

Faster than traditional SEO if you have any indexed content. Most AI search engines re-crawl active sites every 24-72 hours, compared to Google's 1-4 weeks for new content. I have seen pages cited in ChatGPT search within a week of publishing.

### Do I need a tool to do GEO?

For one site with under 50 pages, no. A spreadsheet plus a manual pass through each page with a checklist will get you 80% of the value. Tools become useful when you have 500+ pages or when you want to monitor citation share across competitors.

### Is llms.txt actually used?

Adoption is mixed but climbing. Anthropic publishes one for its own docs. Google has not committed publicly. The file costs about 10 minutes to write, weighs around 5 KB, and harms nothing. The downside risk is zero, so just ship it.

### My content is good but I do not rank. What is the first thing to check?

Three things, in order. One, does each page have JSON-LD structured data that matches its type? Two, can a passage from the page stand alone as a 40-60 word answer to a real question? Three, is there a named human author with a real social presence linked from the page? Most small-shop SEO failures live in one of those three.
