# 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. ![Google clicks per day for an open-source AI company, February 9 to May 4, 2026. Clicks rise from about 515 a day to a peak near 3,500 in early April and finish around 2,573 a day.](https://searchmaxx.link/img/case-ai-company.svg) ## 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/]*>.*<\/script>//g' -e 's/<[^>]*>/ /g' \ | wc -w ``` The command is rough. It misses scripts that span several lines, so the real number may be lower. As a rule of thumb: - **A few hundred words or more:** crawlers can read your page. - **Under about 150:** crawlers are probably getting a nearly empty shell. Your headline, product description and pricing likely arrive only after JavaScript runs. You can also turn off JavaScript in your browser's developer tools and reload. What is left is roughly what an AI crawler gets. ## How to fix it The fix is to send real text in the first response, not to remove JavaScript. - **Next.js, Nuxt, SvelteKit, Remix, Astro:** these can render pages on the server or ahead of time. Make sure your marketing pages use that. A page marked as client-only, or one that fetches its content in the browser after load, arrives empty. - **A single-page app built with Vite or Create React App:** pre-render the marketing pages to static HTML at build time, or move them to a framework that does. Keep the app itself as it is. Crawlers only need the public pages. - **Webflow, Framer, WordPress, Squarespace:** these send real HTML already. Check anything embedded through a script, such as pricing tables, reviews and FAQ widgets. Those often load with JavaScript and come through empty. After the fix, run the word count again. Our [free check](https://searchmaxx.link/) does the same test and tells you how many words arrive without JavaScript. --- # Which AI crawlers to allow in robots.txt, and which only collect training data URL: https://searchmaxx.link/blog/ai-crawlers-robots-txt Published: 2026-10-15 Author: Roshan, founder of SearchMaxx If ChatGPT, Claude or Perplexity cannot fetch your pages, they cannot cite them. The most common reason we see is a robots.txt rule someone added to block "AI" without knowing which bot does what. Each company runs separate bots for separate jobs. Blocking the training bot keeps your content out of future models. Blocking the search bot keeps you out of AI search answers today. Most software companies want the first choice to be theirs and the second to be "allow". ## The bots that matter | Company | Bot | What it does | What blocking it does | |---|---|---|---| | OpenAI | `OAI-SearchBot` | Finds sites to show in ChatGPT search | Your pages stop appearing in ChatGPT search answers | | OpenAI | `GPTBot` | Collects content that may train OpenAI's models | Signals that your content should not be used for training | | OpenAI | `ChatGPT-User` | Visits a page when a ChatGPT user asks about it | robots.txt "may not apply", because a user started the visit | | Anthropic | `Claude-SearchBot` | Indexes pages to improve Claude's search results | Can reduce your visibility in Claude's search answers | | Anthropic | `ClaudeBot` | Collects content that may train Anthropic's models | Excludes your future content from training | | Anthropic | `Claude-User` | Fetches a page when a Claude user's question needs it | Stops those fetches, which can reduce your visibility | | Perplexity | `PerplexityBot` | Finds and links sites in Perplexity's answers | Your pages stop appearing in Perplexity results | | Perplexity | `Perplexity-User` | Visits a page a user asked about | Generally ignores robots.txt, because a user asked | | Google | `Googlebot` | Crawls for Google Search, including AI Overviews | Removes you from Google Search entirely | | Google | `Google-Extended` | Not a bot. A robots.txt token for Gemini training and grounding | Does not affect Google Search or ranking | Sources: [OpenAI's crawler docs](https://developers.openai.com/api/docs/bots), [Anthropic's crawler policy](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler), [Perplexity's crawler docs](https://docs.perplexity.ai/guides/bots), and [Google's list of crawlers](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers). Two details catch people out: - **Google AI Overviews come from Googlebot.** Google says `Google-Extended` "does not impact a site's inclusion in Google Search nor is it used as a ranking signal in Google Search." Blocking `Google-Extended` does not take you out of AI Overviews. Blocking `Googlebot` takes you out of everything. - **Blocking a training bot does not touch the search bot.** You can block `GPTBot` and still allow `OAI-SearchBot`. They are separate rules. ## A robots.txt you can copy This version lets every AI search bot in and opts out of model training. If you are happy to be used for training too, delete the last three groups. ```text # AI search: allowed, so assistants can find and cite you User-agent: OAI-SearchBot User-agent: Claude-SearchBot User-agent: PerplexityBot Allow: / # Everyone else, including Googlebot and Bingbot User-agent: * Allow: / # Model training: opted out User-agent: GPTBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: Google-Extended Disallow: / ``` A crawler follows the most specific group that names it, and ignores the `*` group when a named group exists. If you list a bot by name, give it every rule it needs in that group. ## Check that it worked robots.txt is not the only thing that blocks bots. Firewalls and bot protection often refuse AI crawlers before robots.txt is read, and you will not see it from your own browser. You can test the server's answer yourself: ```text curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (compatible; OAI-SearchBot)" https://yoursite.com/ ``` A `200` means the page loaded. A `403` or `503` means something in front of your site is turning the bot away. Some firewalls check the bot's IP address as well as its name, so a `200` here is good but not proof. Our [free check](https://searchmaxx.link/) runs both tests for every AI search bot in about 10 seconds. --- # Best AI visibility tracking tools for software companies in 2026 URL: https://searchmaxx.link/blog/best-ai-visibility-tracking-tools Published: 2026-10-14 Updated: 2026-10-18 Author: Roshan, founder of SearchMaxx For most software companies, the best AI visibility tracker is Ahrefs Brand Radar if you already pay for Ahrefs, Semrush's AI Visibility Toolkit if you already pay for Semrush, and Otterly.AI if you want a cheap standalone tool. Profound and Peec AI suit larger teams that need more engines and reporting. If you have no budget, a fixed list of 20 prompts asked by hand each week, logged in a spreadsheet, tells you most of what you need. ## What these tools actually measure Every tool here does the same basic job. You give it a list of prompts, such as "best invoicing app for freelancers". It asks one or more AI engines those prompts on a schedule, saves the answers, and counts how often your brand and your competitors appear. Most also record which web pages the engine cited. Two things to know before you pay for one: - **Answers change from run to run.** In a study by SparkToro and Gumshoe.ai, the same brand-recommendation prompt run 60 to 100 times gave the same list less than 1 time in 100 on ChatGPT and Google's AI. The same list in the same order came up less than 0.1% of the time. How often a brand appeared across many runs was far more stable than its position. ([Search Engine Journal on the SparkToro study](https://www.searchenginejournal.com/ai-recommendations-change-with-nearly-every-query-sparktoro/566242/)) So track the share of answers that name you, not your "rank". - **More prompts beat more features.** A tool that checks 100 prompts once a week tells you more than one that checks 5 prompts every day. ## The tools compared Prices are as of October 2026, from each vendor's own pricing page. | Tool | Best for | Engines covered | Starting price | |---|---|---|---| | Ahrefs Brand Radar | Teams already on Ahrefs | ChatGPT, Perplexity, Gemini, Copilot, AI Overviews, AI Mode, Claude | $199/mo add-on, on top of an Ahrefs plan from $129/mo | | Semrush AI Visibility Toolkit | Teams already on Semrush | ChatGPT, Google AI Mode | $99/mo | | Otterly.AI | Small teams, standalone tracking | ChatGPT, AI Overviews, Perplexity, Copilot (more as add-ons) | About $25 to $29/mo for 15 prompts | | Profound | Larger marketing teams | Up to 9, including ChatGPT, Perplexity, Claude, Gemini, Copilot | Free 7-day trial, then custom pricing | | Peec AI | Mid-size SEO and content teams | ChatGPT, Perplexity, Gemini, AI Mode | Not shown publicly when we checked | | Bing Webmaster Tools AI Performance | Anyone with a verified site | Copilot, Bing AI summaries | No price listed | | Manual prompt log | No budget, early stage | Any engine you can open | Free, about an hour a week | ## Ahrefs Brand Radar **What it is.** An add-on to Ahrefs that tracks brand mentions across AI answers, YouTube and Reddit. It covers AI Overviews, AI Mode, Perplexity, Gemini, Copilot and ChatGPT, with Claude also available. ([Ahrefs Brand Radar](https://ahrefs.com/brand-radar)) **Best for.** Teams that already use Ahrefs for SEO and want AI mentions in the same place as backlinks and rankings. **Price.** The Brand Radar AI add-on starts at $199 a month. Custom prompt packages are $50, $100 and $250 a month. You need a paid Ahrefs plan, which starts at $129 a month for Lite. ([Ahrefs pricing](https://ahrefs.com/pricing)) **Downsides.** It is the most expensive way in if you do not already pay for Ahrefs. Checks are metered: each prompt counts once per engine per update, so 5 prompts on 1 engine updated daily uses 150 checks a month. Claude checks cost more than others. ([Ahrefs Brand Radar](https://ahrefs.com/brand-radar)) ## Semrush AI Visibility Toolkit **What it is.** A Semrush toolkit that shows how your brand appears in AI answers. It includes visibility and competitor reports, prompt research, prompt tracking and an AI search site audit. Semrush's own help page names two engines for tracking: ChatGPT and Google AI Mode. ([Semrush AI Visibility Toolkit](https://www.semrush.com/kb/1493-ai-toolkit)) **Best for.** Teams already working in Semrush who mostly care about ChatGPT and Google. **Price.** $99 a month. Each extra domain for brand reports is $99 a month, and 50 extra tracked prompts are $60 a month. Each extra team member needs their own $99 license. There is no free trial. ([Semrush AI Visibility Toolkit](https://www.semrush.com/kb/1493-ai-toolkit)) **Downsides.** Only two engines are named, so Perplexity, Claude and Copilot are not covered by the tracking. Per-seat pricing adds up for a team. ## Otterly.AI **What it is.** A standalone AI search monitoring tool. Base plans cover ChatGPT, Google AI Overviews, Perplexity and Microsoft Copilot. Claude, Google AI Mode and Gemini are paid add-ons. ([Otterly.AI pricing](https://otterly.ai/pricing)) **Best for.** Small software companies that want automated tracking without buying a full SEO suite. **Price.** The pricing page shows two prices per plan, most likely monthly and annual billing. Lite is $25 or $29 a month for 15 prompts. Standard is $160 or $189 for 100 prompts. Premium is $422 or $489 for 400 prompts. There is a free trial; the page does not say how long. ([Otterly.AI pricing](https://otterly.ai/pricing)) **Downsides.** 15 prompts on the Lite plan is a small sample, given how much answers vary. Claude and Gemini cost extra. ## Profound **What it is.** An AI visibility platform aimed at larger teams. Its enterprise plan tracks up to 9 engines: ChatGPT, Perplexity, Google AI Mode, Gemini, Microsoft Copilot, DeepSeek, Claude, Google AI Overviews and Exa Search. It adds agent analytics, API access, SSO and SOC 2 compliance. ([Profound pricing](https://www.tryprofound.com/pricing)) **Best for.** Marketing teams at companies big enough to need many engines, many regions, and security reviews. **Price.** A free trial runs 50 prompts daily for 7 days across ChatGPT, Gemini and Google AI Overviews. Enterprise pricing is custom. ([Profound pricing](https://www.tryprofound.com/pricing)) **Downsides.** No public price beyond the trial, so you will be talking to sales. More than most early-stage companies need. ## Peec AI **What it is.** An AI search analytics tool for SEO and marketing teams. Its pricing page lists Starter, Pro, Advanced and Enterprise plans and names ChatGPT, Perplexity and Gemini, with a separate AI Mode tracker. It counts usage as tracked prompts times active models times tracking frequency. ([Peec AI pricing](https://peec.ai/pricing)) **Best for.** Mid-size teams that track several projects or countries. **Price.** The pricing page did not show prices or prompt limits when we checked in October 2026. Enterprise is custom and billed annually. ([Peec AI pricing](https://peec.ai/pricing)) **Downsides.** You cannot compare cost per prompt without signing up or contacting sales. ## Bing Webmaster Tools AI Performance **What it is.** A report inside Bing Webmaster Tools, launched as a public preview on February 10, 2026. It shows how often your pages are cited as sources in Microsoft Copilot, AI summaries in Bing and some partner integrations. You see total citations, cited pages per day, page-level counts and a sample of the queries the AI used to find your content. ([Bing Webmaster blog](https://blogs.bing.com/webmaster/February-2026/Introducing-AI-Performance-in-Bing-Webmaster-Tools-Public-Preview)) **Best for.** Everyone. It is first-party data, not a simulation, so verify your site and turn it on. **Price.** Microsoft's announcement lists no price. **Downsides.** It covers Microsoft's surfaces only, and it counts citations of your pages, not mentions of your brand on other sites. ## Do it yourself for free You can get a useful number with a spreadsheet and an hour a week. The method: 1. **Write 20 prompts a buyer would type.** Mix category prompts ("best invoicing app for freelancers"), problem prompts ("how do I get clients to pay invoices on time") and comparison prompts ("is Paidwick better than a spreadsheet for invoicing"). Do not include your brand name in more than a few. 2. **Freeze the list.** Use the exact same wording every week. Changing prompts makes weeks impossible to compare. 3. **Ask each engine in a clean session.** Use a logged-out or temporary chat where you can, so your history does not shape the answer. 4. **Log one row per answer.** Columns: date, engine, prompt, named us (yes/no), position, competitors named, URLs cited. 5. **Report one number per engine:** the share of answers that named you. Copy this header row into a sheet: ```text date,engine,prompt,named_us,position,competitors_named,urls_cited ``` ### How many answers you need Because answers vary, a small sample gives a noisy number. The standard margin of error for a percentage, at 95% confidence, is about 1.96 × √(p × (1 − p) / n). At the worst case of p = 50%: | Answers per week | Example | Margin of error | |---|---|---| | 20 | 20 prompts, 1 engine | ±22 points | | 60 | 20 prompts, 3 engines | ±13 points | | 150 | 50 prompts, 3 engines | ±8 points | | 400 | 100 prompts, 4 engines | ±5 points | So with 60 answers a week, a move from 30% to 38% is probably noise. Look for changes that hold for three or more weeks, or pool four weeks together before you compare. If you report per engine, the margin applies to each engine's own count, which is smaller. This is the same method we use to count how often AI engines name SearchMaxx in [our public experiment](https://searchmaxx.link/blog/searchmaxx-experiment-day-0). ## How to choose - **Already pay for Ahrefs or Semrush:** start with its add-on. One login, one bill. - **No SEO suite, small budget:** Otterly.AI, or the manual log until you know which prompts matter. - **Need many engines, regions and SSO:** Profound or Peec AI. - **Everyone:** turn on Bing's AI Performance report. It is the only first-party citation data on this list. A tracker only tells you whether you are named. If the number is low, the first thing to check is whether AI crawlers can read your site at all. [Run the free check](https://searchmaxx.link/) to see in about 10 seconds. --- # Best places to list your software so AI assistants recommend it URL: https://searchmaxx.link/blog/best-places-to-list-your-software-for-ai Published: 2026-10-13 Updated: 2026-10-18 Author: Roshan, founder of SearchMaxx AI assistants recommend software they see described on pages they trust, and most of those pages are not yours. The places worth your time first are G2 and Capterra, Reddit, the comparison articles that already rank for your category, and, for developer tools, GitHub awesome lists and Hacker News. Wikipedia helps a lot, but only once independent press has already written about you. ## Why AI engines cite other people's pages When ChatGPT or Perplexity answers "what is the best invoicing app for freelancers?", it searches the web and summarizes what it finds. Your homepage is one voice. A review site, a forum thread and a "best of" article are three more, and they look independent. Two pieces of published data show this: - **Third-party sites dominate citations.** Peec AI looked at about 30 million sources cited by AI engines in the US in March 2026. Reddit and YouTube were in the top five cited domains on all five engines it checked. Wikipedia was in the top five for ChatGPT, Perplexity and Gemini. G2 was in Perplexity's top five. ([Peec AI: most cited domains by engine](https://docs.peec.ai/research/most-cited-domains-by-engine)) - **Mentions matter more than links.** Ahrefs studied 75,000 brands and found that branded web mentions had the strongest link to appearing in Google's AI Overviews, a correlation of 0.664. Backlinks scored 0.218. Ahrefs notes that correlation is not causation. ([Ahrefs: brand visibility in AI Overviews](https://ahrefs.com/blog/ai-overview-brand-correlation/)) So the job is to be described accurately, by others, on the pages AI engines already read. ## The places compared | Place | Best for | Cost to list (as of October 2026) | Effort | Main catch | |---|---|---|---|---| | G2 | B2B software with paying customers | Free to claim a profile | Medium | Needs real reviews to matter | | Capterra, GetApp, Software Advice | SMB software | Free listing, paid clicks optional | Medium | Paid placements sit above free ones | | Reddit | Any product with a real user community | Free | High, ongoing | Self-promotion gets removed or banned | | Comparison articles | Every category | Free to pitch | Medium | Authors owe you nothing | | Product Hunt | Launches and major releases | Free | High for one day | Short-lived traffic | | Hacker News (Show HN) | Developer and technical tools | Free | Low to post | Must be usable without a signup wall | | GitHub awesome lists | Developer tools, open source | Free | Low | Maintainers reject weak or promotional entries | | AlternativeTo | Consumer and prosumer software | Free, optional paid priority review | Low | Many submissions declined | | Wikipedia and Wikidata | Companies with independent press coverage | Free | High | Strict notability and conflict-of-interest rules | ## G2 **What it is.** A B2B software review site, and one of the five domains Perplexity cites most often. **Best for.** B2B software with customers willing to write reviews. **How to get on it.** Search g2.com for your product. If a profile exists, click the "Unclaimed" box at the top and follow the prompts. If none exists, add your product through G2's new product form. Claiming is free. ([G2: unclaimed profiles](https://sell.g2.com/unclaimed_profiles)) Then ask real customers for reviews. Email the ones who already told you they like the product. **Downsides.** An empty profile gives AI engines little to quote. The value is in the reviews, and those take months to collect honestly. G2 also sells paid tiers, which you do not need to get listed. ## Capterra, GetApp and Software Advice **What it is.** Three linked review and comparison sites. Gartner has owned them since 2015. In January 2026, G2 announced an agreement to buy all three ([G2](https://company.g2.com/news/g2-acquires-capterra-software-advice-getapp)). Vendors can list for free and pay per click for sponsored positions ([Wikipedia: Capterra](https://en.wikipedia.org/wiki/Capterra)). **Best for.** Software sold to small and mid-size businesses, where buyers compare on these sites. **How to get on it.** Request a free listing through Capterra's vendor sign-up, then collect reviews the same way as on G2. We could not load Capterra's vendor pages to confirm current terms after the G2 deal, so check them when you apply. **Downsides.** Sponsored listings sit above free ones on category pages. Do not pay for clicks just to be "seen by AI". Reviews are what get quoted. ## Reddit **What it is.** The most cited domain overall in Peec's dataset, and in the top five on every engine it checked. ([Peec AI](https://docs.peec.ai/research/most-cited-domains-by-engine)) **Best for.** Products with users who already talk about the problem in specific subreddits. **How to get on it.** Reddit's rules say: "Participate authentically in communities where you have a personal interest, and do not spam or engage in disruptive behaviors (including content manipulation)." ([Reddit Rules](https://redditinc.com/policies/reddit-rules)) In practice: 1. Find threads where people ask for tools in your category. Search `site:reddit.com best [category]` on Google. 2. Answer the question fully, including other good options. Say you work on your product when you mention it. 3. Read each subreddit's own rules first. Many ban self-promotion outright. **Downsides.** Slow, manual, and easy to get wrong. Fake accounts and paid upvotes break Reddit's rules and get threads removed, which also removes them from what AI engines can cite. ## Comparison and "best of" articles **What it is.** Articles like "best invoicing apps for freelancers" on review blogs, tech publications and other vendors' sites. These are the pages AI engines summarize when asked for a recommendation. **Best for.** Every software company. This is often the highest-value item on the list. **How to get on it.** 1. Ask ChatGPT, Perplexity and Google your category question. Write down every page they cite. 2. For each article that leaves you out, find the author and email them. Give one paragraph on what your product does, who it is for, and the price. Offer a free account for testing. 3. For articles that include you with wrong facts, send a correction. Outdated pricing is common. **Downsides.** Authors owe you nothing, and some ask for payment. Paid placements are usually labeled, and we do not recommend them. ## Product Hunt **What it is.** A daily leaderboard of new products. It is free, and makers are encouraged to post their own products. Company accounts are not allowed. The guide's main rule: "you cannot ask people directly to upvote your product." You can relaunch when you have a significant new version. ([Product Hunt launch guide](https://www.producthunt.com/launch)) **Best for.** New products, or big releases of existing ones. **How to get on it.** Post from a personal maker account. Product Hunt suggests 12:01 am Pacific Time. Ask your users to visit and comment, not to upvote. **Downsides.** Traffic is concentrated in one day. The lasting value is a permanent product page with a description and comments. ## Hacker News (Show HN) **What it is.** A Show HN post is "for something you've made that other people can play with." Landing pages and sign-up pages are off topic, and you should not ask friends to upvote or comment. ([Show HN guidelines](https://news.ycombinator.com/showhn.html)) **Best for.** Developer tools, open source and technical products people can try right away. **How to get on it.** Post a title starting with "Show HN:", link to something usable, and stay in the thread to answer questions. **Downsides.** If your product needs a sales call or a signup to try, it does not belong here. ## GitHub awesome lists **What it is.** Curated lists on GitHub, such as "awesome-[topic]", that developers and AI engines use as reference lists. **Best for.** Developer tools and open source projects. **How to get on it.** Find the list for your category and read its contributing file. The main awesome list's guidelines ask for entries formatted as `- [Name](link) - Description.`, with an objective description rather than marketing copy, added at the bottom of the right category, and only for maintained projects with documentation. ([sindresorhus/awesome PR template](https://github.com/sindresorhus/awesome/blob/main/pull_request_template.md)) Open one pull request per list. **Downsides.** Maintainers reject promotional or low-quality entries. A closed-source SaaS product is a poor fit for most lists. ## AlternativeTo **What it is.** A site where users find alternatives to software they know. Anyone with a verified account can suggest an app. Admins review every submission and decline many. An optional one-time payment buys priority review, but not approval or ranking. ([AlternativeTo FAQ](https://alternativeto.net/faq/)) **Best for.** Products that replace a well-known tool. **Downsides.** Services, thin wrappers around third-party AI models, and unreleased apps are likely to be declined. ([AlternativeTo FAQ](https://alternativeto.net/faq/)) ## Wikipedia and Wikidata **What it is.** Wikipedia is in the top five cited domains for ChatGPT, Perplexity and Gemini. ([Peec AI](https://docs.peec.ai/research/most-cited-domains-by-engine)) It is also the hardest to get into. **The notability bar.** A company needs "significant coverage in multiple reliable secondary sources that are independent of the subject." Press releases, sponsored content, routine coverage of hires or product launches, and your own material do not count. ([Wikipedia: notability of organizations](https://en.wikipedia.org/wiki/Wikipedia:Notability_(organizations_and_companies))) **Conflict of interest.** Writing about your own company is "strongly discouraged". If you have a conflict, disclose it and propose changes on the article's talk page instead of editing directly. Paid editors must say who pays them. ([Wikipedia: conflict of interest](https://en.wikipedia.org/wiki/Wikipedia:Conflict_of_interest)) **Wikidata.** Wikidata is a separate database with a lower bar. An item qualifies if it refers to "a clearly identifiable conceptual or material entity" backed by "serious and publicly available references", among other criteria. ([Wikidata: notability](https://www.wikidata.org/wiki/Wikidata:Notability)) An accurate item with your official website, founding date and industry is reasonable once you have public references. **Downsides.** If you do not meet notability, a draft will be deleted. Earn press first. ## Industry directories Most fields have their own lists: integration marketplaces, partner directories, association member lists, and app stores for the tools you plug into, such as Slack or Shopify. Two rules for picking them: - **Check if AI engines cite it.** Ask your category question in Perplexity and see which directories come up. - **Skip paid link directories.** A page that exists only to sell listings is not what AI engines quote. ## Where to start If you have a week, do these in order: claim G2, request a Capterra listing, pull the list of pages AI engines cite for your category, and pitch the authors of the top five. Then add the community sites that match your product. None of this helps if AI crawlers cannot read your own site when they follow those mentions back. [Run the free check](https://searchmaxx.link/) to see what they get, or read [which AI crawlers to allow in robots.txt](https://searchmaxx.link/blog/ai-crawlers-robots-txt). --- # The best schema markup types for SaaS websites, with copy-paste JSON-LD URL: https://searchmaxx.link/blog/best-schema-markup-for-saas Published: 2026-10-12 Updated: 2026-10-18 Author: Roshan, founder of SearchMaxx A SaaS website needs five schema types: Organization on the homepage, SoftwareApplication with an Offer on the product or pricing page, BreadcrumbList on inner pages, BlogPosting on articles, and Person for the authors. FAQPage is now optional, because Google stopped showing FAQ rich results on May 7, 2026. Schema will not get you into AI answers by itself, but it states facts about your company in a form machines cannot misread. ## What schema does and does not do Be clear on this first, because a lot of advice overstates it. Google says you do not need special markup to appear in AI Overviews or AI Mode: "There's also no special schema.org structured data that you need to add." It does ask that your structured data match the visible text on the page. ([Google: AI features and your website](https://developers.google.com/search/docs/appearance/ai-features)) So why bother? Structured data makes rich results possible in Google, such as your logo and breadcrumbs. It also gives every crawler one unambiguous statement of your name, website, price and authors. That is cheap to add and hard to get wrong if you copy the examples below. ## The types compared | Type | Put it on | Required by Google | What it gets you | Priority | |---|---|---|---|---| | Organization | Homepage or About page | Nothing required | Logo and company details in Search and knowledge panels | High | | SoftwareApplication + Offer | Product or pricing page | `name`, `offers.price`, and a rating or review | Software rich result with price and rating | High | | BreadcrumbList | Every page below the homepage | At least two `ListItem`s | Breadcrumb trail in results | Medium | | BlogPosting | Each blog post | Nothing required | Better title, date and author display | Medium | | Person (in a ProfilePage) | Author pages | Not applicable | Ties articles to a real author | Medium | | FAQPage | FAQ sections | Not applicable | No Google rich result since May 2026 | Low | Sources: Google's docs for [Organization](https://developers.google.com/search/docs/appearance/structured-data/organization), [software apps](https://developers.google.com/search/docs/appearance/structured-data/software-app), [breadcrumbs](https://developers.google.com/search/docs/appearance/structured-data/breadcrumb) and [articles](https://developers.google.com/search/docs/appearance/structured-data/article). The examples use Paidwick, a made-up invoicing app for freelancers at paidwick.com. Every value, including prices and ratings, is invented for the example. Replace them with your own. Paste each block into the page's HTML inside a ` ``` 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/<title>//') desc=$(printf '%s' "$html" | grep -o '<meta name="description" content="[^"]*"' | head -1 | sed 's/.*content="//; s/"$//') printf '%s\t%s\t%s\n' "$url" "$title" "$desc" done < urls.txt > 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 `<img>` or `<Image>`. To find images with missing alt text on a built page: ```text curl -s https://paidwick.com/blog/payroll-guide/ | grep -o '<img[^>]*>' | 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 ( <article> <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }} /> <h1>{post.title}</h1> {/* ... */} </article> ) ``` 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 `<head>` 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 `<script type="application/ld+json">` tag in the page or layout | Same, in the layout | A schema markup field in page settings, or custom code | | JavaScript sent to visitors | React runtime plus your interactive components | None by default, then only the islands you add | Depends on interactions and embeds you add | | Who edits content | Developers, or marketers through a headless CMS you connect | Developers, or marketers through a headless CMS you connect | Marketers, in Webflow's visual editor | | Cost | Free and open source. You pay for hosting | Free and open source. You pay for hosting | From $15 a month per site, billed yearly, plus seats | ## Next.js **Rendering.** The Next.js docs on [Server and Client Components](https://nextjs.org/docs/app/getting-started/server-and-client-components) say that "by default, layouts and pages are Server Components." Even Client Components are used to prerender HTML on the server. On first load, "HTML is used to immediately show a fast non-interactive preview," and JavaScript then makes it interactive. So a default Next.js App Router page sends crawlers real text. **Where it goes wrong.** Three patterns send AI crawlers less than a browser sees: - **Content fetched in the browser.** A component that loads pricing or testimonials in a `useEffect` renders an empty box on the server. The text appears only after JavaScript runs. - **Large client-only sections.** Next.js says that once a file is marked `"use client"`, all of its imports go into the client bundle. That does not hide the text, but it adds JavaScript every visitor downloads. - **Streaming metadata on dynamic pages.** For dynamically rendered pages, the [metadata docs](https://nextjs.org/docs/app/getting-started/metadata-and-og-images) say Next.js streams metadata and injects it once `generateMetadata` resolves, instead of placing it in the `<head>` up front. Streaming is turned off for a list of bots that expect metadata in the head. As of today, the [default list in the Next.js source](https://github.com/vercel/next.js/blob/canary/packages/next/src/shared/lib/router/utils/html-bots.ts) includes Bingbot, Applebot, several Google crawlers and social preview bots. It does not include `GPTBot`, `OAI-SearchBot`, `ClaudeBot` or `PerplexityBot`. Prerendered pages are not affected, because their metadata resolves at build time. If your marketing pages render dynamically, the [`htmlLimitedBots`](https://nextjs.org/docs/app/api-reference/config/next-config-js/htmlLimitedBots) option lets you add those bots, or set it to `/.*/` to turn streaming metadata off entirely. Note that setting it replaces the default list, so include the bots already on it. **Metadata, sitemap and schema.** Next.js has the most built in. A [`sitemap.ts`](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap) file generates `sitemap.xml` from code, and a `robots.ts` file does the same for robots.txt. For structured data, the [JSON-LD guide](https://nextjs.org/docs/app/guides/json-ld) recommends a plain `<script>` tag in `layout.js` or `page.js`, with `<` escaped to avoid injection. ## Astro **Rendering.** Astro's [islands docs](https://docs.astro.build/en/concepts/islands/) say it renders "the majority of your page to fast, static HTML" and works by "stripping out all client-side JavaScript automatically." To make a component interactive you add a `client:*` directive, and only that component ships JavaScript. Directives like `client:visible` delay it until the component scrolls into view. **What crawlers get.** The whole page as text. Of the two frameworks, Astro is the harder one to accidentally break for AI crawlers, because JavaScript is something you opt into per component rather than something you have to remove. **Metadata, sitemap and schema.** Less is built in than in Next.js. You write title, description and JSON-LD tags in a layout component yourself. The official [`@astrojs/sitemap`](https://docs.astro.build/en/guides/integrations-guide/sitemap/) integration installs with `npx astro add sitemap`, needs your `site` URL in the config, and writes `sitemap-index.xml` and `sitemap-0.xml` at build time. **Ownership.** Cloudflare [announced on January 16, 2026](https://www.cloudflare.com/press/press-releases/2026/cloudflare-acquires-astro-to-accelerate-the-future-of-high-performance-web-development/) that it was acquiring the company behind Astro. The release says "Astro will remain open source," and Astro's CEO says it will stay the best way to build content sites "whether they host on Cloudflare or elsewhere." ## Webflow **Rendering.** Webflow publishes the pages you design as HTML and CSS, and its paid Workspace plans can [export](https://webflow.com/pricing) that code. Text you place in the designer is in the HTML a crawler downloads. **Where it goes wrong.** Anything added through an embed or a third-party script, such as review widgets, pricing calculators or FAQ tools, may load with JavaScript and reach AI crawlers as an empty box. Check those sections without JavaScript. **Metadata, sitemap and schema.** The [pricing page](https://webflow.com/pricing) lists custom titles and meta descriptions per page, canonical tags, an auto-generated XML sitemap, robots.txt and llms.txt controls, crawler access controls, and schema markup support. Webflow's help center says the sitemap is [generated by default](https://help.webflow.com/hc/en-us/articles/33961355371667-Create-a-sitemap-in-Webflow), and that page settings include a [schema markup field](https://help.webflow.com/hc/en-us/articles/45766917223955-Add-schema-markup-in-Webflow-to-improve-SEO-and-AEO) where you can paste your own JSON-LD. On the free Starter plan, the sitemap, robots.txt and schema features need a paid Workspace plan. **Who edits.** This is Webflow's main advantage. Marketers can change copy, publish CMS posts and build pages without a developer or a deploy. ## Cost Next.js and Astro are free and open source. Next.js is [MIT licensed](https://github.com/vercel/next.js). Your costs are hosting and developer time. Hosts such as Vercel, Netlify and Cloudflare all run them. Vercel's [Pro plan](https://vercel.com/pricing) is listed at $20 a month. Webflow charges per site and per seat. As of October 2026, its [pricing page](https://webflow.com/pricing) lists: | Webflow plan | Price | What you get | |---|---|---| | Starter | Free | webflow.io domain, 2 static pages, 50 CMS items | | Basic | $15 a month, billed yearly | Custom domain, 300 static pages, no CMS | | Premium | $25 a month, billed yearly | Everything in Basic, plus the CMS (up to 20,000 items) and 50 GB bandwidth | | Team | $2,500 a month, annual contract | Everything in Premium, plus localization, publishing workflows and 5 full and 5 limited seats | | Extra full seat | $39 a month per seat, billed yearly | Design pages and manage settings | | Extra limited seat | $15 a month per seat, billed yearly | Edit content and build pages from components | Prices are in US dollars, per site, before tax. A small marketing team with a blog, one designer and two editors would pay for a Premium site plus seats, so check the current page before you budget. ## Speed We have not benchmarked these three ourselves, so here is only what follows from how they work. Astro sends no JavaScript unless you add it, so a plain Astro page is as light as its HTML, CSS and images. Next.js sends the React runtime and the code for every Client Component, which it says Server Components help reduce. Webflow serves sites from a global CDN, and page weight depends on the interactions, fonts and embeds you add. For crawlers, the bigger risk is not speed but missing text. ## Verdict by team type | Your team | Pick | Why | |---|---|---| | Marketers own the site, no developer time | Webflow | Real HTML without code, built-in sitemap and schema fields, and editors can publish alone. Audit embeds for empty boxes. | | Developers own the site, mostly content pages and a blog | Astro | Static HTML and zero JavaScript by default. Hardest to break for AI crawlers. | | Your product is already in Next.js and you want one codebase | Next.js | Best built-in metadata, sitemap and robots tools. Prerender marketing pages, render content on the server, and add AI bots to `htmlLimitedBots` if any page renders dynamically. | | Marketers edit, developers build | Astro or Next.js with a headless CMS, or Webflow | Pick based on who you can spare. A framework plus a CMS costs developer time. Webflow costs money per seat. | | Moving off a single-page React app | Next.js or Astro | Both fix the empty-HTML problem. See [migrating a React SPA to Next.js](https://searchmaxx.link/blog/migrate-react-spa-to-nextjs-seo). | Whichever you choose, test the result the way an AI crawler sees it. [AI crawlers don't run JavaScript](https://searchmaxx.link/blog/ai-crawlers-javascript) has a one-line `curl` command that counts the words your server sends, and our [free check](https://searchmaxx.link/) runs the same test plus crawler access in about 10 seconds. For how each AI engine then finds and cites those pages, see [ChatGPT vs Perplexity vs Google AI Overviews](https://searchmaxx.link/blog/chatgpt-vs-perplexity-vs-google-ai-overviews). --- # In-house, freelancer or done-for-you for AI search: how to choose URL: https://searchmaxx.link/blog/in-house-vs-agency-vs-done-for-you-ai-search Published: 2026-09-26 Updated: 2026-10-18 Author: Roshan, founder of SearchMaxx Hire in-house if AI search will be a core channel for years and you already have people who can review and ship website changes. Use a freelancer for a defined project with a clear end, like a technical fix or a set of comparison pages. Use a done-for-you service when nobody on your team owns this work and you want steady output without managing it. The rest of this post compares the three on cost, speed, control, risk and what each needs from you, so you can check that answer against your own situation. ## What the work actually is Before you pick who does it, be clear on what "AI search" work means. For most software companies it comes down to five jobs: 1. **Let the engines read your site.** Allow the AI search crawlers in robots.txt and your firewall, and send real text in the HTML. See [which AI crawlers to allow](https://searchmaxx.link/blog/ai-crawlers-robots-txt) and [how to see what they see](https://searchmaxx.link/blog/ai-crawlers-javascript). 2. **Publish pages that answer buyer questions.** "Best X for Y", "X vs Y", "X alternatives", pricing, and use-case pages. See [how to write comparison pages AI assistants cite](https://searchmaxx.link/blog/comparison-pages-that-ai-cites). 3. **Keep facts current.** Prices, features and integrations change. Stale pages get quoted wrong. 4. **Get mentioned on other sites.** Reviews, directories, communities and articles that name you. 5. **Measure.** Ask the engines your buyers' questions on a schedule and count how often you are named. See [how to track AI mentions for free](https://searchmaxx.link/blog/track-ai-mentions-free). Some of this is engineering, some is writing, some is research. That mix is why the "who" question is hard. ## The comparison at a glance | Factor | In-house hire | Freelancer | Done-for-you service | |---|---|---|---| | **Typical cost** | A full salary plus benefits (see below) | Hourly or per project. Varies widely | A fixed monthly or yearly fee | | **Time to first change** | Slowest. You hire, then they ramp up | Fast once scoped | Fast. The service has a process already | | **Control** | Highest. They sit in your team | Medium. You set scope, they choose methods | Lower day to day. You approve what ships | | **Main risk** | A bad hire, or one person leaving with the knowledge | Scope gaps and work that stops when the project ends | Generic work that does not fit your product | | **Needs from you** | A manager, a budget line, review time | A clear brief and someone to review | Site access, product context, fast approvals | | **Best for** | AI search as a long-term core channel | One defined project | No owner on your team, steady output wanted | ## Cost ### In-house There is no government job category called "AI search specialist", so use the nearest roles. US Bureau of Labor Statistics medians for May 2025: | Role | Median annual pay | Source | |---|---|---| | Market research analyst | $78,760 | [BLS](https://www.bls.gov/ooh/business-and-financial/market-research-analysts.htm) | | Web developer | $92,650 | [BLS](https://www.bls.gov/ooh/computer-and-information-technology/web-developers.htm) | | Marketing manager | $166,790 | [BLS](https://www.bls.gov/ooh/management/advertising-promotions-and-marketing-managers.htm) | Salary is not the full cost. In June 2026, wages made up 70.0% of what US private employers spent on compensation, and benefits made up the other 30.0% ([BLS Employer Costs for Employee Compensation](https://www.bls.gov/news.release/ecec.nr0.htm)). Divide a salary by 0.7 for a rough total. A $78,760 salary works out to about $112,500 a year in compensation cost, before recruiting fees, tools and management time. Medians are midpoints. Pay in your city and for someone with direct AI search experience may be higher or lower. ### Freelancer We could not find a published, dated survey of freelance AI search rates that we trust, so we will not quote one. Rates vary by experience, region and scope. The practical move is to write one brief and get three quotes. Ask each freelancer for a fixed price per deliverable, not just an hourly rate, so you can compare like with like. ### Done-for-you service Services usually charge a fixed fee per month or year. The questions that matter are what you get for the fee and what happens when you stop paying. As one example of the model, SearchMaxx charges $1,000 a month, $2,777 for a 12-week activation, or $10,000 a year. It ships one change a day to the client's site as a pull request, a person checks each one, and it does not promise rankings. Whatever service you look at, ask for the price in writing, the minimum term, and a list of what ships each week. ## Speed Speed here means how soon useful changes reach your live site. - **In-house** is slowest to start. You write a job description, interview, hire, and wait for the new person to learn your product and codebase. Once they are up to speed, they can be the fastest of the three, because they need no outside approvals. - **A freelancer** can start within days if your brief is clear. Each new project restarts the clock, because they have to relearn what changed. - **A done-for-you service** starts quickly because the process already exists. Its speed then depends on you. A service that sends pull requests is only as fast as the person who merges them. In every model, a change only counts once it is live. A page that sits unapproved for two weeks does nothing, so plan who reviews before you pick who writes. ## Control - **In-house** gives you the most control. You set priorities every week and can redirect work the same day. - **A freelancer** gives you control over scope and deliverables. You have less say in how they do the work, and they may have other clients competing for their time. - **A done-for-you service** gives you control at the approval step. You see each change before it goes live, but the service decides what to propose. If that worries you, ask how they choose what to work on and whether you can steer it. A simple test for any option: can you see every change before it goes live, and can you undo it? If the answer to either is no, walk away. ## Risk Each model fails in a different way. | Model | How it usually goes wrong | How to reduce the risk | |---|---|---| | In-house | You hire someone who is good at classic SEO but new to AI search, or they leave and take the know-how with them | Ask for work samples with measurable results. Make them document their process and keep the prompt list in a shared place | | Freelancer | The brief misses something, or the work stops when the project ends and nobody keeps the pages current | Write the brief around outcomes, and agree who updates the pages after handover | | Done-for-you | The service runs the same playbook for everyone, and your pages sound generic | Give them real product detail, customer language and sales objections. Read the first week of changes closely | Two risks apply to all three. First, nobody can guarantee what an AI engine says. Treat any promise of a ranking or a fixed number of mentions as a warning sign. Second, AI answers vary from one run to the next, so judge results on trends over weeks, not one screenshot. ## What each needs from you This is the part buyers often underestimate. **In-house hire** - A manager who understands the goal and can judge the work. - Access to the website code or CMS, analytics and Search Console. - A budget line for at least a year, since the first months are mostly hiring and ramp-up. **Freelancer** - A written brief with the goal, the pages in scope and the deadline. - One person who reviews drafts and answers product questions within a day or two. - A plan for who maintains the work after the project ends. **Done-for-you service** - Access to wherever your site lives. Some services work in your code repository, some in your CMS. - A short call or doc on your product, your buyers and your competitors. - Someone who approves changes quickly. A few minutes a day is often enough. ## When in-house is the better choice Hire in-house if most of these are true: - AI search and organic search are, or will be, one of your top two or three acquisition channels. - You have a large site, many products, or many markets, so there is more than one person's worth of work. - Your industry needs tight legal or compliance review, and an insider will move faster through it. - You can afford a full salary for at least a year and have someone to manage the hire. - You want the knowledge to stay inside the company. If that is you, a done-for-you service or freelancer can still help in the first few months while you hire. Make sure everything they build lives in your systems, so the new hire can pick it up. ## When a freelancer is the better choice - You have one clear project, such as fixing crawler access, rebuilding pricing pages, or writing a set of comparison pages. - You have an internal owner who can keep things going after the project ends. - You want to test the channel before you commit to a monthly cost. ## When a done-for-you service is the better choice - Nobody on your team owns AI search, and nobody will in the next six months. - You are a small team where engineers and marketers are fully booked. - You want a steady pace of changes and a regular report, without managing a person. - You are comfortable reviewing changes others propose. ## Questions to ask any option Use these whether you are interviewing a candidate, a freelancer or a service: 1. What will you change in the first two weeks, specifically? 2. How do you measure whether AI engines mention us, and how often do you report? 3. Who checks each change before it goes live? 4. Do you promise rankings? (The honest answer is no.) 5. If we stop working together, what do we keep? 6. Can you show results from past work, with the source of the numbers? ## Where to start Whichever route you choose, start by checking that AI engines can read your site at all. Our [free check](https://searchmaxx.link/) shows in about 10 seconds whether the AI search crawlers can fetch your pages and how much text they see. If you want to see what this work looks like with real numbers, read the [case study](https://searchmaxx.link/blog/case-study-5x-google-clicks). --- # How to write X vs Y and alternatives pages that AI assistants cite URL: https://searchmaxx.link/blog/comparison-pages-that-ai-cites Published: 2026-09-25 Updated: 2026-10-18 Author: Roshan, founder of SearchMaxx A comparison page gets cited when it answers the buyer's question in the first few lines, backs it with a table of checkable facts, and admits where each product is weaker. Put the verdict at the top, say who each product is for, date the page, and link your sources. Keep every claim about a competitor accurate and provable. Below is why these pages matter for AI answers, the structure that works, a template you can copy, and the rules to stay on the right side of the law. ## Why AI engines lean on comparison pages Questions like "best invoicing app for freelancers", "Paidwick vs Competitor A" and "Competitor A alternatives" ask the engine to choose between options. To answer, it has to find pages that name the options, compare them on the things that matter, and state a view. Google describes this directly. Its AI Overviews and AI Mode "may use a 'query fan-out' technique", issuing "multiple related searches across subtopics and data sources" and then showing a wider set of supporting links than a classic search ([Google Search Central](https://developers.google.com/search/docs/appearance/ai-features)). A buyer's "which should I pick" question fans out into price, features, fit and drawbacks. A page that covers all four in one place gives the engine several things to quote. Google's guidance on reviews describes the same kind of page. It asks writers to "explain what sets something apart from its competitors", to "discuss the benefits and drawbacks", to "share quantitative measurements", and when calling something the best, to say "why you consider it the best, with first-hand supporting evidence" ([Google: Write high quality reviews](https://developers.google.com/search/docs/specialty/ecommerce/write-high-quality-reviews)). Research points the same way. The [GEO paper](https://arxiv.org/abs/2311.09735) (Aggarwal and others, KDD 2024) tested ways of editing pages to appear more in generative engine answers. Adding quotations, adding statistics and citing sources gave a relative improvement of 30 to 40% on its main visibility measure. Keyword stuffing offered "little to no improvement" ([full paper](https://arxiv.org/html/2311.09735v3)). This was a benchmark study, not a promise for your page. Still, it backs a simple rule: specific, sourced facts beat repeated keywords. ## Two page types, two jobs | Factor | X vs Y page | X alternatives page | |---|---|---| | **Buyer question** | "Should I pick X or Y?" | "What else is there besides X?" | | **Buyer stage** | Late. They have a shortlist | Middle. They are leaving X or ruling it out | | **Main content** | Head-to-head table, verdict, who each is for | A short list of options, each with who it suits | | **Your product** | One of the two columns | One of several entries, placed honestly | | **URL pattern** | `/compare/paidwick-vs-competitor-a` | `/alternatives/competitor-a` | Write one page per real question. Do not make a "vs" page for every product in the market. Start with the competitors your sales team actually loses to or wins against. ## The structure that works Use this order. Each part answers something a buyer or an engine will look for. 1. **A title that names both products.** "Paidwick vs Competitor A: which invoicing app fits freelancers?" 2. **A last-updated date** near the top, in plain text. 3. **The verdict in two or three sentences.** Who should pick which, and why. No build-up. 4. **A comparison table.** Rows are the factors buyers decide on. Cells are facts, not adjectives. "Recurring invoices: yes" beats "Powerful automation". 5. **Who each product is for.** One short section each. Be specific about the type of customer. 6. **Where each product is weaker.** Including yours. This is the part that makes the page believable. 7. **Pricing**, with the date you checked it and a link to each pricing page. 8. **Switching notes.** What it takes to move from one to the other. 9. **Short FAQ.** Three to five real questions from sales calls or support. 10. **Sources.** Links to each product's docs, pricing and changelog that back the table. Two technical checks. The text must be in the HTML your server sends, because many AI crawlers do not run JavaScript ([how to check](https://searchmaxx.link/blog/ai-crawlers-javascript)). And the AI search crawlers must be allowed in robots.txt ([which ones](https://searchmaxx.link/blog/ai-crawlers-robots-txt)). A comparison table that loads from a script widget is invisible to them. ## A fill-in template Paidwick is a made-up invoicing app for freelancers. Replace the brackets with facts you can link to. Leave a row out rather than guess. ```text # Paidwick vs Competitor A: which invoicing app fits freelancers? Last updated: [Month D, YYYY]. We check both products' pricing and docs every [quarter]. ## The short answer Pick Paidwick if you [are a solo freelancer who wants to send invoices and get paid by card in a few minutes]. Pick Competitor A if you [need full bookkeeping, payroll or inventory in the same tool]. Paidwick is the company that publishes this page. ## Side by side | Feature | Paidwick | Competitor A | |---|---|---| | Starting price | [$X/month, link] | [$Y/month, link] | | Free plan | [Yes, up to N invoices] | [No] | | Recurring invoices | [Yes] | [Yes] | | Card and bank payments | [Yes, fees: link] | [Yes, fees: link] | | Multi-currency | [N currencies] | [N currencies] | | Time tracking | [No] | [Yes] | | Full bookkeeping | [No] | [Yes] | | Mobile app | [iOS, Android] | [iOS] | Prices and features checked on [date]. Sources are listed below. ## Who Paidwick is for [Freelancers and one-person studios who bill a handful of clients a month and want to get paid faster. Not a fit if you need payroll.] ## Who Competitor A is for [Small businesses with employees or stock, who want invoicing inside a full accounting system.] ## Where Paidwick falls short - [No built-in time tracking. You need a separate app.] - [No payroll or inventory.] ## Where Competitor A falls short - [Takes longer to set up for a single freelancer.] - [No free plan.] ## Switching from Competitor A to Paidwick [What you can import, what you re-enter by hand, how long it takes.] ## Questions **Can I use both?** [Answer.] **Does Paidwick work outside the US?** [Answer.] ## Sources - Paidwick pricing: paidwick.com/pricing - Competitor A pricing: [URL], checked [date] - Competitor A feature docs: [URL], checked [date] ``` For an alternatives page, keep the same top: a dated, two-sentence answer, then a table with one row per option and columns for "best for", starting price and one main drawback. Then a short section per option. Put your product where it honestly fits, and say plainly that you make it. ## Legal and ethical guardrails You are allowed to name competitors. You are not allowed to mislead. This is general information, not legal advice. Ask a lawyer before you publish anything a competitor is likely to dispute. **Be truthful and clear.** The US Federal Trade Commission's policy on comparative advertising "encourages the naming of, or reference to competitors", but "requires clarity, and, if necessary, disclosure to avoid deception of the consumer" ([16 CFR 14.15](https://www.law.cornell.edu/cfr/text/16/14.15)). In practice: - Every claim in the table should link to a source you can show, such as the competitor's own pricing page or docs. - Save a dated screenshot of each competitor page you cite. If they dispute a claim later, you can show what it said. - Compare like with like. Do not put your annual price next to their monthly price. - Say who wrote the page. A line like "Paidwick is the company that publishes this page" is enough. **Use their name, not their brand.** The International Trademark Association describes nominative fair use, which generally covers comparative advertising, with three conditions: the product "is not readily identifiable without use of the trademark", "only so much of the mark as is reasonably necessary" is used, and the use "does not suggest sponsorship or endorsement by the trademark owner" ([INTA fact sheet](https://www.inta.org/fact-sheets/fair-use-of-trademarks-intended-for-a-non-legal-audience/)). INTA also notes that in Europe, comparative advertising must comply with the EU directive on misleading and comparative advertising. In practice: - Write the competitor's name in plain text. Skip their logo, colors and fonts. - Never suggest a partnership, endorsement or certification that does not exist. - Do not use their name in a way that makes your page look like theirs. **Do not fake neutrality.** A page called "the 7 best invoicing apps" that ranks you first on every factor, without saying you made it, misleads readers. It also gives an engine little reason to trust it over a page that is honest about trade-offs. ## Mistakes that keep pages from being cited | Mistake | Why it hurts | Fix | |---|---|---| | Verdict buried below a long intro | The answer is hard to find and quote | Put it in the first three sentences | | Adjectives instead of facts | Nothing specific to quote | Use numbers, yes/no, and named features | | You win every row | Readers and engines trust it less | Show real weaknesses on both sides | | Prices with no date | Stale prices get repeated wrongly | Add "checked on" dates and recheck often | | Table loads with JavaScript | Many AI crawlers see an empty page | Render it in the server HTML | | No sources | Claims cannot be checked | Link each competitor fact | ## Keep it current Set a reminder to recheck every comparison page each quarter, and any time a competitor changes pricing. Update the "last updated" date only when you actually changed something. A page that is honest about its date is more useful than one that claims to be fresh. ## Next step Once the pages are live, check whether they change what the engines say. Our guide to [tracking AI mentions for free](https://searchmaxx.link/blog/track-ai-mentions-free) gives you a prompt set and a spreadsheet layout. If you are not sure the AI crawlers can read your pages at all, run our [free check](https://searchmaxx.link/) first. --- # How to track whether ChatGPT mentions your company, for free URL: https://searchmaxx.link/blog/track-ai-mentions-free Published: 2026-09-24 Updated: 2026-10-18 Author: Roshan, founder of SearchMaxx Write 20 to 30 questions your buyers ask, run each one several times in ChatGPT, Claude, Perplexity and Google, and log whether each answer names you, links to you, and where you appear. Report the share of answers that mention you, together with how many answers that share is based on. Repeat on the same day each month with the same questions, so the trend means something. That is the whole method. The details below make the numbers worth trusting. ## Why you have to ask more than once AI answers change from one run to the next, even with the same question. In a SparkToro study, about 600 volunteers ran 12 prompts through ChatGPT, Claude and Google's AI 2,961 times. ChatGPT and Google's AI gave the same list of brands less than once in 100 runs, and the same list in the same order about once in 1,000 ([SparkToro](https://sparktoro.com/blog/new-research-ais-are-highly-inconsistent-when-recommending-brands-or-products-marketers-should-take-care-when-tracking-ai-visibility/)). Two lessons follow from that study: - **Track how often you appear, not your position.** The author wrote that "visibility % across dozens to hundreds of prompts run multiple times is a reasonable metric", and that any tool giving a "ranking position in AI" is "full of baloney". - **One screenshot proves nothing.** If a colleague sees you named once, or not named once, that is a single draw from a range of answers. The study suggests "usually at least 60-100X" runs per prompt for a precise number. A free, manual method cannot do that. It can still show you whether you are named often, rarely or never, and whether that changes over months. Treat it as a rough gauge, and say so when you share it. ## Step 1: Build your prompt set Write 20 to 30 questions in the words a buyer would use. Spread them across these types, using Paidwick, a made-up invoicing app for freelancers, as the example: | Type | Example | How many | |---|---|---| | Category, best-of | "What's the best invoicing app for freelancers?" | 5 to 8 | | Use case | "How can I send invoices and get paid by card as a freelance designer?" | 5 to 8 | | Alternatives | "What are good alternatives to Competitor A for invoicing?" | 3 to 5 | | Head to head | "Paidwick vs Competitor A, which is better for a solo freelancer?" | 2 to 4 | | Problem | "Clients keep paying my invoices late. What tool can help?" | 3 to 5 | | Brand check | "What is Paidwick and who is it for?" | 1 to 2 | Where to find real wording: - Sales call notes and demo request forms. Copy the buyer's exact phrasing. - Support tickets that start with "Can I..." or "How do I...". - Your Google Search Console queries, especially longer ones phrased as questions. - Forum threads where people ask for recommendations in your category. Keep brand-check questions separate when you report. They tell you whether the engines describe you correctly. Only the other questions tell you whether buyers who have never heard of you will find you. Once the list is set, freeze it. Changing questions between runs breaks the trend. If you must add one, add it as new and keep the old ones. ## Step 2: Set up clean sessions Your own account is the worst place to test. It knows who you are. - **ChatGPT memory.** With "Reference chat history" on, ChatGPT draws on past conversations, and Temporary Chats do not use existing memories or create new ones ([OpenAI Memory FAQ](https://help.openai.com/en/articles/8590148-memory-faq)). Use a Temporary Chat or a fresh account with memory off. If you test from a work account where you have asked about your own product a hundred times, you will see yourself more than your buyers do. - **Other assistants.** Check each one's settings for memory or personalization and turn it off, or use a fresh account. - **Google.** Use a private window, signed out. - **Location.** Results can depend on where you are. OpenAI's and Anthropic's web search APIs both take a `user_location` setting to localize results ([OpenAI](https://developers.openai.com/api/docs/guides/tools-web-search), [Anthropic](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool)). Run from the same place every time, and write down where that is. If you sell in several countries, treat each country as its own test. Record the model or mode you used, such as the model name ChatGPT shows, or whether search was on. When a model changes, your numbers may jump for reasons that have nothing to do with your site. ## Step 3: Run each prompt several times Start a new chat for every run. Paste the question exactly as written. Do not add follow-up questions. A workable free setup: - 25 prompts - 3 runs per prompt per engine - 4 engines: ChatGPT, Claude, Perplexity, Google AI Overviews or AI Mode That is 300 answers. Split it across a few people, or across a few days in the same week. If you only have time for one engine, start with the one your buyers use most, and run 5 times per prompt instead of 3. ## Step 4: Log every answer Use one row per answer. Here is a column layout you can paste into a spreadsheet as the header row: ```text date,run_by,location,engine,model_or_mode,prompt_id,prompt_type,run,mentioned,linked,position,competitors_named,accurate,notes ``` | Column | What to enter | Example | |---|---|---| | `date` | Day of the run | 2026-09-24 | | `run_by` | Who ran it | Sam | | `location` | City or country | Toronto | | `engine` | ChatGPT, Claude, Perplexity, Google | Perplexity | | `model_or_mode` | What the interface showed | Search on | | `prompt_id` | Stable ID for the question | P07 | | `prompt_type` | From the table in step 1 | Alternatives | | `run` | 1, 2 or 3 | 2 | | `mentioned` | Y if your name appears anywhere | Y | | `linked` | Y if a source link points to your site | N | | `position` | Order among products named, blank if not named | 3 | | `competitors_named` | Other products in the answer | Competitor A; Competitor B | | `accurate` | Y, N, or blank. Was what it said about you true? | N | | `notes` | Anything odd. Paste wrong claims here | Says no free plan | Keep `position` even though it is noisy. It is useful as a rough check over many runs. Just do not report it as a ranking. The `accurate` column can point to quick fixes. If engines keep saying you lack a feature you have, a clear page that states it plainly is your next task. ## Step 5: Compute rates, with sample sizes The main number is the **mention rate**: answers that name you divided by all answers. Compute it per engine, and per prompt type. If your columns sit in a sheet called `Log`, with `engine` in column D and `mentioned` in column I: ```text =COUNTIFS(Log!D:D,"ChatGPT",Log!I:I,"Y") / COUNTIFS(Log!D:D,"ChatGPT") ``` Do the same for `linked` to get a **citation rate**. Always show the count next to the rate: | Engine | Answers | Mentioned | Mention rate | Linked | Citation rate | |---|---|---|---|---|---| | ChatGPT | 75 | [n] | [n ÷ 75] | [n] | [n ÷ 75] | | Claude | 75 | [n] | [n ÷ 75] | [n] | [n ÷ 75] | | Perplexity | 75 | [n] | [n ÷ 75] | [n] | [n ÷ 75] | | Google | 75 | [n] | [n ÷ 75] | [n] | [n ÷ 75] | **How much movement is noise?** With 75 answers and a mention rate near 20%, a standard 95% margin of error is about plus or minus 9 points. With 150 answers it is about plus or minus 6. Runs of the same prompt are not fully independent, so the true uncertainty is larger than that. A move from 16% to 21% in one month is not news. A move from 5% to 30% over three months is. ## How often to run it - **Monthly** for the full set. Same week, same people, same location. - **After a big change**, such as a new comparison page or a pricing update, wait a few weeks, then run only the prompts that change should affect. - **Quarterly**, review the prompt list. Add new questions as new rows. Do not edit old ones. ## Pitfalls - **Testing while logged in to your own account.** Memory and history make you look more visible than you are. - **Rewording questions.** Small wording changes give different answers. Paste the exact text. - **Mixing locations or people's accounts** without recording them. - **Counting a warning as a win.** "Avoid Paidwick, it has no mobile app" is a mention. Note what was said, not only that you were named. - **Confusing names.** If your name is a common word, read each answer rather than searching the text. - **Reporting a rate without its sample size.** "40% of answers" from 5 answers means very little. ## Optional: automate it with the official APIs If you can write a short script, the APIs let you run many more repetitions. Answers from an API are not the same as answers in the consumer apps, which have their own settings and features. Log API runs as their own `engine` value, such as "OpenAI API", and do not mix them with app runs. - **OpenAI.** The Responses API has a hosted `web_search` tool. Cited sources come back as `url_citation` annotations on the message, and `user_location` sets an approximate location ([docs](https://developers.openai.com/api/docs/guides/tools-web-search)). - **Anthropic.** The Messages API has a web search tool, for example `web_search_20250305`. Citations are always on and return the cited URL and title. It costs $10 per 1,000 searches plus tokens ([docs](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool)). - **Perplexity.** Perplexity is moving from Sonar Chat Completions to its Agent API. Its docs give September 27, 2026 as the end of Sonar Chat Completions support. Agent API responses include a `search_results` item with the sources ([docs](https://docs.perplexity.ai/docs/sonar/quickstart)). An outline in Python for the first two: ```python from openai import OpenAI import anthropic openai_client = OpenAI() claude_client = anthropic.Anthropic() def ask_openai(prompt): r = openai_client.responses.create( model="MODEL_NAME", tools=[{"type": "web_search"}], input=prompt, ) return r.output_text def ask_claude(prompt): m = claude_client.messages.create( model="MODEL_NAME", max_tokens=2048, tools=[{"type": "web_search_20250305", "name": "web_search"}], messages=[{"role": "user", "content": prompt}], ) return "".join(b.text for b in m.content if b.type == "text") # For each prompt, call each function N times, check the text for # your brand name, and append one row per answer to a CSV with the # columns above. ``` Check your brand name with a case-insensitive match, then read a sample of the answers yourself. A script will miss misspellings and will count warnings as mentions. ## Next step If you are rarely named, check the basics first. Our [free check](https://searchmaxx.link/) shows whether the AI search crawlers can read your site. Then look at the questions where competitors appear and you do not. Those are the questions where a new page can help, and our guide to [comparison pages AI assistants cite](https://searchmaxx.link/blog/comparison-pages-that-ai-cites) shows how to write it. --- # Website launch checklist: 23 things to check before you share your site URL: https://searchmaxx.link/blog/website-launch-checklist Published: 2026-09-23 Author: Roshan, founder of SearchMaxx A site can look finished and still be broken for search engines, link previews and AI tools. The usual causes are small: a staging `noindex` left in, an app that returns 200 for every URL, or a share image that 404s. This is the list we run on every site before we start work. Each item says why it matters and how to check it with `curl`. Replace `paidwick.com` with your domain. To run all 23 checks at once, use the free [website launch checklist](https://searchmaxx.link/tools/launch-checklist). It takes about 10 seconds. ## Loads and redirects **1. The homepage loads over HTTPS.** Every other check depends on it. ```sh curl -sI https://paidwick.com/ | head -1 ``` You want `HTTP/2 200`. **2. HTTP redirects to HTTPS.** Old links and typed addresses still use `http://`. They should get a 301 to the secure page. ```sh curl -sI http://paidwick.com/ | grep -iE '^(HTTP|location)' ``` You want `301` and a `location: https://...` line. If you see `200`, turn on your host's "always use HTTPS" setting. **3. www and the bare domain lead to one site.** Pick one and 301 the other to it. Two live copies split links, and Google has to [guess which one is canonical](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls). ```sh curl -sI https://www.paidwick.com/ | grep -iE '^(HTTP|location)' ``` If the domain does not resolve at all, add a DNS record and redirect it. People do type `www`. **4. Missing pages return a 404.** Request a URL that cannot exist: ```sh curl -s -o /dev/null -w '%{http_code}\n' https://paidwick.com/this-page-does-not-exist-123 ``` You want `404`. Single-page apps often return `200` with the app shell for every path. Google calls this a [soft 404](https://developers.google.com/search/docs/crawling-indexing/http-network-errors). The router in the browser can show a "not found" screen, but the server or host still has to send the 404 status. **5. The homepage responds quickly.** Time to first byte is how long the server takes to start answering. ```sh curl -s -o /dev/null -w '%{time_starttransfer}\n' https://paidwick.com/ ``` web.dev suggests [0.8 seconds or less](https://web.dev/articles/ttfb) as a rough guide. Our checklist flags anything over 1 second, measured from our server. ## Search basics **6. A title tag.** It becomes the [title link](https://developers.google.com/search/docs/appearance/title-link) in Google and is often the name AI answers use for the page. Name the product and what it does. **7. A meta description.** Google [often uses it](https://developers.google.com/search/docs/appearance/snippet) for the snippet under the title. Without one, it picks text from the page. Aim for 70 to 160 characters. ```sh curl -s https://paidwick.com/ | grep -ioE '<title>[^<]*|]*>' ``` **8. A canonical tag that points to the page itself.** Copied templates often point every page at the homepage, or at a staging domain. ```html ``` **9. No noindex.** A [noindex rule](https://developers.google.com/search/docs/crawling-indexing/block-indexing) keeps the page out of Google. It can be a meta tag or an `X-Robots-Tag` header, so check both: ```sh curl -sI https://paidwick.com/ | grep -i x-robots-tag curl -s https://paidwick.com/ | grep -io ']*>' ``` **10. One h1.** It should be in the HTML the server sends, not only added by JavaScript. Crawlers that do not run scripts never see it. **11. A language on the html tag.** `` tells browsers and screen readers [what language the page is in](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/lang). **12. A mobile viewport tag.** Google indexes the [mobile version](https://developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing) of your site. Without this tag, phones render a shrunken desktop page. ```html ``` **13. A robots.txt that allows search.** A missing file is fine for crawlers. A leftover `Disallow: /` from staging [blocks the whole site](https://developers.google.com/search/docs/crawling-indexing/robots/intro). ```sh curl -s https://paidwick.com/robots.txt ``` If you see your HTML page instead of a short text file, your app is answering every path. Fix that first. Our guide to [which AI crawlers to allow](https://searchmaxx.link/blog/ai-crawlers-robots-txt) has a robots.txt you can copy. **14. A sitemap, listed in robots.txt.** A [sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap) lists the pages you want found. Add one line to robots.txt so every crawler finds it: ```text Sitemap: https://paidwick.com/sitemap.xml ``` **15. Structured data that parses.** JSON-LD [names your company and product](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data) in a format machines read directly. A missing comma breaks the whole block, so paste your homepage into Google's Rich Results Test after every change. Our post on [schema markup for SaaS](https://searchmaxx.link/blog/best-schema-markup-for-saas) covers which types to use. ## Sharing **16. Open Graph title and description.** Slack, LinkedIn, iMessage and most chat apps build link previews from the [Open Graph tags](https://ogp.me/). **17. A share image that loads.** The tag is easy to add and easy to break. Check that the URL returns an image: ```sh curl -sI https://paidwick.com/og.png | grep -iE '^(HTTP|content-type)' ``` Use 1200x630 and a full `https://` URL. Some platforms ignore relative paths. **18. An X card tag.** X needs [`twitter:card`](https://developer.x.com/en/docs/x-for-websites/cards/overview/abouts-cards) to show a large image. It reads the Open Graph tags for the rest. ```html ``` **19. A favicon.** It shows in tabs, bookmarks and [next to your result in Google](https://developers.google.com/search/docs/appearance/favicon-in-search). Add an apple-touch-icon too for iPhone home screens. ## AI search **20. An llms.txt.** A proposed convention from [llmstxt.org](https://llmstxt.org/): a Markdown file at `/llms.txt` with your name as an h1, a short summary, and links to your key pages. Google says its search ignores the file, and no AI search company says its crawler reads it. It helps coding tools and agents find your key pages, and it takes an hour to write. Our [llms.txt guide](https://searchmaxx.link/blog/llms-txt-2026) has the evidence and a template. ```sh curl -s https://paidwick.com/llms.txt | head -3 ``` The first line should be a `#` and a space, then your name. If you get HTML, your app's catch-all route is answering instead. **21. An llms-full.txt (optional).** The full text of your docs or key pages in one Markdown file. It is newer and less common than llms.txt, so treat it as a nice extra. ## Trust **22. A privacy policy link.** Buyers look for one, and so do app stores and ad platforms. Put it in the footer. **23. A contact or about link.** People check who runs a site before they buy. An email address in the footer counts. ## What this list does not cover Passing all 23 means nothing is stopping search engines, AI tools and link previews from reading your site. It does not get you ranked or named in AI answers. That depends on what your pages say and who links to them. For the AI side, run the [free AI site check](https://searchmaxx.link/#check). It tests whether ChatGPT, Claude and Perplexity's crawlers are allowed in and get the same page as people.