# SearchMaxx
> SearchMaxx is a done-for-you marketing service that gets software companies named when buyers ask ChatGPT, Claude, Perplexity and Google which product to use. Every day we ship one change to the client's website as a GitHub pull request, a person checks each one, and every Monday the client gets a report with Google Search Console numbers and how often each AI engine named them.
- Founder: Roshan. He took an open-source AI company from 515 to 2,573 Google clicks a day in 12 weeks (February 9 to May 4, 2026); 66% of those clicks came from searches without the brand name.
- Pricing, every plan includes the same work: $1,000 per month, cancel any time; $2,777 once for a 12-week activation (84 changes, guaranteed: if fewer than 84 are sent for approval by the end of week 12, $33 is refunded for each missing change); or $10,000 per year. No setup fee.
- How to start: run the free site check, then email hi@searchmaxx.link with your website and the question your buyers ask AI. We reply the same day. Work needs the marketing site's code on GitHub.
- SearchMaxx does not promise rankings, and does not buy links.
- The SearchMaxx blog publishes guides to AI search and a public experiment growing searchmaxx.link from a new domain, with weekly numbers.
## Pages
- [Home](https://searchmaxx.link/): What SearchMaxx does, case study numbers, pricing and FAQ.
- [Free site check](https://searchmaxx.link/#check): Checks in about 10 seconds whether AI crawlers can read a website: robots.txt, firewall responses, server-rendered text, metadata, structured data and sitemap.
- [Free SEO tools](https://searchmaxx.link/tools): Search performance analysis, query filters, crawl comparisons and live URL checks. No account required.
- [Keyword opportunity finder](https://searchmaxx.link/tools/keyword-opportunities): Review Search Console queries with low click-through rates or average positions just outside the top 10. Local CSV.
- [Traffic loss analyzer](https://searchmaxx.link/tools/traffic-loss): Compare two Search Console exports to see which pages or queries account for the change in clicks per day. Local CSV.
- [Search Console regex builder](https://searchmaxx.link/tools/regex-builder): Build a literal query filter, test it against your searches, and copy a pattern for Search Console. Local query list.
- [SEO change tracker](https://searchmaxx.link/tools/change-tracker): Compare crawl snapshots to find changed titles, descriptions, canonicals, robots directives and page text. Local snapshots.
- [Website launch checklist](https://searchmaxx.link/tools/launch-checklist): Check your site for 23 launch basics: HTTPS redirects, a real 404, share images, robots.txt, sitemap, llms.txt and more. Live site check.
- [Internal link finder](https://searchmaxx.link/tools/internal-links): Find pages in a crawl export that mention your anchor phrase and review the surrounding text. Local CSV.
- [Orphan page finder](https://searchmaxx.link/tools/orphan-pages): Compare known URLs against a crawl and its recorded links to find pages worth investigating. Local URL and crawl exports.
- [SEO migration checker](https://searchmaxx.link/tools/migration-checker): Check old and new URL pairs for redirect problems, unexpected destinations and search directives. Live URL checks.
- [Backlink destination checker](https://searchmaxx.link/tools/backlink-checker): Check the destination URLs in your backlink export for errors, redirect chains and noindex directives. Live URL checks.
- [Blog](https://searchmaxx.link/blog): Guides to getting named in AI search answers, and the public growth experiment.
- [About Roshan](https://searchmaxx.link/blog/about): The founder and author.
## Optional
- [Full text of every post](https://searchmaxx.link/llms-full.txt): All blog posts in Markdown, in one file.
- [RSS feed](https://searchmaxx.link/blog/feed.xml)
---
# The SearchMaxx experiment, day 0: growing a new site in public
URL: https://searchmaxx.link/blog/searchmaxx-experiment-day-0
Published: 2026-10-18
Author: Roshan, founder of SearchMaxx
We sell one thing: getting software companies found when buyers ask ChatGPT, Claude, Perplexity and Google. The fair question from anyone thinking of hiring us is "does it work?" Client results answer part of that. This experiment answers the rest in the open.
searchmaxx.link is a brand-new domain. This post records where it starts. Every week we will publish a short update with the real numbers, including the weeks where nothing moves.
## Where we start
| Measure | October 18, 2026 | Source |
|---|---|---|
| Google clicks a day | 0 | Google Search Console |
| Google impressions a day | 0 | Google Search Console |
| Sites linking to searchmaxx.link | 0 | DataForSEO backlinks index |
| Times AI engines name us | Not measured yet | Our weekly AI answer count |
| Blog posts | 26, including this one | This blog |
The site went live this week. It is a single landing page, a free site check, and this blog.
## What we will do
Only the work we do for clients:
1. **Make the site easy for AI engines to read.** The pages are plain server-rendered HTML. robots.txt lets the AI search crawlers in. Every page has a title, a description and structured data.
2. **Publish one useful post at a time.** Guides to AI search that answer a question someone actually asks, with sources and examples you can check.
3. **Build a free tool people use.** The [site check](https://searchmaxx.link/) tells anyone in about 10 seconds whether AI crawlers can read their site.
4. **Earn links by being worth citing.** Original data, honest case studies, and answers to questions people ask in forums and communities.
## What we will not do
- Buy links, or swap them.
- Publish posts we would not put our name on.
- Report a number we cannot show you the source for.
## What we will measure every week
- **Google clicks and impressions a day**, from Google Search Console.
- **Sites linking to us**, from the DataForSEO backlinks index.
- **How often AI engines name SearchMaxx.** Each week we will ask ChatGPT, Claude and Perplexity the same set of buyer questions, such as "who can get my startup mentioned by ChatGPT?", and count how many answers name us. We will publish the questions and the counts.
A new domain usually takes weeks before Google sends it any traffic, so expect the first few updates to be small. That is part of the record too.
The next update comes out next Sunday. Follow along with the [RSS feed](https://searchmaxx.link/blog/feed.xml).
---
# Case study: 515 to 2,573 Google clicks a day in 12 weeks
URL: https://searchmaxx.link/blog/case-study-5x-google-clicks
Published: 2026-10-17
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
These are real Google Search Console numbers from an open-source AI company we grew between February 9 and May 4, 2026. That is 12 weeks, the same length as our activation plan. We are keeping the company's name private.

## The numbers
| Measure | First two weeks | Last two weeks |
|---|---|---|
| Google clicks a day | 515 | 2,573 |
| Google impressions a day | 32,148 | 112,144 |
- **176,079 clicks** in total over the 12 weeks.
- **66% of clicks in the top 1,000 queries** came from searches that did not include the company's name.
The second number matters most. Clicks from people already searching your name mostly show that your brand is known. Clicks from searches without your name are new people finding you while they look for an answer.
## Where the growth came from
Most of the growth came from pages built for the searches buyers make while they are choosing, for example model leaderboards and "best model for coding" guides. People searching those questions had not heard of the company. They were trying to decide something, and they found a page that helped them decide.
The same pages are the kind AI engines cite, because they answer a specific question directly. When ChatGPT or Perplexity answers "what is the best model for coding?", it looks for a page that compares the options and states a verdict.
## What to take from it
- **Write for the question, not the keyword.** "Best model for coding" is a question with a decision behind it. A page that answers it fully gets both the Google click and the AI citation.
- **Expect impressions first.** Impressions rose before clicks did. When a page starts appearing, it usually takes a few weeks to climb to positions people click.
- **Most of the upside is non-brand.** If most of your clicks today come from your own name, your best growth is in the questions buyers ask before they know you.
We are running the same process on this site in public. [Follow the experiment](https://searchmaxx.link/blog/searchmaxx-experiment-day-0).
---
# AI crawlers don't run JavaScript. Here's how to see what they see
URL: https://searchmaxx.link/blog/ai-crawlers-javascript
Published: 2026-10-16
Author: Roshan, founder of SearchMaxx
Open your site in a browser and you see your product, your pricing and your customers. Many AI crawlers see far less. They download the HTML your server sends and stop there. Anything your JavaScript adds after the page loads never reaches them.
## What the data shows
In December 2024 Vercel and MERJ looked at how AI crawlers behaved across Vercel's network. Their finding: "none of the major AI crawlers currently render JavaScript." That covered OpenAI's crawlers (`OAI-SearchBot`, `ChatGPT-User` and `GPTBot`), Anthropic's `ClaudeBot`, `PerplexityBot`, Meta's crawler and ByteDance's.
ChatGPT's and Claude's crawlers did download JavaScript files. JavaScript made up 11.5% of ChatGPT's requests and 23.8% of Claude's. They did not run it.
Two exceptions: Gemini uses Google's crawling setup, which renders JavaScript the way Googlebot does, and Applebot renders it too. ([Vercel: The rise of the AI crawler](https://vercel.com/blog/the-rise-of-the-ai-crawler))
So a site that needs JavaScript to show its text can do fine in Google and still be invisible to ChatGPT, Claude and Perplexity.
## See your page the way they do
Fetch the page without running anything, strip the tags, and count the words:
```text
curl -s https://yoursite.com/ \
| sed -e 's/
```
Then update those profiles to point back at the new domain, so both sides agree.
## Update every link you control
Google asks you to update internal links, contact sites that link to you where you can, and update your profiles and ad campaigns. Work down this list:
- **Your own site.** Internal links, canonicals, Open Graph URLs, image URLs, and links in your docs and help center.
- **Profiles.** LinkedIn, X, GitHub, YouTube, Crunchbase, and app store listings.
- **Review sites and directories** where you can edit your listing.
- **Partners and integrations.** Marketplace listings and partner directories.
- **Ads, email signatures, and email templates.**
- **Your top backlinks.** Export them from Search Console's Links report and ask the sites that send you the most traffic to update the link.
Every link you change is one redirect a person or crawler no longer has to follow.
## Keep the old domain for years
Google says to keep redirects "generally at least 1 year," and to consider keeping them longer. The Change of Address tool runs for 180 days. Old links on other sites and in old emails will keep pointing at the old domain long after that.
Renew the old domain for several years and turn on auto-renew. Keep a working certificate on it, because an `https` request needs a valid certificate before the server can send the redirect. If the old domain expires, someone else can buy it and get your old links.
## What to watch for 90 days
Google says to "expect temporary fluctuation in site ranking during the move," and that "it can take a few weeks or more" before the new URLs replace the old ones. Larger sites take longer, because Googlebot has to visit every old and new URL at least once.
| When | What to check | Where |
|---|---|---|
| Day 1 | Every old URL returns 301 to the right page. New pages return 200. | `curl` loop above |
| Day 1 | Change of Address accepted. Both sitemaps submitted. | Search Console |
| Week 1 | New-domain pages appear in Page indexing. No surge of 404s or server errors. | Search Console, server logs |
| Weeks 1 to 4 | Old-domain clicks falling, new-domain clicks rising. | Performance report, both properties |
| Weeks 1 to 4 | AI crawlers fetching new URLs with 200s. | Server logs, filtered by user agent |
| Month 2 | Old URLs mostly gone from Google results. Remove the old sitemap. | Search Console |
| Month 3 | Ask ChatGPT, Claude and Perplexity about your product. Note which domain they cite. | The assistants |
| Month 3 | Total clicks back to the pre-move level. | Both properties combined |
Google says that ideally "the traffic on the old site will go down, while on the new site the traffic goes up." Compare the two properties added together against your pre-move numbers, not the new domain alone.
## Common mistakes
- **Redirecting everything to the home page.** Google warns against sending many old URLs to one irrelevant page.
- **Redirect chains.** `http://www.paidwick.io` to `https://www.paidwick.io` to `https://paidwick.com` is two hops. Make it one.
- **Temporary redirects.** A 302 or 307 tells Google the old URL is still the real one.
- **Canonicals still pointing at the old domain.** The redirect says "go there" and the canonical says "come back."
- **Letting the old domain lapse.** All your old links point at it.
- **Changing the domain, design and URLs in the same week.**
## Checklist
| Item | Done |
|---|---|
| Old URL list built from sitemap, analytics, logs and Search Console | |
| One-to-one redirect map, no mass redirects to the home page | |
| New site: self-referencing canonicals, hreflang, sitemap, robots.txt | |
| Both domains verified in Search Console | |
| 301 or 308 redirects live for every host variant, one hop each | |
| Every old URL tested with `curl` | |
| Change of Address submitted for each verified variant | |
| Old and new sitemaps submitted | |
| AI search crawlers get 200 on the new domain | |
| Old domain's robots.txt and firewall allow crawlers to see redirects | |
| llms.txt rewritten with new URLs | |
| Organization `url` and `sameAs` updated, profiles point back | |
| Internal links, profiles, listings, ads and top backlinks updated | |
| Old domain renewed for years, certificate valid, auto-renew on | |
| 90-day monitoring scheduled | |
Once the move is live, our [free check](https://searchmaxx.link/) shows whether each AI crawler can reach your new domain and how much of your page it can read. For the robots.txt rules to use on the new domain, see [which AI crawlers to allow](https://searchmaxx.link/blog/ai-crawlers-robots-txt).
---
# Moving off WordPress to Webflow or Next.js: SEO and AI checklist
URL: https://searchmaxx.link/blog/migrate-wordpress-to-webflow-or-nextjs-seo
Published: 2026-10-06
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
To move off WordPress without losing search traffic, save every URL, title and description before you touch anything, keep your slugs, and 301 every URL that has to change. Then rebuild what your SEO plugin did for you: schema, sitemap, canonicals and alt text. Webflow and Next.js both send real HTML, so AI crawlers can read the new site. The risk is in the URLs and the details the plugin used to handle.
## Webflow or Next.js: the URL question
Pick the platform after you look at your current URLs, because it decides how many redirects you need.
- **Webflow** puts every CMS item under its Collection's slug. A post lives at `/blog/payroll-guide`, and Webflow says "the Collection slug is an integral part of the Collection page path, and cannot be removed" ([Webflow: CMS Collections](https://webflow.com/webflow-way/cms/cms-collections)). If your WordPress posts sit at the root, like `/payroll-guide/`, every post URL changes and needs a redirect.
- **Next.js** lets you match any path. A route at `app/[slug]/page.tsx` can serve `/payroll-guide/` exactly as before.
Check your structure in WordPress under Settings, then Permalinks. "Post name" gives `/sample-post/`. A custom structure such as `/blog/%postname%/` maps cleanly to a Webflow Collection with the slug `blog`.
Both are fine choices. Webflow suits teams where marketing edits pages without engineers. Next.js suits teams that want the site in the same codebase as the product.
## Step 1: Record the old site before you change it
You cannot check what you did not write down. Do this while WordPress is still live.
**List every URL.** WordPress 5.5 and later serves a sitemap index at `/wp-sitemap.xml`. Yoast SEO turns that off and serves its own ([WordPress core: XML sitemaps](https://make.wordpress.org/core/2020/07/22/new-xml-sitemaps-functionality-in-wordpress-5-5/)). Look for the `Sitemap:` line in your `robots.txt` to find yours. A sitemap index links to more sitemaps, so read both levels:
```text
curl -s https://paidwick.com/wp-sitemap.xml \
| grep -o '[^<]*' | sed 's///' \
| while read -r map; do
curl -s "$map" | grep -o '[^<]*' | sed 's///'
done > urls.txt
```
Add the landing pages from your analytics and the Pages tab of the Performance report in Search Console. Do not forget category, tag and author archives, attachment pages, and `/feed/`. They often get links.
**Save every title and description from the live HTML.** Whatever your SEO plugin output is what Google has been showing.
```text
while read -r url; do
html=$(curl -s "$url")
title=$(printf '%s' "$html" | grep -o '[^<]*' | head -1 | sed 's///')
desc=$(printf '%s' "$html" | grep -o ' seo-before.tsv
```
**Save a schema sample.** Open a post, a page and the home page, view source, and copy each `application/ld+json` block. You will rebuild these in Step 6.
## Step 2: Export the content
WordPress's Tools, then Export, screen creates a WXR file, an XML file that contains "your posts, pages, custom post types, comments, custom fields, categories, tags, custom taxonomies, and users" ([WordPress: Tools Export screen](https://wordpress.org/documentation/article/tools-export-screen/)).
**For Webflow,** convert the export into one CSV per Collection, such as posts, categories and authors. Webflow says "you will need to restructure your data so that you can create one CSV file per Collection." Other notes from [Webflow's migration guide](https://webflow.com/webflow-way/cms/cms-collections):
- Images import from public URLs. Webflow downloads them and stores them on its CDN. It supports JPEG, GIF, PNG, WebP and AVIF up to 4MB. Keep WordPress online until the import finishes, so those URLs still work.
- Code embeds in rich text can be cleaned out on import. Webflow recommends you "QA these items to ensure that any custom code has not been sanitized."
- An item slug can be up to 256 characters.
- To keep original publish dates, add a custom date field.
- The easiest way to get the CSV format right is to create a few items by hand, export the Collection, and copy its columns.
**For Next.js,** convert posts to Markdown or MDX files, or load them into a headless CMS. Keep each post's slug, date, title and description as fields, because you will need all four.
## Step 3: Keep your slugs
Use the WordPress slug as the new slug, character for character. Every slug you keep is a redirect you do not need.
On Next.js, also match the trailing slash. WordPress permalinks usually end in `/`. Set `trailingSlash: true` in `next.config.js` so `/payroll-guide/` stays `/payroll-guide/`.
## Step 4: Redirect everything that changes
### On Webflow
Add redirects in Site settings, one by one or in bulk with a CSV file. Rules from [Webflow's SEO migration guide](https://webflow.com/webflow-way/seo/site-level-seo) and its [redirect update](https://webflow.com/updates/301-redirect-management):
- **A CSV import overwrites your existing redirects.** It does not add to them. Export first and merge.
- **Wildcards use `(.*)` and `%1`.** `(.*)` in the old path captures part of the URL, and `%1` puts it back in the new path. `/resources/(.*)` to `/blog/%1` moves a whole folder.
- **No regex and no rule order.** You cannot exclude one page from a wildcard.
- **Keep the total low.** Webflow has no hard limit but recommends "1,000 maximum as best practice," because each rule adds weight to a file browsers download.
- **Use relative source paths,** like `/payroll-guide`, not full URLs.
- **Free up the path first.** To redirect a URL that a live page still uses, delete the page, save it as a draft, or change its slug.
- **Localized paths need their own rules.** `/old-url` and `/es/old-url` are two redirects.
A redirect CSV for root posts moving under `/blog`:
```text
/payroll-guide,/blog/payroll-guide
/contractor-tax-forms,/blog/contractor-tax-forms
/category/guides,/blog
/author/roshan,/about
```
You cannot write a wildcard that catches "any root path except my pages." That is why moving many root posts to Webflow means one rule per post. Plan for it before you have 2,000 posts.
### On Next.js
Permanent redirects go in `next.config.js` and return a 308 ([Next.js: redirects](https://nextjs.org/docs/app/api-reference/config/next-config-js/redirects)). Google treats 301 and 308 as permanent ([Google: redirects](https://developers.google.com/search/docs/crawling-indexing/301-redirects)).
```js
// next.config.js
const legacyIds = require('./legacy-ids.json') // [{ "id": "123", "slug": "payroll-guide" }]
module.exports = {
trailingSlash: true,
async redirects() {
return [
{ source: '/category/:name/', destination: '/blog/', permanent: true },
{ source: '/tag/:name/', destination: '/blog/', permanent: true },
{ source: '/author/:name/', destination: '/about/', permanent: true },
{ source: '/feed/', destination: '/blog/rss.xml', permanent: true },
// Old ?p=123 links
...legacyIds.map(({ id, slug }) => ({
source: '/',
has: [{ type: 'query', key: 'p', value: id }],
destination: `/${slug}/`,
permanent: true,
})),
]
},
}
```
Build `legacy-ids.json` from the `wp:post_id` and slug of each item in your WXR file. Next.js passes query strings through to the destination, so the new URL keeps `?p=123`. Your canonical tag tells Google which version is the real one.
### Rules for both
Google asks you to redirect "to the final destination directly," keep redirects for "generally at least 1 year," and not to "redirect many old URLs to one irrelevant single URL destination" ([Google: site moves with URL changes](https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes)). Sending tag archives to the blog index is fine, because the blog index lists the same posts. Sending every dead URL to the home page is not.
## Step 5: Carry over image alt text
Google "uses alt text along with computer vision algorithms and the contents of the page" to understand images, and alt text on a linked image works as anchor text ([Google: image SEO](https://developers.google.com/search/docs/appearance/google-images)).
Alt text inside a post's HTML moves with the rich text. Images outside the body, like featured images, are easy to lose. Check them on purpose.
**On Webflow:**
- Add a plain text field for alt text to each Collection that has an image field, and bind the image's alt to it. Webflow's guide recommends exactly this.
- Set alt text on images in the Asset Manager. Image elements use "alt text from Asset" by default.
- Webflow's Audit panel "does not check alt text for CMS-bound images." Check those yourself. ([Webflow: page-level SEO](https://webflow.com/webflow-way/seo/page-level-seo))
**On Next.js,** store alt text with each image in your content files and pass it to every `
` or ``.
To find images with missing alt text on a built page:
```text
curl -s https://paidwick.com/blog/payroll-guide/ | grep -o '
]*>' | grep -v 'alt="[^"]'
```
No output means every image has alt text.
## Step 6: Replace your SEO plugin's schema
Yoast outputs one JSON-LD graph per page. The base graph describes the `WebPage`, the `WebSite`, and the `Organization`, or a `Person` for a personal site. Posts add an `Article`, a `BreadcrumbList` and a `Person` for the author ([Yoast: schema specification](https://developer.yoast.com/features/schema/functional-specification/)). If you use Rank Math or another plugin, use the samples you saved in Step 1 to see what it output.
Neither Webflow nor Next.js writes this for you. Rebuild the parts that matter:
- **Organization** on the home page. Google recommends it there, with `url`, `logo` and `sameAs` links to your profiles ([Google: Organization structured data](https://developers.google.com/search/docs/appearance/structured-data/organization)).
- **Article or BlogPosting** on each post, with headline, date, author and image.
- **BreadcrumbList** if your pages show breadcrumbs.
**On Webflow,** put JSON-LD in the custom code of the Collection template page and insert CMS fields as values. Webflow says this lets you "automatically generate the markup across all the CMS item pages from that Collection" ([Webflow: page-level SEO](https://webflow.com/webflow-way/seo/page-level-seo)). Site-wide markup like Organization can go on the home page's custom code.
**On Next.js,** render the JSON-LD in the page component:
```tsx
// app/[slug]/page.tsx
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
headline: post.title,
datePublished: post.date,
author: { '@type': 'Person', name: post.author },
image: post.image,
mainEntityOfPage: `https://paidwick.com/${post.slug}/`,
}
return (
{post.title}
{/* ... */}
)
```
Do not invent ratings or FAQ markup that is not on the page. Mark up only what readers can see.
## Step 7: Sitemap, robots.txt and canonicals
**On Webflow** ([Webflow: site-level SEO](https://webflow.com/webflow-way/seo/site-level-seo)):
- The auto-generated sitemap updates every time you publish. Pages you set to noindex are left out.
- Set your default domain before launch. Otherwise the sitemap lists URLs that redirect.
- Set a global canonical URL in Site settings. Webflow then adds a self-referencing canonical to every page. Include `www` if your default domain uses it.
- Add robots.txt rules in Site settings.
**On Next.js,** add `app/sitemap.ts` ([Next.js: sitemap.xml](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap)), set `alternates.canonical` in each page's metadata, and put `robots.txt` in the `app` folder. Our [guide to moving a React app to Next.js](https://searchmaxx.link/blog/migrate-react-spa-to-nextjs-seo) has code for each.
On either platform, allow the AI search crawlers in robots.txt. Our [robots.txt guide](https://searchmaxx.link/blog/ai-crawlers-robots-txt) has a version to copy.
## Step 8: Verify after launch
Run these the day you switch DNS.
**Every old URL redirects or loads:**
```text
while read -r url; do
printf '%s ' "$url"
curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' "$url"
done < urls.txt
```
Each line should be `200`, or `301`/`308` with the right destination. Fix any `404` that had traffic.
**Titles and descriptions survived.** Run the Step 1 loop again into `seo-after.tsv`, using the new URLs, and compare the two files side by side.
**The text is in the HTML.** Count words on your top pages, as described in [AI crawlers don't run JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript). Embedded widgets for pricing, reviews or FAQs often load by script and arrive empty.
**Schema parses.** Run your home page and a post through Google's [Rich Results Test](https://search.google.com/test/rich-results).
**Search Console.** Submit the new sitemap. Inspect your top 10 URLs. Watch the Page indexing report for new 404s for the next few weeks. Google says to expect "temporary fluctuation in site ranking during the move."
## Checklist
| Item | Webflow | Next.js |
|---|---|---|
| URL list saved | Sitemap, analytics, Search Console | Same |
| Titles and descriptions saved | `seo-before.tsv` | Same |
| Content exported | WXR to one CSV per Collection | WXR to Markdown or CMS |
| Slugs kept | Item slug = WordPress slug | Route matches old path, trailing slash kept |
| Redirects | Site settings CSV, merged not overwritten | `redirects()` in `next.config.js` |
| Archives and `?p=` links | One rule each | Patterns and query matching |
| Alt text | Plain text field bound to image alt | Stored with each image |
| Schema | JSON-LD in Collection template custom code | JSON-LD in page component |
| Sitemap | Auto-generated, default domain set | `app/sitemap.ts` |
| Canonicals | Global canonical in Site settings | `alternates.canonical` per page |
| robots.txt | Site settings | `app/robots.txt` |
| After launch | `curl` loop, Rich Results Test, Search Console | Same |
When the new site is live, our [free check](https://searchmaxx.link/) shows whether AI crawlers can reach it and how much text they get. If you are changing your domain at the same time, work through our [domain migration checklist](https://searchmaxx.link/blog/domain-migration-seo-checklist) as a separate step.
---
# Generative engine optimization in 2026: what actually works
URL: https://searchmaxx.link/blog/generative-engine-optimization-2026
Published: 2026-10-05
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
Generative engine optimization (GEO) is the work of getting your pages cited when an AI engine answers a question. What works in 2026 is mostly what the original research found: pages that are easy to retrieve and full of specific, checkable facts get quoted, and keyword tricks do not. Most of the rest of what gets sold as GEO, from llms.txt files to "AI-friendly" rewrites, has no evidence behind it.
Our position is simple. GEO is not a new discipline that replaces SEO. It is SEO with a different finish line. The engine still has to find your page first. After that, your page has to be the one it chooses to quote.
## Where the term comes from
The term comes from a paper called [GEO: Generative Engine Optimization](https://arxiv.org/abs/2311.09735), first posted in November 2023 and published at KDD 2024, the ACM data mining conference held in Barcelona in August 2024. The authors are Pranjal Aggarwal (IIT Delhi), Vishvak Murahari, Karthik Narasimhan and Ameet Deshpande (Princeton), and Tanmay Rajpurohit and Ashwin Kalyan.
The setup was clean. The team built GEO-bench, a set of 10,000 queries drawn from nine datasets. For each query, a simulated engine took the top five Google results and had `gpt-3.5-turbo` write an answer that cited them. Then the researchers rewrote one source at a time using nine different methods and measured how much more of the answer came from that source.
They used two measures:
- **Position-adjusted word count.** How many words of the answer come from your source, weighted so that being quoted early counts more.
- **Subjective impression.** A model's judgment of how relevant, influential and prominent your source is in the answer.
The abstract's headline claim is that GEO "can boost visibility by up to 40%" in generative engine responses.
## What the paper found
| Method | What it means | Result in the paper |
|---|---|---|
| Cite sources | Add references to credible sources | Among the top three methods |
| Quotation addition | Add relevant quotes from named people | Among the top three methods |
| Statistics addition | Replace vague claims with numbers | Among the top three methods |
| Fluency optimization | Make the text read more smoothly | Strong, and best when combined with statistics |
| Keyword stuffing | Repeat the target query's words | "Little to no improvement", and worse than doing nothing on the main measure |
In the authors' words, the top three methods "achieved a relative improvement of 30-40%" on position-adjusted word count and "15-30%" on subjective impression. The best pair, fluency plus statistics, beat any single method by more than 5.5%.
Three more findings matter for a software company:
1. **Lower-ranked pages gained the most.** Citing sources "led to a substantial 115.1% increase in visibility for websites ranked fifth" in the search results. If you are not the top result, specific evidence on the page can still get you quoted.
2. **What works depends on the topic.** Statistics helped most on law, government and opinion questions. Quotations helped most on people, society and history. There is no single trick for every page.
3. **A real engine moved less.** On Perplexity, quotation addition was the best method, at 22% over the baseline on word count. Keyword stuffing did 10% worse than leaving the page alone.
## What has held up
The paper is almost three years old, and it tested a simulated engine on an older model. The engines have changed a lot since. Some of its conclusions have held up well, mostly because they match what the engines now say about themselves.
**You have to be retrieved before you can be cited.** In the paper, every candidate page came from the top five Google results. That design choice turned out to describe the real world. Google says a page must be "indexed and eligible to be shown in Google Search with a snippet" to appear in AI Overviews or AI Mode ([Google Search Central, AI features and your website, updated December 2025](https://developers.google.com/search/docs/appearance/ai-features)). OpenAI says sites that block its search crawler "will not be shown in ChatGPT search answers" ([OpenAI crawler docs](https://developers.openai.com/api/docs/bots)). Ahrefs found that 76% of pages cited in AI Overviews ranked in Google's top 10 for the query ([Ahrefs, July 2025](https://ahrefs.com/blog/search-rankings-ai-citations/)). We cover the full ranking question in [Is SEO dead in 2026?](https://searchmaxx.link/blog/is-seo-dead-2026)
**Specific facts beat vague claims.** Take Paidwick, an example invoicing tool. A sentence like "Paidwick cuts invoice processing time" gives an engine nothing to quote. A sentence that names a number, how it was measured, and on what data does. The paper's three best methods all add something checkable: a number, a named source, or a quote. That is also what makes a page useful to a buyer, which is why we think it has held up.
**Keyword tricks do not work.** Keyword stuffing was the only method that made things worse in the paper. Google now names the related tactic directly: making pages mainly to manipulate AI responses "violates Google's scaled content abuse spam policy" ([Google Search Central, optimizing for generative AI features, updated July 2026](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)).
## What is folklore
A lot of GEO advice in 2026 has no study behind it, and some of it contradicts what the engines publish. Here is what we tell clients to skip or treat with caution.
**llms.txt as a ranking lever.** Google is direct about this one. Its optimization guide says "You don't need to create new machine readable files, AI text files, markup, or Markdown to appear in Google Search," and that Google Search does not use llms.txt. An llms.txt file is cheap and harmless. We have one. It is not why anyone gets cited.
**Special schema for AI.** Google says there is "no special schema.org markup you need to add" for AI features. Structured data still helps with rich results and keeps facts consistent, so keep it. Do not expect a new schema type to get you into AI answers.
**Chopping pages into chunks.** A popular claim says engines prefer pages broken into tiny self-contained blocks. Google's guide says "There's no requirement to break your content into tiny pieces for AI to better understand it." Clear headings help readers and engines alike. Turning a guide into fifty disconnected fragments helps nobody.
**Writing in a special style for AI.** Google: "You don't need to write in a specific way just for generative AI search." The paper agrees in its own way. Its best methods are just good writing habits: cite, quantify, quote.
**Buying mentions.** Some advice says to seed your brand name across forums and listicles so models pick it up. Google says seeking inauthentic mentions "isn't as helpful as it might seem." It is also the fastest way to lose the trust of the communities that actually shape buyer opinion.
**Tools that claim to see inside the engine.** Google: "No third-party tool has access to our internal ranking or AI systems." Tools that track whether you appear in AI answers are useful. Tools that claim to know why are guessing.
**"GEO replaces SEO."** Google's guide says optimizing for generative AI search "is optimizing for the search experience," and so it is still SEO. Other engines are less explicit, but the retrieval evidence above points the same way.
One caution about our own sources. Google's guidance covers Google. ChatGPT, Claude and Perplexity publish less about how they choose citations. Where we have no published data for an engine, we say so rather than guess.
## A practical priority list for 2026
This is the order we work in. Each step depends on the one before it.
| Priority | What to do | How to check it |
|---|---|---|
| 1 | Let the AI search crawlers in | robots.txt allows `OAI-SearchBot`, `Claude-SearchBot`, `PerplexityBot` and `Googlebot`. Your firewall does not block them. See [which AI crawlers to allow](https://searchmaxx.link/blog/ai-crawlers-robots-txt). |
| 2 | Send real text without JavaScript | A plain fetch of each key page returns your product description and pricing. See [AI crawlers don't run JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript). |
| 3 | Get indexed and rank for buyer questions | Your key pages are indexed in Google and Bing and rank on page one for the questions buyers ask while choosing. |
| 4 | Answer one question per page, directly | The first two or three sentences answer the question in the title. A reader could quote them alone. |
| 5 | Add specific evidence | Replace vague claims with numbers, named sources and short quotes. Show where each number came from. |
| 6 | Keep your facts consistent | Pricing, features and integrations say the same thing on your site, your docs and your profiles elsewhere. |
| 7 | Earn real mentions | Get named in places buyers already read: comparisons, reviews, forums, and docs of tools you integrate with. |
| 8 | Measure | Track Google clicks and impressions in Search Console, and ask the engines your buyers' questions on a fixed schedule. |
Steps 1 to 3 are where most sites fail. In our experience, the common reason a software company is missing from AI answers is not its prose. It is a robots.txt rule, a JavaScript-only page, or a page that does not rank anywhere.
Steps 4 and 5 are where the GEO paper's findings apply directly. In the [case study we published](https://searchmaxx.link/blog/case-study-5x-google-clicks), most of the growth came from pages built for questions buyers ask while choosing, such as "best model for coding" guides. Pages like that state a verdict and back it up, which is the kind of page AI engines cite.
## What we still do not know
We want to be clear about the gaps.
- **No public study has repeated the GEO experiment on current engines at scale.** The original tested `gpt-3.5-turbo` and a small Perplexity sample. Newer engines search more widely. Google says AI Overviews and AI Mode may run several related searches at once, which it calls "query fan-out", so the set of candidate pages is larger than five.
- **Visibility in an answer is not the same as a visit.** The paper measured how much of the answer came from a source. It did not measure clicks or sales. Studies on clicks tell a more mixed story, which we cover in [Google AI Overviews and AI Mode in 2026](https://searchmaxx.link/blog/google-ai-overviews-2026).
- **Each engine is different.** A method that helps in one engine may do nothing in another. The paper found the effect varies by topic, too.
So test on your own pages. Pick ten buyer questions. Record which engines name you today. Make one change at a time and check again in a few weeks.
## Where to start
If you do one thing this week, check steps 1 and 2. They take minutes and they decide whether any of the rest matters. Our [free check](https://searchmaxx.link/) tests whether the AI search crawlers can reach and read your site in about 10 seconds.
---
# Is SEO dead in 2026? What AI search changed and what it didn't
URL: https://searchmaxx.link/blog/is-seo-dead-2026
Published: 2026-10-04
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
No. SEO is not dead in 2026, but the easy click is. AI summaries now answer many informational searches on the results page, and the published data shows clicks on those searches have fallen sharply. The pages AI engines cite still come mostly from search indexes, so ranking well is now the entry ticket to AI answers as well as to clicks.
That is our verdict, and the rest of this post is the evidence for it. We look at what the studies found about clicks, why classic SEO still feeds AI answers, and what a software company should change.
## What happened to clicks
Four studies are worth reading. They use different methods, and they agree on direction.
| Study | What it measured | Main finding |
|---|---|---|
| [Pew Research Center, July 22, 2025](https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/) | Real browsing by 900 US adults in March 2025, 68,879 Google searches | People clicked a result on 8% of visits with an AI summary, against 15% without one |
| [Ahrefs, April 17, 2025](https://ahrefs.com/blog/ai-overviews-reduce-clicks/) | Search Console data for 300,000 keywords, March 2024 vs March 2025 | AI Overviews correlated with a 34.5% lower click rate for the top result |
| [Ahrefs, February 4, 2026](https://ahrefs.com/blog/ai-overviews-reduce-clicks-update/) | Same method, December 2023 vs December 2025 | Estimated 58% lower click rate for the top result |
| [Seer Interactive, April 24, 2026](https://www.seerinteractive.com/insights/aio-impact-on-google-ctr-2026-update) | 53 brands, about 5.5 million tracked queries, January 2025 to February 2026 | Being cited in an AI Overview beat not being cited in every month, but cited informational queries still got about 38% fewer organic clicks per impression than queries with no AI Overview |
Some details from each are worth knowing.
**Pew** looked at what people actually did, not at rankings. Only about 1% of visits to a page with an AI summary ended with a click on a link inside the summary. People ended their browsing session after 26% of pages with a summary, against 16% without one. Summaries were rare on short searches: 8% of one- or two-word searches produced one, against 53% of searches with ten or more words. Questions produced a summary 60% of the time.
**Ahrefs** compared keywords that gained an AI Overview with similar informational keywords that did not. In the 2026 update, the top result's desktop click rate on AI Overview keywords fell from 7.3% to 1.6% over two years. Ahrefs forecast 3.7% without AI Overviews, which is where the 58% comes from. It is a modeled estimate. The effect continued down the page, from about 51% lower at position 2 to about 19% lower at position 10.
**Seer** found something more hopeful in early 2026. Organic click rates on queries with an AI Overview fell through 2025, then rose from 1.3% in December 2025 to 2.4% in February 2026. Seer calls its data directional, not causal.
**Google** disputes the size of the problem. In August 2025, Liz Reid, Google's head of Search, wrote that "total organic click volume from Google Search to websites has been relatively stable year-over-year" ([Google, August 6, 2025](https://blog.google/products/search/ai-search-driving-more-queries-higher-quality-clicks/)). Google gave no numbers to support it. Both claims can be true at once. Total clicks can hold steady while clicks on informational questions fall and searches grow. Google itself said in May 2025 that AI Overviews were "driving over 10% growth in the types of queries that show them" in markets like the US and India ([Google I/O keynote, May 20, 2025](https://blog.google/innovation-and-ai/technology/ai/io-2025-keynote/)).
Our reading: if your traffic depends on answering simple informational questions, you have lost clicks and will not get them back. If your traffic comes from people comparing options and making decisions, you have lost less, and being cited is now part of how you win.
## Why classic SEO still feeds AI answers
The argument that "SEO is dead" assumes AI engines find sources some new way. Mostly, they do not. They search.
**Google says so directly.** To appear as a link in AI Overviews or AI Mode, "a page must be indexed and eligible to be shown in Google Search with a snippet." Google adds that "There are no additional technical requirements" ([Google Search Central, AI features and your website](https://developers.google.com/search/docs/appearance/ai-features)). Its 2026 optimization guide says "The best practices for SEO continue to be relevant" and that optimizing for generative AI search "is optimizing for the search experience" ([Google Search Central, updated July 2026](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)).
**The citations track the rankings.** Ahrefs studied 1.9 million citations from 1 million AI Overviews. 76% of cited pages ranked in Google's top 10 for the query, and 86% ranked somewhere in the top 100. The median cited page ranked third ([Ahrefs, July 21, 2025](https://ahrefs.com/blog/search-rankings-ai-citations/)).
**ChatGPT has its own index, and you can be kept out of it.** OpenAI says sites that block its search crawler, `OAI-SearchBot`, "will not be shown in ChatGPT search answers" ([OpenAI crawler docs](https://developers.openai.com/api/docs/bots)). Claude and Perplexity run search crawlers too. We list them in [which AI crawlers to allow](https://searchmaxx.link/blog/ai-crawlers-robots-txt).
So the basics of SEO, crawlable pages, real text in the HTML, indexation, and ranking for the right questions, now decide two things at once: whether you get the click, and whether you get the citation. A site that has neglected SEO is usually invisible in both.
There is one difference. A citation in an answer is not always a visit. Pew found that links inside AI summaries were rarely clicked. Being named in the answer still matters, because the buyer reads your name next to the recommendation. You just cannot measure it with clicks alone.
## What changed and what didn't
| Area | Before AI answers | In 2026 |
|---|---|---|
| How engines find pages | Crawl and index | Still crawl and index |
| What decides if you are a candidate | Ranking | Still mostly ranking |
| What the reader sees first | Ten blue links | Often a written answer with a few cited sources |
| Value of a simple informational page | Steady clicks | Far fewer clicks. The answer appears on the results page |
| Value of a comparison or decision page | Clicks | Clicks, plus being named in the answer |
| How you measure success | Rankings and clicks | Clicks, impressions, and how often AI engines name you |
| Who you write for | The searcher | Still the searcher. Engines quote pages that help them |
| Tricks like keyword stuffing | Weak | Weak, and worse than nothing in AI answers |
The last row comes from research. The original study on generative engine optimization found keyword stuffing gave "little to no improvement" and did worse than an untouched page on Perplexity. We cover that paper in [Generative engine optimization in 2026](https://searchmaxx.link/blog/generative-engine-optimization-2026).
## What to change
You do not need a new strategy. You need to point the old one at different targets.
**1. Stop counting on simple definitional pages.** A page titled "What is invoice automation?" will mostly be answered for you by Google. Keep these pages if they help readers. Stop forecasting traffic from them.
**2. Build pages for decisions.** Buyers still click when they are choosing. Comparison pages, "best tool for X" guides, pricing explainers, migration guides and honest alternatives pages all fit. In [our case study](https://searchmaxx.link/blog/case-study-5x-google-clicks), an open-source AI company went from 515 to 2,573 Google clicks a day in 12 weeks, and 66% of clicks came from searches that did not include the company's name. Most of the growth came from pages built for the questions buyers ask while choosing.
**3. Answer first, then back it up.** Put the direct answer in the first two or three sentences. Follow it with specific evidence: numbers, named sources, a table. This is what a reader wants and what an engine can quote.
**4. Fix the technical basics for every crawler, not just Google.** Gemini can render JavaScript. Many other AI crawlers cannot. If your page needs JavaScript to show its text, ChatGPT, Claude and Perplexity may see an empty page. See [AI crawlers don't run JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript).
**5. Add AI visibility to your reporting.** Keep tracking Google clicks and impressions. Add a weekly count of how often ChatGPT, Claude, Perplexity and Google's AI features name you for ten or twenty buyer questions. Google now offers a report for AI feature impressions in Search Console. We explain it in [Google AI Overviews and AI Mode in 2026](https://searchmaxx.link/blog/google-ai-overviews-2026).
**6. Get named where buyers read.** Pew found Wikipedia, YouTube and Reddit were the most-linked sites in Google's AI summaries. For software, the equivalents are forums, review sites, comparison articles and the docs of tools you integrate with. Being mentioned there with accurate facts helps you in both classic and AI search. Earn it. Do not buy it.
## The verdict
SEO in 2026 has lost one of its jobs and gained another. It drives fewer clicks from simple questions. It now decides whether AI engines can find you at all. The companies we see losing are not the ones doing SEO. They are the ones who stopped because someone told them it was dead.
If you want to know where your site stands, start with the basics. Our [free check](https://searchmaxx.link/) tests whether AI search crawlers can reach and read your pages in about 10 seconds.
---
# Google AI Overviews and AI Mode in 2026: a guide for software companies
URL: https://searchmaxx.link/blog/google-ai-overviews-2026
Published: 2026-10-03
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
Google's AI Overviews and AI Mode pick their links from the same index and ranking systems as regular Search. Google says there are no special requirements beyond being indexed and eligible for a snippet. For a software company, that means the work is ordinary SEO done well, plus two new things to watch: a Search Console setting that can switch you out of these features, and a new report that shows how often you appear.
We think most of the confusion about these features comes from treating them as a separate channel with secret rules. Google has published fairly clear documentation. This post walks through what it says, and what it does not.
## What they are
**AI Overviews** are the written summaries at the top of some Google results, with links to the sites they draw on. Google describes them as a way to help people "get to the gist of a complicated topic or question more quickly" ([Google Search Central, AI features and your website](https://developers.google.com/search/docs/appearance/ai-features)). They only appear when Google's systems decide a summary adds something beyond the regular results.
**AI Mode** is a separate, chat-style search. Google says it is "particularly helpful for queries where further exploration, reasoning, or complex comparisons are needed." It gives a longer answer and lets people ask follow-up questions.
Both are large. In May 2025 Google said AI Overviews had "scaled to over 1.5 billion users" in 200 countries and territories, and that "AI Mode is coming to everyone in the U.S., starting today" ([Google I/O keynote, May 20, 2025](https://blog.google/innovation-and-ai/technology/ai/io-2025-keynote/)).
The two features may use different models and techniques, so the same question can produce different links in each.
## How Google says sites appear
Google's documentation is short on this point, and worth quoting exactly.
- **Requirements.** To be a supporting link, "a page must be indexed and eligible to be shown in Google Search with a snippet." Google adds: "There are no additional technical requirements."
- **No special optimization.** "There are no additional requirements to appear in AI Overviews or AI Mode, nor other special optimizations necessary." And: "There's also no special schema.org structured data that you need to add."
- **Query fan-out.** Both features may run several related searches across subtopics at once, which Google calls "query fan-out." That means a page can be cited for a question it was not the top result for, because it ranked for one of the related searches.
- **The rest is SEO.** Google's 2026 optimization guide says these features are built on its core Search ranking and quality systems, and that "The best practices for SEO continue to be relevant" ([Google Search Central, updated July 2026](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)).
The same guide is direct about what does not help. "You don't need to create new machine readable files, AI text files, markup, or Markdown to appear in Google Search." Google Search does not use llms.txt. "You don't need to write in a specific way just for generative AI search." And making pages mainly to manipulate AI responses "violates Google's scaled content abuse spam policy."
Independent data agrees that rankings matter. Ahrefs looked at 1.9 million citations from 1 million AI Overviews and found 76% of cited pages ranked in Google's top 10 for the query ([Ahrefs, July 21, 2025](https://ahrefs.com/blog/search-rankings-ai-citations/)).
One thing to note for software sites: Google's crawling setup runs JavaScript, and most AI crawlers do not ([Vercel, December 2024](https://vercel.com/blog/the-rise-of-the-ai-crawler)). A JavaScript-heavy site can therefore show up in AI Overviews and still be invisible to ChatGPT, Claude and Perplexity. If you only check Google, you will miss that. See [AI crawlers don't run JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript).
## The controls you have
Google gives site owners several ways to limit how their content appears in these features. Each one does something different, and the wrong one can cost you all of your Google traffic.
| Control | Where you set it | What it does |
|---|---|---|
| Search generative AI control | Search Console | Opts your site in or out of AI Overviews, AI Mode and generative AI features in Discover. Sites are included by default. Google says it is not used as a ranking or inclusion signal for the rest of Search |
| `nosnippet` | Robots meta tag or HTTP header | No text snippet in any Google result, and "will also prevent the content from being used as a direct input for AI Overviews and AI Mode" |
| `max-snippet:[number]` | Robots meta tag | Caps snippet length, and "will also limit how much of the content may be used as a direct input for AI Overviews and AI Mode" |
| `data-nosnippet` | HTML attribute on part of a page | Keeps that part of the page out of snippets |
| `noindex` | Robots meta tag or HTTP header | Removes the page from Google Search entirely, including AI features |
| `Google-Extended` | robots.txt | Limits use of your content for training Gemini models. Google says it does not affect inclusion in Google Search |
| Blocking `Googlebot` | robots.txt | Removes you from Google Search, including AI features |
Sources: [Search generative AI control](https://support.google.com/webmasters/answer/16908024?hl=en), [Google's robots meta tag docs, updated March 2026](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag), and [AI features and your website](https://developers.google.com/search/docs/appearance/ai-features).
Three points matter most for software companies.
**Check the Search Console setting.** Google's optimization guide lists being included in Search Console's generative AI setting as a requirement for appearing in these features. If someone on your team switched it off, you will not appear, however good your pages are. Check it once and note who has access.
**`Google-Extended` is the training switch, not the AI Overviews switch.** Blocking it is a choice about Gemini training. It does not take you out of AI Overviews, and the Search Console control does not affect training. They are separate decisions. We cover the full set of AI crawlers in [which AI crawlers to allow in robots.txt](https://searchmaxx.link/blog/ai-crawlers-robots-txt).
**`nosnippet` costs more than it saves.** It removes your text from every kind of Google result, not just AI ones. For a company that wants buyers to find it, that is almost never the right trade. If you have one page you want kept out of AI answers, use the control on that page alone.
Changes are not instant. Google says recrawling after a change "can take anywhere from several days to several months." If a control seems not to work, use the URL Inspection tool in Search Console to confirm Googlebot sees the HTML you expect.
## How to measure it in Search Console
There are two places to look.
**The main Performance report.** Google says traffic from AI features is "included in the overall search traffic in Search Console" and reported under the "Web" search type. Clicks and impressions from AI Overviews and AI Mode are already in your totals. You cannot separate them in this report.
**The Generative AI performance report.** Google says this report reached all websites worldwide on August 31, 2026 ([Search Console Help](https://support.google.com/webmasters/answer/16984139?hl=en)). What it shows:
- **Impressions only.** An impression is counted each time "links to your site were shown to a user in a generative AI feature on Google Search." The help page does not describe a click metric.
- **Counted once per site.** In the chart total, two links from your site in the same AI response count as one impression. Filter by URL to see page-level numbers.
- **Breakdowns** by page, country, device and date.
- **Two search types.** "Web: text-based" for typed searches, and "Web: multimodal" for searches with images, such as Google Lens and Circle to Search.
- **The same limits as the Performance report**, including the 1,000-row cap on tables.
Here is how we use the two together. The generative AI report tells you which pages Google is citing and whether that number is growing. The Performance report tells you whether clicks follow. A page with rising AI impressions and flat clicks is being quoted without being visited. That still has value, because buyers see your name next to the answer, but you should know it is happening.
## What the click data says
Being cited is better than not being cited. It does not bring back the clicks of a page without an AI Overview.
Seer Interactive tracked 53 brands and about 5.5 million queries from January 2025 to February 2026. Being cited in an AI Overview beat not being cited in every month. But cited informational queries still got about 38% fewer organic clicks per impression than queries with no AI Overview ([Seer Interactive, April 24, 2026](https://www.seerinteractive.com/insights/aio-impact-on-google-ctr-2026-update)). Seer calls this directional, not causal.
Pew Research found that only about 1% of visits to a Google results page with an AI summary ended with a click on a link inside the summary ([Pew Research Center, July 22, 2025](https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/)).
Google's view differs. Its documentation says clicks from results pages with AI Overviews are "higher quality," meaning people spend more time on the site. Google has not published numbers for this. We go through all of the click studies in [Is SEO dead in 2026?](https://searchmaxx.link/blog/is-seo-dead-2026)
## What to do
A checklist for a software company, in order:
- **Confirm you are eligible.** Key pages are indexed (URL Inspection in Search Console), have no `nosnippet` or `noindex`, and robots.txt allows `Googlebot`.
- **Check the Search Console generative AI setting** and confirm your site is included.
- **Decide on `Google-Extended` separately.** It is a training choice. It does not affect AI Overviews.
- **Rank for the questions buyers ask while choosing.** "Best X for Y", "X vs Y", "X pricing", "how to migrate from X". AI features draw from pages that rank, and query fan-out rewards pages that rank for related questions too.
- **Answer the question in the first few sentences**, then back it up with numbers, sources and a table. That is what both a reader and a summary can use.
- **Keep facts consistent.** Pricing, plans and integrations should match across your site, docs, Merchant Center and Business Profile, which Google says can feed AI responses.
- **Open the Generative AI performance report monthly.** Note which pages earn impressions and compare with clicks in the Performance report.
- **Check the other engines too.** Google renders JavaScript and most AI crawlers do not. Being in AI Overviews says nothing about ChatGPT, Claude or Perplexity.
For the broader question of which writing and page changes actually move AI citations, see [Generative engine optimization in 2026](https://searchmaxx.link/blog/generative-engine-optimization-2026).
## Where to start
The first three items on that list take an afternoon. The last one is where most software sites have a gap they do not know about. Our [free check](https://searchmaxx.link/) tests whether ChatGPT's, Claude's and Perplexity's crawlers can reach and read your site in about 10 seconds, so you can see the part of AI search that Search Console does not show you.
---
# llms.txt in 2026: who actually reads it?
URL: https://searchmaxx.link/blog/llms-txt-2026
Published: 2026-10-02
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
Add an llms.txt file if you want one. It takes an hour and costs nothing. But do not expect it to get you named in ChatGPT, Claude, Perplexity or Google's AI answers, because none of those search products says it reads the file, and Google says plainly that its search ignores it.
That is our position, and the rest of this post is the evidence for it. The file is useful for a narrower job than most guides claim: helping coding tools and agents that are already on your site find the right pages.
## What llms.txt is
llms.txt is a proposal, not a standard. Jeremy Howard published it on September 3, 2024, at [llmstxt.org](https://llmstxt.org/), with a companion post on [Answer.AI's blog](https://www.answer.ai/posts/2024-09-03-llmstxt.html) the same day. The proposal opens with one line: "We propose adding a `/llms.txt` markdown file to websites to provide LLM-friendly content."
The idea is simple. A web page is built for people. It has navigation, scripts, cookie banners and ads. A language model with a small context window does better with a short, clean summary and a list of links to the pages that matter.
The format, per llmstxt.org:
- A Markdown file at `/llms.txt`.
- One required element: an H1 with the name of the site or project.
- An optional blockquote with a short summary.
- Optional paragraphs with more detail.
- Optional H2 sections, each a list of links with a short note after each one.
- By convention, a section called "Optional" holds links an agent can skip when it is short on room.
The proposal also suggests offering a clean Markdown copy of each page at the same URL with `.md` added. Some sites also publish an `llms-full.txt` with the full text of their docs in one file. Anthropic, Cloudflare and Vercel do. That is a convention that grew up around the proposal, not part of the proposal page.
## What the companies running AI search have said
This is the part that matters, and the record is short.
| Company | What it has said about llms.txt | Source |
|---|---|---|
| Google (Search) | Search "doesn't use" llms.txt or other AI text files. Adding one "will neither harm nor help" your visibility | [Google Search Central, AI optimization guide](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide), updated July 10, 2026 |
| Google (Chrome Lighthouse) | An experimental audit flags a server error on `/llms.txt`. A missing file is fine | [Chrome for Developers, llms.txt audit](https://developer.chrome.com/docs/lighthouse/agentic-browsing/llms-txt), updated May 5, 2026 |
| OpenAI | Its crawler docs cover robots.txt. We found no statement that its search crawler reads llms.txt | [OpenAI crawler docs](https://developers.openai.com/api/docs/bots) |
| Anthropic | We found no statement that Claude's crawlers read llms.txt | No public statement found |
| Perplexity | We found no statement that its crawler reads llms.txt | No public statement found |
### Google Search: ignored, in writing
Google's guide to generative AI features in Search has a section called "Mythbusting generative AI search: what you don't need to do". It says: "You don't need to create new machine readable files, AI text files, markup, or Markdown to appear in Google Search (including its generative AI capabilities), as Google Search itself doesn't use them."
It goes on: "It's completely fine if you decide to create and maintain LLMS.txt files (or other similar files) for other services or systems that use these files. Doing so will neither harm nor help your site's visibility or rankings in Google Search, as Google Search ignores them." The same guide lists "creating unnecessary AI text files (like llms.txt)" among tactics you can ignore. ([Google Search Central](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide), updated July 10, 2026)
That covers AI Overviews and AI Mode. It is as clear as Google gets.
Google's John Mueller said much the same on Reddit in April 2025, as reported by Search Engine Journal: "AFAIK none of the AI services have said they're using LLMs.txt (and you can tell when you look at your server logs that they don't even check for it). To me, it's comparable to the keywords meta tag, this is what a site-owner claims their site is about." ([Search Engine Journal, April 17, 2025](https://www.searchenginejournal.com/google-says-llms-txt-comparable-to-keywords-meta-tag/544804/))
The keywords meta tag comparison is the useful one. A file where a site describes itself is easy to stuff. A search engine that wants honest answers has little reason to trust it over the pages themselves.
### Google Chrome: a different answer
Google is not one voice here. Chrome's Lighthouse tool added an experimental "Agentic browsing" category, and one of its audits checks `/llms.txt`. Chrome's docs call the file an "emerging convention" and say that without it, agents "may need to crawl more of the site" to learn its structure. The audit only flags a server error. A 404 is marked "Not Applicable", because the file is optional. ([Chrome for Developers](https://developer.chrome.com/docs/lighthouse/agentic-browsing/llms-txt), updated May 5, 2026)
Search Engine Journal covered the split in May 2026 under the headline "Google's llms.txt guidance depends on which product you ask." ([Search Engine Journal, May 20, 2026](https://www.searchenginejournal.com/googles-llms-txt-guidance-depends-on-which-product-you-ask)) That headline is the honest summary. Search ignores the file. Chrome's agent tooling treats it as a hint for browsing agents, which are a different thing from search ranking.
### OpenAI, Anthropic and Perplexity: silence
OpenAI's crawler docs explain how `OAI-SearchBot`, `GPTBot` and `ChatGPT-User` follow robots.txt, and how long changes take to apply. They do not mention llms.txt. ([OpenAI](https://developers.openai.com/api/docs/bots)) We also found no public statement from Anthropic or Perplexity saying their search crawlers fetch or weigh the file.
Silence is not a denial. Any of them could read the file without saying so. But we will not tell you a file drives citations when no company running an AI search engine has said it does, and when Google has said in writing that its search does not.
## Who publishes one anyway
Plenty of companies publish llms.txt, and the pattern says a lot about who it is for. We checked these on October 18, 2026. Each returned a working file:
- [Anthropic's developer docs](https://docs.claude.com/llms.txt)
- [OpenAI's developer docs](https://developers.openai.com/llms.txt)
- [Stripe's docs](https://docs.stripe.com/llms.txt)
- [Cloudflare's developer docs](https://developers.cloudflare.com/llms.txt)
- [Vercel](https://vercel.com/llms.txt)
Most of these are developer documentation. That fits the real use. A developer pastes a docs link into a coding assistant, or an agent is told to "use the Stripe docs", and a clean index of pages helps it pull the right ones. That job starts after someone, or something, has already chosen your site. It is not the job of deciding which sites an AI engine finds in the first place.
We publish one too. You can see [searchmaxx.link/llms.txt](https://searchmaxx.link/llms.txt) and the full-text version at [/llms-full.txt](https://searchmaxx.link/llms-full.txt). We added them because they were cheap and they help agents that land on the site. We do not count them as part of what gets a company named in AI answers.
## Should you add one?
| If you are... | Our advice |
|---|---|
| A developer tool or API with public docs | Yes. Agents and coding assistants that are pointed at your docs can use it |
| A SaaS marketing site hoping to appear in AI answers | Optional. Add it if it takes under an hour. It will not move rankings |
| Choosing between llms.txt and fixing crawl access | Fix crawl access first. A blocked or empty page cannot be cited, with or without llms.txt |
If you only have an afternoon, spend it on the things engines have documented. Let the AI search crawlers in through [robots.txt](https://searchmaxx.link/blog/ai-crawlers-robots-txt). Make sure your pages send real text [without JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript). Then write pages that answer the questions buyers ask. Those affect whether you get cited. llms.txt, on the evidence today, does not.
## A minimal llms.txt you can copy
Here is a short file for Paidwick, a made-up invoicing tool. Swap in your own name, summary and links. Keep it under a page.
```text
# Paidwick
> Paidwick is invoicing software for freelancers and small agencies. It sends invoices, chases late payments and syncs with QuickBooks.
Plans start at $12 a month. There is a 14-day free trial with no card required.
## Product
- [Features](https://paidwick.com/features): What Paidwick does, page by page
- [Pricing](https://paidwick.com/pricing): Plans, limits and what each includes
- [Integrations](https://paidwick.com/integrations): QuickBooks, Xero, Stripe and Zapier
## Docs
- [Getting started](https://paidwick.com/docs/start): Send your first invoice in five minutes
- [API reference](https://paidwick.com/docs/api): REST endpoints and webhooks
## Optional
- [Changelog](https://paidwick.com/changelog)
- [Blog](https://paidwick.com/blog)
```
A few rules keep it useful:
- **Serve it as plain text** at the root, with a `200` status. Lighthouse flags server errors, and a file behind a login or bot wall helps no one.
- **Link to pages that exist and render without JavaScript.** An index that points to empty shells is worse than none.
- **Keep facts in step with the site.** If your pricing page changes, change the file. Stale numbers in a file that agents read are a real cost.
- **Do not stuff it.** A list of keywords is the keywords meta tag again, and it will be treated the same way.
## Where this leaves you
llms.txt is a reasonable idea that the engines deciding AI search answers have not adopted. Google has said its search ignores it. OpenAI, Anthropic and Perplexity have not said they read it. Add one if it is cheap for you, mostly for agents and coding tools. Then put your real effort where the companies have documented what they do.
For the things that do decide whether ChatGPT can cite you, start with [how ChatGPT search chooses which sites to cite](https://searchmaxx.link/blog/how-chatgpt-chooses-sources). Our [free check](https://searchmaxx.link/) also tells you in about 10 seconds whether AI crawlers can reach and read your site, and whether you have an llms.txt.
---
# Zero-click search in 2026: how software companies still get the visit
URL: https://searchmaxx.link/blog/zero-click-search-2026
Published: 2026-10-01
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
Most searches no longer send a click, and AI answers are part of why. But for a software company the visit has not disappeared. It has moved: a buyer reads your name in an answer, then searches for you or types your URL later. Measure that second visit, and optimize to be the name in the answer, not only the link under it.
We think many teams are reading their traffic charts wrong. A flat or falling line from generic searches does not always mean fewer buyers found you. It can mean they found you somewhere you are not measuring.
## What the data says about zero-click
Three studies are worth knowing. They use different panels and methods, so treat each as its own snapshot.
| Study | Data | Finding |
|---|---|---|
| [SparkToro, July 2, 2024](https://sparktoro.com/blog/2024-zero-click-search-study-for-every-1000-us-google-searches-only-374-clicks-go-to-the-open-web-in-the-eu-its-360/) | Datos clickstream panel, Sept 2022 to May 2024 | 58.5% of US Google searches and 59.7% of EU searches ended with no click. For every 1,000 searches, 360 clicks went to the open web in the US and 374 in the EU |
| [Pew Research Center, July 22, 2025](https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/) | 900 US adults, 68,879 Google searches, March 2025 | Users clicked a result on 8% of visits with an AI summary and 15% without one. They clicked a link inside the summary on 1% of visits |
| [SparkToro, June 9, 2026](https://sparktoro.com/blog/in-2026-less-than-one-third-of-google-searches-still-send-a-click/) | Similarweb desktop and mobile panel, US, Jan to Apr 2026 | 68.01% of Google searches ended without a click |
The 2026 SparkToro study compares its figure with 60.45% for 2024. Rand Fishkin is careful to call the comparison across panels "apples and oranges", because the 2024 and 2026 numbers come from different providers and different users. The direction is clear. The exact size of the change is not. The study also leaves out the Google mobile app, so the true rate may be higher.
Pew's numbers are the cleanest view of AI summaries in particular. When a summary appeared, people were also more likely to end their browsing session: 26% of the time, against 16% without one.
And that is only Google. In ChatGPT, many answers involve no search at all. Ahrefs looked at 66.6 million free, logged-out ChatGPT responses from August and September 2026 and found that only 14.4% triggered a web search. ([Ahrefs, October 12, 2026](https://ahrefs.com/blog/query-fan-out-chatgpt/)) When ChatGPT answers from what the model already knows, there may be no link to click. There is only a name.
## Why being named still drives visits
Here is the part the zero-click charts miss. B2B software is rarely bought in one search. A buyer asks ChatGPT "what's the best invoicing tool for a small agency?", reads three names, and closes the tab. That counts as a zero-click session. A week later the same person types one of those names into Google, or straight into the address bar, and signs up for a trial.
That second visit is real, but it shows up in your analytics as a branded search or a direct visit. Nothing ties it to the AI answer that started it.
We want to be precise about the evidence. We know of no published study that cleanly measures how much branded search comes from AI answers. The path above is our inference from how B2B buying works, not a measured result. SparkToro's Rand Fishkin makes a similar case in [Zero Clicks Does Not Mean Zero Sales](https://sparktoro.com/blog/zero-clicks-does-not-mean-zero-sales/) (May 20, 2025). He argues that sales, not traffic, are the measure that matters, and puts the goal plainly: "I wanna get more people searching for my brand."
Google itself frames the split this way. When it launched a branded query filter for Search Console, it wrote that non-branded queries "show how new users find your content", while branded queries come from "people who are already familiar with your brand". ([Google Search Central, November 20, 2025](https://developers.google.com/search/blog/2025/11/search-console-branded-filter)) An AI answer is one of the ways a stranger becomes familiar.
## How to measure it
No single number captures this. Use several, and watch them move together.
| Signal | Where to find it | What it tells you | Watch out for |
|---|---|---|---|
| Branded search impressions and clicks | Search Console, Performance report, branded queries filter | How many people search for you by name | Google's filter is AI-assisted and says "some queries may occasionally be misidentified" |
| Non-branded impressions | Same report, non-branded view | Whether you still appear for buyer questions in Google, including AI Overviews | Google counts AI feature traffic inside the "Web" search type, not as its own line |
| Direct traffic | Your analytics tool | People who typed your URL or used a bookmark | Also collects untagged email, chat and app links |
| ChatGPT referrals | Analytics, filtered on `utm_source=chatgpt.com` | Clicks from links in ChatGPT answers | Only counts clicks. Most AI influence has no click |
| "How did you hear about us?" | Signup or demo form | Where buyers say they found you | People forget. Treat it as a trend, not an audit |
| AI answer checks | Ask the same buyer questions each week | Whether ChatGPT, Claude and Perplexity name you | Answers vary run to run, so repeat each question |
A few notes on each:
- **The branded filter is new and useful.** Google launched it on November 20, 2025, and made it available to all eligible sites on March 11, 2026. It works only for top-level properties with enough search volume. It counts typos and product names as branded too. ([Google Search Central](https://developers.google.com/search/blog/2025/11/search-console-branded-filter))
- **AI Overview and AI Mode traffic is already in Search Console.** Google says it is reported "within the 'Web' search type" and included in your overall numbers. You cannot split it out. ([Google Search Central, AI features](https://developers.google.com/search/docs/appearance/ai-features))
- **ChatGPT tags its links.** OpenAI says ChatGPT "automatically includes the UTM parameter utm_source=chatgpt.com in referral URLs". ([OpenAI Help Center, Publishers and Developers FAQ](https://help.openai.com/en/articles/12627856-publishers-and-developers-faq))
- **Ask the buyer.** Add a free-text "How did you hear about us?" field to your signup or demo form. If you use a dropdown, list ChatGPT, Claude, Perplexity and Google as separate options. This is the one signal that catches the visit with no click and no referrer.
The pattern to look for: AI answer checks start naming you, then branded impressions and self-reported "ChatGPT" answers rise in the weeks after, even if non-branded clicks stay flat. That is the zero-click visit showing up.
## What to optimize
If the click is shrinking, the goal shifts from "rank and get the click" to "be the name in the answer, then win the visit that follows." Here is the checklist we work from.
**Be in the answer**
- Let AI search crawlers in. If `OAI-SearchBot` or `PerplexityBot` is blocked, those engines cannot cite your pages. See [which AI crawlers to allow](https://searchmaxx.link/blog/ai-crawlers-robots-txt).
- Send real text in the HTML. Most AI crawlers do not run JavaScript. See [how to see what they see](https://searchmaxx.link/blog/ai-crawlers-javascript).
- Publish the facts buyers ask about on your own site: pricing, limits, integrations, security. In Ahrefs' October 2026 data, 84.4% of ChatGPT answers to fact questions cited at least one official source. ([Ahrefs](https://ahrefs.com/blog/query-fan-out-chatgpt/))
- Write pages that answer the comparison questions buyers ask, like "X vs Y" and "best tool for Z", with a clear verdict.
- Get named on the third-party pages that answer engines read: review sites, comparison articles, community threads. More on that in [how ChatGPT chooses which sites to cite](https://searchmaxx.link/blog/how-chatgpt-chooses-sources).
**Win the visit that follows**
- Search your own brand name. Make sure your homepage title and description say what you sell in plain words, so the branded result matches what the AI answer said.
- Make the pricing page easy to reach from the homepage. Buyers who arrive by brand search are often checking a fact they just read.
- Keep facts consistent everywhere. If ChatGPT says your plan starts at $12 and your site says $15, you lose trust at the moment it counts.
**Measure it**
- Turn on the branded queries filter in Search Console and note this week's branded impressions.
- Add "How did you hear about us?" to your signup form, with AI tools as options.
- Save a list of 10 to 20 buyer questions and check each AI engine against it every week.
## The takeaway
Zero-click is real and growing. Roughly two in three US Google searches now end without a click, by SparkToro's latest count, and many ChatGPT answers involve no search at all. But for software companies, the buyer who reads your name still has to visit you to buy. That visit arrives as a branded search, a direct visit, or a line in your signup form. Measure those, and the zero-click era looks less like lost traffic and more like traffic you were not counting.
If you want a starting point, our [free check](https://searchmaxx.link/) tells you in about 10 seconds whether AI crawlers can reach and read your site. For a real example of the non-branded side of search, see our [case study](https://searchmaxx.link/blog/case-study-5x-google-clicks), where two thirds of the clicks came from searches without the brand name.
---
# How ChatGPT search chooses which sites to cite
URL: https://searchmaxx.link/blog/how-chatgpt-chooses-sources
Published: 2026-09-30
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
ChatGPT can only cite pages its search crawler is allowed to reach. When it searches, it rewrites the question into shorter queries, sends them to partner search providers, and ranks what comes back "using multiple factors". OpenAI has not published those factors. Studies show it favors pages whose titles match the question and, for factual questions, the official source.
Most advice on this topic is guesswork dressed up as a formula. Our position is narrower: do the few things OpenAI has documented, then use the independent data to choose what to write. Where we infer something below, we say so.
## What OpenAI has documented
OpenAI's public statements fit on one page. Here they are, with sources.
| What OpenAI says | Source |
|---|---|
| "Any public website can appear in ChatGPT search." | [Publishers and Developers FAQ](https://help.openai.com/en/articles/12627856-publishers-and-developers-faq) |
| "OAI-SearchBot is used to surface websites in search results in ChatGPT's search features." Sites that block it "will not be shown in ChatGPT search answers", though they can still appear as navigational links | [OpenAI crawler docs](https://developers.openai.com/api/docs/bots) |
| A robots.txt change can take "~24 hours" to apply to search results | [OpenAI crawler docs](https://developers.openai.com/api/docs/bots) |
| `ChatGPT-User` visits pages on a user's behalf and "is not used to determine whether content may appear in Search" | [OpenAI crawler docs](https://developers.openai.com/api/docs/bots) |
| Blocking `GPTBot` opts you out of model training. It is separate from search | [OpenAI crawler docs](https://developers.openai.com/api/docs/bots) |
| "ChatGPT ranks search results using multiple factors intended to help users find relevant, reliable information. Placement is not guaranteed." | [Searching the web with ChatGPT](https://help.openai.com/en/articles/9237897-chatgpt-search) |
| To be eligible, allow OAI-SearchBot and make sure your host or CDN "allows traffic from OpenAI's published searchbot IP addresses" | [Searching the web with ChatGPT](https://help.openai.com/en/articles/9237897-chatgpt-search) |
| ChatGPT adds `utm_source=chatgpt.com` to links it sends | [Publishers and Developers FAQ](https://help.openai.com/en/articles/12627856-publishers-and-developers-faq) |
We read both help pages in October 2026. OpenAI updates them often, so check the live versions.
### How a search happens
OpenAI's help page describes the steps:
1. **ChatGPT decides whether to search.** It "may search the web automatically when your question would benefit from current information." Users can also turn search on by hand.
2. **It rewrites the question.** "ChatGPT search sometimes partners with other search providers. When it does, ChatGPT search typically rewrites your query into one or more targeted queries that it sends those providers."
3. **It can search again.** "After reviewing the initial results, ChatGPT search may send additional, more specific queries to other search providers."
4. **It ranks and cites.** Responses "may include citations", and a Sources panel lists cited pages and other relevant links.
The same page links to the privacy policies of Microsoft and Shopify as search providers whose policies apply. ([OpenAI Help Center](https://help.openai.com/en/articles/9237897-chatgpt-search))
**Inference:** Microsoft runs Bing. So pages that Bing has indexed are likely candidates when ChatGPT queries that provider. OpenAI has not said what share of results comes from any one provider. It also notes it may learn a URL "from a third-party search provider or by crawling other pages", which suggests it mixes provider results with its own crawling.
That is the whole public record. OpenAI does not say how it weighs authority, freshness, links or structured data. Anyone who tells you the exact formula is guessing.
## What independent studies have measured
Ahrefs, which sells SEO and AI tracking software, has published the largest studies we know of on ChatGPT citations. Its results are vendor research, not peer-reviewed, and each covers one model at one point in time. Still, the patterns are consistent enough to act on.
### Most answers do not search at all
In 66.6 million free, logged-out ChatGPT responses from August and September 2026, only 14.4% triggered a web search. When it did search, it ran about 1.6 queries per response. ([Ahrefs, October 12, 2026](https://ahrefs.com/blog/query-fan-out-chatgpt/))
Ahrefs notes that paid and reasoning models search more, and that "best X" style prompts trigger more lookups. Buyer questions about software tend to be that kind. But the takeaway holds: much of what ChatGPT says about your category comes from the model itself, not from a live search.
### Google rankings do not predict ChatGPT citations
Ahrefs reran 118,931 of ChatGPT's search queries on Google. Only 6.82% of the URLs ChatGPT returned were in Google's top 10 for the same query. 83.39% did not appear in Google's results at all. ([Ahrefs, August 20, 2025](https://ahrefs.com/blog/is-chatgpt-really-powered-by-google/))
So ranking first on Google does not mean ChatGPT will cite you, and the reverse is also true.
### Titles that match the question win
Ahrefs studied 1.4 million prompts to compare pages ChatGPT retrieved and cited against pages it retrieved and skipped. ([Ahrefs, April 15, 2026](https://ahrefs.com/blog/why-chatgpt-cites-pages/))
- About half of retrieved URLs were cited.
- Cited pages had titles closer in meaning to the prompt. The similarity score was 0.602 for cited titles against 0.484 for skipped ones.
- Search results with natural-language URL slugs were cited 89.78% of the time, against 81.11% without.
- Reddit made up 67.8% of the URLs ChatGPT retrieved but did not cite. Ahrefs reads this as ChatGPT using Reddit for context while rarely citing it.
- Cited search pages had a median age of about 500 days. Very new pages were mostly in the skipped group.
These are associations, not proof of cause. Ahrefs measured relevance with open-source embedding models, because ChatGPT's own scoring is private.
### For facts, the official source wins
The October 2026 Ahrefs study also looked at which sources ChatGPT cited between March and September 2026 in the US. ([Ahrefs](https://ahrefs.com/blog/query-fan-out-chatgpt/))
- 84.4% of answers to fact questions cited at least one official source. For comparison questions it was 68.3%.
- 6.8% of ChatGPT's queries used the `site:` operator. Of those aimed at the most-searched domains, 75.9% targeted brand sites.
- The words "official" and "price" became more common in its queries over the period.
- Reddit citations fell 88%, from about 1 in 5 answers in March to about 1 in 43 by late September. Wikipedia fell 80%.
- OpenAI publishing partners' share of citations among the top 200 domains rose from 7.5% in March to 15.8% in July, then settled at 12.5%.
Ahrefs reads this as ChatGPT moving toward original sources and away from sites that summarize them. That is its interpretation of two months of one model. It fits OpenAI's stated aim of "relevant, reliable information", but OpenAI has not confirmed it.
## What this means for a software company
Put the documented facts and the measured patterns together and three points follow. The second and third are our inferences.
1. **Access is the only hard rule.** If `OAI-SearchBot` is blocked, by robots.txt or by a firewall, you will not be cited. This is documented.
2. **Your own site should be the best source for facts about you.** When a buyer asks what your product costs or whether it has SSO, ChatGPT increasingly looks for the official page. If that page is vague, missing, or hidden behind JavaScript, it will cite someone else's description of you.
3. **Comparison questions are where third parties matter.** For "best X for Y" questions, about a third of answers cited no official source at all in Ahrefs' data. Being named on the review sites and comparison articles that rank for those questions is how you show up there.
## A checklist you can run today
| Check | How | Why |
|---|---|---|
| OAI-SearchBot is allowed in robots.txt | Open `/robots.txt` and look for a `Disallow` that matches it or `*` | Documented: blocked sites are not shown in answers |
| Your firewall lets it through | `curl -A "OAI-SearchBot" -I https://yoursite.com/` should return `200` | Documented: hosts must allow OpenAI's searchbot IPs |
| Pages render without JavaScript | Turn off JavaScript and reload, or use the word count in [this guide](https://searchmaxx.link/blog/ai-crawlers-javascript) | Measured: most AI crawlers do not run JavaScript |
| Your site is in Bing | Search `site:yoursite.com` on Bing, or check Bing Webmaster Tools | Inference: Microsoft is a listed search provider |
| Pricing, limits, integrations and security are on public pages | One page per topic, in plain text | Measured: fact questions mostly cite official sources |
| Page titles match the question a buyer asks | "Paidwick pricing: plans and limits", not "Plans" | Measured: cited titles are closer to the prompt |
| URLs are readable words | `/pricing`, `/vs/quickbooks`, not `/p?id=812` | Measured: natural-language slugs were cited more |
| You are named on third-party comparison pages | Search your category's "best X" questions and list who ranks | Measured: comparison answers cite third parties more |
| ChatGPT traffic is tracked | Filter analytics on `utm_source=chatgpt.com` | Documented: ChatGPT tags its links |
The robots.txt step is covered in depth in [which AI crawlers to allow](https://searchmaxx.link/blog/ai-crawlers-robots-txt). One file you can skip worrying about is llms.txt. OpenAI has not said its crawler reads it, as we cover in [llms.txt in 2026](https://searchmaxx.link/blog/llms-txt-2026).
Remember that a citation is not the only win. Many ChatGPT answers name products without any search or link. For how that turns into visits, and how to measure it, see [zero-click search in 2026](https://searchmaxx.link/blog/zero-click-search-2026).
## The short version
OpenAI documents access, not ranking. Let `OAI-SearchBot` in, make sure your pages send real text, and put the facts about your product on your own site in pages titled the way buyers ask. Then earn mentions on the comparison pages ChatGPT reads for "best X" questions. Everything beyond that is a pattern in someone's data, worth acting on, but not a rule.
Our [free check](https://searchmaxx.link/) tests the first two in about 10 seconds. It tells you whether OAI-SearchBot and the other AI crawlers can reach your site, and how much of your page they can read.
---
# SEO vs GEO vs AEO: what's the difference, and which one you need
URL: https://searchmaxx.link/blog/seo-vs-geo-vs-aeo
Published: 2026-09-29
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
SEO is the work of getting your pages ranked in search engines like Google. GEO (generative engine optimization) and AEO (answer engine optimization) are two names for the work of getting your company cited or named inside AI answers from ChatGPT, Claude, Perplexity and Google's AI Overviews. Most of the work is shared, so a software company with limited time should do the SEO basics first and then add the few things AI answers reward on top.
## Where the terms came from
**SEO** is the old one. Google's own [SEO starter guide](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) defines it as being "about helping search engines understand your content". The goal is a high position in a list of ten blue links, and a click.
**GEO** has a clear origin. It comes from a research paper, [GEO: Generative Engine Optimization](https://arxiv.org/abs/2311.09735), by Pranjal Aggarwal, Vishvak Murahari, Tanmay Rajpurohit, Ashwin Kalyan, Karthik Narasimhan and Ameet Deshpande, with authors from Princeton and IIT Delhi. It was first posted in November 2023 and accepted to KDD 2024. The authors call GEO "the first novel paradigm to aid content creators in improving their content visibility in generative engine responses".
The paper is worth knowing because it measured things. The authors built a benchmark of 10,000 queries and tested ways of rewriting a source page to see which ones made AI answers use it more. From the [full paper](https://arxiv.org/html/2311.09735v3):
- Adding quotations from relevant sources did best, about 41% better than the unchanged page on their main visibility measure.
- Adding statistics came next, at about 31%.
- Citing sources came third, at about 27%.
- Keyword stuffing did worse than doing nothing.
They also ran the tests on Perplexity, a live AI search engine, and saw the same pattern. Adding quotations improved visibility there by 22%.
**AEO**, answer engine optimization, has no founding paper that we could find. Today people use it to mean roughly the same thing as GEO, with the stress on pages that give short, direct answers an AI can lift. If someone tells you AEO and GEO are different disciplines, ask them what they would do differently. Usually the answer is nothing.
## Side by side
| Factor | SEO | GEO | AEO |
|---|---|---|---|
| Goal | Rank high in search results and get the click | Get cited or named inside AI-generated answers | Same as GEO, framed around direct answers |
| Where you show up | Google and Bing result pages | ChatGPT, Claude, Perplexity, Google AI Overviews and AI Mode | Same as GEO |
| How success is measured | Clicks, impressions and positions in Search Console; organic traffic | How often AI answers name or cite you for the questions buyers ask; referral visits from AI tools | Same as GEO |
| Main tactics | Crawlable pages, titles and descriptions, useful content, links from other sites | Everything in SEO, plus pages with clear answers, statistics, quotes and sources; being mentioned on sites AI tools cite; letting AI crawlers in | Same as GEO, with extra weight on question-and-answer formatting |
| Origin | 1990s web search | 2023 research paper | Industry usage, no single source |
## How much they overlap
More than the new names suggest. Three facts make the case.
**Google says AI Overviews need nothing extra.** In its [guide to AI features](https://developers.google.com/search/docs/appearance/ai-features), Google writes: "There are no additional requirements to appear in AI Overviews or AI Mode, nor other special optimizations necessary." A page has to be indexed and eligible to show a snippet. Google adds that you do not need "new machine readable files, AI text files, or markup" and that "there's also no special schema.org structured data that you need to add." For Google, GEO is SEO.
**AI answers are built from search results.** Google's AI features use "query fan-out", running several related searches and then building an answer from the results. Perplexity's own help center says it [searches the web](https://www.perplexity.ai/help-center/en/articles/10352155-what-is-perplexity) for each question and that each response "includes citations and links to original sources." If you are not findable in search, you are not in the pool these tools pick from.
**The crawlers are different, and that is where they split.** Google's AI features use the normal Googlebot. ChatGPT, Claude and Perplexity use their own crawlers, and [Vercel's crawler study](https://vercel.com/blog/the-rise-of-the-ai-crawler) found none of those crawlers run JavaScript. A site can rank fine in Google and still look empty to ChatGPT. We cover the fix in [AI crawlers don't run JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript), and which bots to allow in [our robots.txt guide](https://searchmaxx.link/blog/ai-crawlers-robots-txt).
So the real differences are small and specific:
1. **Who can read your site.** SEO only needs Googlebot and Bingbot. GEO needs `OAI-SearchBot`, `Claude-SearchBot` and `PerplexityBot` too, and those need your text in the HTML without JavaScript.
2. **What counts as a win.** SEO wins a click. GEO often wins a mention with no click. [Pew Research](https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/) tracked 900 US adults in March 2025 and found people clicked a regular result on 8% of visits to a Google page with an AI summary, against 15% without one. They clicked a link inside the summary on 1% of visits. Being the name in the answer matters more when fewer people click.
3. **What content gets used.** The GEO paper suggests pages with numbers, quotes and named sources get used more. That is also good writing for SEO, but GEO makes it a requirement rather than a nice extra.
4. **Where else you need to appear.** AI answers are assembled from pages across the web, not only yours. Each comparison post, directory listing or community thread that names you is one more page an AI tool can find you on. For SEO those pages mostly matter as links. For GEO the mention itself counts.
## How to measure each one
**SEO** has mature, free measurement. Google Search Console shows clicks, impressions and average position for every query.
**GEO and AEO** do not have an equivalent yet. Google says pages shown in AI Overviews and AI Mode are "included in the overall search traffic in Search Console", under the Web search type, so you cannot separate them there. For ChatGPT, Claude and Perplexity there is no console at all. The practical method:
1. Write down 20 to 50 questions a buyer asks before choosing a product like yours, such as "best invoicing tool for agencies".
2. Ask each one in ChatGPT, Claude, Perplexity and Google, every week, in a fresh session.
3. Record whether you are named, whether you are cited with a link, and which competitors appear.
4. Watch referral traffic from chatgpt.com, perplexity.ai and claude.ai in your analytics.
Answers vary from run to run, so track the trend over weeks, not a single result.
## Which one you need
| Your situation | What to do first |
|---|---|
| New site, little or no Google traffic | SEO basics: crawlable pages, a sitemap, titles and descriptions, a few pages that answer real buyer questions. This is also most of GEO. |
| Ranks in Google, never named by ChatGPT or Perplexity | GEO checks: test your pages without JavaScript, check robots.txt and your firewall for AI crawlers, add numbers and sources to your key pages. |
| Strong in both, losing to competitors in AI answers | Get mentioned on the sites AI tools cite for your category: comparison pages, directories, and community threads. |
| Very limited time, maybe two hours a week | One page a week that answers one buyer question better than anything else on the web, with a table, numbers and sources. It serves SEO, GEO and AEO at once. |
## Verdict
For a software company with limited time, treat SEO, GEO and AEO as one job with two extra checks.
Do the SEO basics, because Google's AI features run on them and the other AI tools search the web too. Then make sure AI crawlers can actually read your pages, and write pages that state facts with numbers and sources. Skip anyone selling AEO as a separate program with separate deliverables. The overlap is too large to pay for twice.
If you want to see where your site stands, our [free check](https://searchmaxx.link/) tests whether AI crawlers can reach and read your pages in about 10 seconds. If you are choosing which AI tools to focus on, [ChatGPT vs Perplexity vs Google AI Overviews](https://searchmaxx.link/blog/chatgpt-vs-perplexity-vs-google-ai-overviews) covers how each one finds and cites sources.
---
# ChatGPT vs Perplexity vs Google AI Overviews: how each cites sources
URL: https://searchmaxx.link/blog/chatgpt-vs-perplexity-vs-google-ai-overviews
Published: 2026-09-28
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
ChatGPT search, Perplexity and Google AI Overviews all search the web and cite the pages they use, but each relies on a different crawler and a different index. ChatGPT needs `OAI-SearchBot`, Perplexity needs `PerplexityBot`, and Google AI Overviews use the normal `Googlebot` and Google's search index. Allow all three, make sure your text is in the HTML without JavaScript, and measure each one separately, because only Google gives you a dashboard.
Everything below comes from each company's own documentation or a published study, linked inline. Where a company does not document something, we say so instead of guessing.
## The short version
| Feature | ChatGPT search | Perplexity | Google AI Overviews |
|---|---|---|---|
| Crawler that matters | `OAI-SearchBot` | `PerplexityBot` | `Googlebot` |
| Where results come from | OpenAI's crawl plus third-party search providers and partner content | Perplexity's own web search | Google's search index |
| How citations appear | Inline citations, plus a Sources panel | Citations and links to sources in each answer | Supporting links inside the overview |
| robots.txt for search | Block `OAI-SearchBot` to leave ChatGPT search answers | Block `PerplexityBot` to leave Perplexity results | Only `Googlebot` controls it. Blocking it removes you from all of Google Search |
| Training opt-out, separate | `GPTBot` | Perplexity says `PerplexityBot` is not used for training | `Google-Extended`, which does not affect Search |
| User-triggered fetcher | `ChatGPT-User`, robots.txt "may not apply" | `Perplexity-User`, "generally ignores robots.txt" | None documented for AI Overviews |
| Runs JavaScript | No, per Vercel's study | No, per Vercel's study | Yes, Googlebot renders pages |
| Built-in measurement | `utm_source=chatgpt.com` on referral links | None documented | Counted inside Search Console's Web traffic |
## ChatGPT search
**Crawler and index.** OpenAI's [crawler docs](https://developers.openai.com/api/docs/bots) say "OAI-SearchBot is for search." It is the bot that surfaces sites in ChatGPT's search features. OpenAI's [ChatGPT search help page](https://help.openai.com/en/articles/9237897-chatgpt-search) and [launch post](https://openai.com/index/introducing-chatgpt-search/) say search also draws on third-party search providers and content from OpenAI's partners. OpenAI does not name the providers on those pages, so we will not either.
**Citations.** Answers that used search may include inline citations. A Sources panel lists related links, including some that were not cited in the text. OpenAI's help page says placement is not guaranteed and that ChatGPT ranks results using several factors meant to surface relevant, reliable information.
**robots.txt.** Three bots, three jobs:
- `OAI-SearchBot`: OpenAI says sites that opt out "will not be shown in ChatGPT search answers, though can still appear as navigational links."
- `GPTBot`: training only. "Disallowing GPTBot indicates a site's content should not be used in training generative AI foundation models."
- `ChatGPT-User`: visits a page when a user asks. It "is not used to determine whether content may appear in Search," and because a user started the visit, "robots.txt rules may not apply."
"Each setting is independent of the others," so you can block training and still allow search. OpenAI says changes take about 24 hours to apply. It also asks sites to allow its published IP ranges, so check your firewall, not only robots.txt.
**Measuring it.** OpenAI's [publishers FAQ](https://help.openai.com/en/articles/12627856-publishers-and-developers-faq) says ChatGPT adds `utm_source=chatgpt.com` to referral links. Filter for it in your analytics. That counts clicks, not mentions. To count mentions, ask ChatGPT your buyers' questions and record whether you are named.
## Perplexity
**Crawler and index.** Perplexity's [crawler docs](https://docs.perplexity.ai/guides/bots) say `PerplexityBot` is "designed to surface and link websites in search results on Perplexity" and "is not used to crawl content for AI foundation models." Its [help center](https://www.perplexity.ai/help-center/en/articles/10352155-what-is-perplexity) says Perplexity searches the web for each question.
**Citations.** Per that help page, "each response includes citations and links to original sources." Citations are the core of the product, not an extra panel.
**robots.txt.** Two bots:
- `PerplexityBot`: allow it to appear in results. Perplexity also recommends allowing its published IP ranges, listed at a JSON endpoint on its docs page, and gives example firewall rules for Cloudflare and AWS.
- `Perplexity-User`: fetches a page a user asked about. "Since a user requested the fetch, this fetcher generally ignores robots.txt rules."
Perplexity says changes can take up to 24 hours. There is no separate training bot to block, because Perplexity says neither bot is used for training.
**Measuring it.** Perplexity does not document a referral tag. Look for visits referred by perplexity.ai in your analytics, and ask Perplexity your buyers' questions to count mentions. Perplexity is also the engine the [GEO paper](https://arxiv.org/html/2311.09735v3) tested live. Adding quotations from relevant sources raised a page's visibility there by 22%, and keyword stuffing made it about 10% worse.
## Google AI Overviews
**Crawler and index.** Google's [AI features guide](https://developers.google.com/search/docs/appearance/ai-features) says a page must be indexed and eligible to show a snippet in Search to be a supporting link. "There are no additional technical requirements." The crawler is the normal Googlebot. Overviews may use "query fan-out", running several related searches across subtopics, which lets them show a wider set of links than one classic search.
**Citations.** Overviews show supporting links. [Pew Research](https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/) analyzed 68,879 Google searches from 900 US adults in March 2025. Of those, 18% produced an AI summary. 88% of the summaries cited three or more sources. Users clicked a link inside the summary on 1% of visits, and clicked a regular result on 8% of visits with a summary, against 15% without one.
**robots.txt.** This is where Google differs most. There is no separate AI Overviews bot. Google's [crawler docs](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers) say `Google-Extended` controls Gemini training and grounding, and that it "does not impact a site's inclusion in Google Search nor is it used as a ranking signal in Google Search." To limit what Overviews show from your page, Google points to `nosnippet`, `data-nosnippet`, `max-snippet` and `noindex`. Those controls apply to your regular search snippets too.
**Measuring it.** Google says traffic from AI features is "included in the overall search traffic in Search Console", under the Web search type. You get the clicks and impressions, but you cannot split out AI Overviews from regular results.
## What the differences mean in practice
**JavaScript.** [Vercel's study of AI crawlers](https://vercel.com/blog/the-rise-of-the-ai-crawler) found that OpenAI's and Perplexity's crawlers do not render JavaScript, while Google's crawling does. A page that builds its text in the browser can show up in AI Overviews and be invisible to ChatGPT and Perplexity. We explain how to check in [AI crawlers don't run JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript).
**Firewalls.** OpenAI and Perplexity both ask you to allow their published IP ranges. Bot protection that blocks unknown crawlers can remove you from both while Google works fine.
**Training and search are separate for OpenAI and Google.** You can opt out of `GPTBot` and `Google-Extended` and keep full search visibility. With Perplexity there is nothing to opt out of, because its docs say neither bot trains models.
## What to do for all three
1. **Allow the search crawlers.** Your robots.txt should allow `OAI-SearchBot`, `PerplexityBot` and `Googlebot`. Our [robots.txt guide](https://searchmaxx.link/blog/ai-crawlers-robots-txt) has a file you can copy.
2. **Check the firewall.** Test with each bot's user agent and confirm you get a `200`, then allow the IP ranges OpenAI and Perplexity publish.
3. **Put your text in the HTML.** Fetch your key pages with `curl` and count the words. If your product description or pricing only appears after JavaScript runs, ChatGPT and Perplexity cannot use it.
4. **Get indexed in Google.** It is the only requirement for AI Overviews, and a good sign your pages are findable elsewhere.
5. **Write pages AI answers can cite.** Answer one question per page, state it early, and back it with numbers, quotes and named sources. The GEO paper found those additions raised visibility, and keyword stuffing lowered it.
6. **Measure each engine separately.** Filter `utm_source=chatgpt.com` and perplexity.ai referrals in your analytics, use Search Console for Google, and run the same set of buyer questions in all three each week.
## Verdict
| If you... | Focus on |
|---|---|
| Already rank in Google | ChatGPT and Perplexity. Check crawler access, firewall rules and JavaScript first. Those are the usual gaps. |
| Have a JavaScript-heavy site | Server-rendered HTML. One fix opens your pages to ChatGPT and Perplexity at once. |
| Block AI bots for training reasons | Keep blocking `GPTBot` and `Google-Extended`, but allow `OAI-SearchBot` and `PerplexityBot`. Training and search are separate rules. |
| Want one number to track | Search Console for Google, plus a weekly count of how often each engine names you for 20 buyer questions. |
You do not need three strategies. The same three steps cover all of them: allow the crawlers, serve real HTML, and write pages worth citing. Then measure each engine on its own, because their numbers live in different places.
To see whether each AI crawler can reach and read your site today, run our [free check](https://searchmaxx.link/). If you are still sorting out the terms, [SEO vs GEO vs AEO](https://searchmaxx.link/blog/seo-vs-geo-vs-aeo) explains how they overlap.
---
# Next.js vs Astro vs Webflow for a marketing site AI search can read
URL: https://searchmaxx.link/blog/nextjs-vs-astro-vs-webflow-for-seo
Published: 2026-09-27
Updated: 2026-10-18
Author: Roshan, founder of SearchMaxx
All three can produce a marketing site that ChatGPT, Claude, Perplexity and Google can read, because all three can send finished HTML in the first response. Astro does it by default with the least JavaScript. Next.js does it by default too, but a few common patterns quietly send crawlers less than you think. Webflow sends real HTML without any code, and is the best fit when marketers, not developers, edit the site.
The reason this matters: [Vercel's study of AI crawlers](https://vercel.com/blog/the-rise-of-the-ai-crawler) found that OpenAI's crawlers, Anthropic's `ClaudeBot` and `PerplexityBot` do not run JavaScript. Google's crawling does. Whatever your framework sends before JavaScript runs is all those AI crawlers will ever see.
## Side by side
| Feature | Next.js | Astro | Webflow |
|---|---|---|---|
| Rendering model | React. Pages are Server Components by default and are rendered to HTML on the server or at build time | Renders pages to static HTML and strips client-side JavaScript by default | Visual builder that publishes pages as HTML and CSS on Webflow's hosting |
| What crawlers get without JavaScript | Full text, if content is rendered on the server. Empty spots wherever content is fetched in the browser | Full text. JavaScript only loads for components you mark as interactive | Full text for pages built in the designer. Script-based embeds may arrive empty |
| Titles and descriptions | Built-in `metadata` object and `generateMetadata` function | You write the `` tags in a layout | Per-page fields in page settings |
| Sitemap | `app/sitemap.ts` file convention | Official `@astrojs/sitemap` integration | Generated automatically |
| robots.txt | `app/robots.ts` file convention | A static file you add | Edited in site settings, on paid plans |
| Structured data (JSON-LD) | A `