# ChatGPT Rebuilt Its Search Tool. I Read the New Language It Speaks.

> Source: <https://suganthan.com/blog/chatgpt-new-search-language/>
> Published: 2026-08-21 00:00:00+00:00

# ChatGPT Rebuilt Its Search Tool. I Read the New Language It Speaks.

Between 16th and 20th August, ChatGPT's search tool call went from JSON to a compact query language with freshness windows, domain targeting and separate verticals for products, places, images and widgets. I captured both sides of the change on the same account, with the same question. Here's the full map, and what each part means for getting cited.

On 16th August, when ChatGPT ran a web search for me, the tool call was JSON.

```
{"system1_search_query":[{"q":"site:intercom.com Fin AI Agent pricing 2026"}]}
```

On 20th August I asked the same question on the same account. The tool call now looks like this.

```
fast|Intercom Fin AI agent pricing 2026 live chat support|30|intercom.com
fast|Gorgias AI Agent pricing 2026 customer support|30|gorgias.com
fast|Zendesk AI agents pricing 2026|30|zendesk.com
fast|best AI live chat support Intercom Gorgias Zendesk Ada Tidio Crisp reddit|365|reddit.com
length|long
```

Somewhere in those 4 days, OpenAI replaced the JSON with a compact query language of its own. And `search_queries`

, the metadata field that mirrored the fan-out, the field my last article told you to read and the field FanoutFox parses, is gone from the payload entirely.

This is Part 4 of the series that started with [how ChatGPT picks sources](/blog/how-chatgpt-picks-sources/) and most recently found [the shortlist it writes before it searches](/blog/chatgpt-decides-before-it-searches/). This time I ran the new format across 8 questions, spanning commercial, physical goods, local, news and finance, and mapped what the language can say.

It says a lot more than the old one.

5 ideas, each one built on the last.

- Every line is a search, and the fields are readable.
- The third field is a freshness window, and it changes with what you ask.
- Search is a set of verticals, and your content type decides which one fires.
- The domain slot means ChatGPT visits sites it already knows.
- Some answers are becoming widgets, and there’s no citation to win in them.

Everything here is read off my own browser traffic with a single ChatGPT Plus account from a single location.

## Idea 1. Every line is a search

A tool call is now a block of lines, one search per line, fields separated by pipes. The pattern that repeats is a call type, the query, a number, and sometimes a domain.

```
fast|Zendesk AI agents pricing 2026|30|zendesk.com
```

`fast`

is the call type. The query reads like the old fan-out queries, brand names the model wrote in itself, a year, an intent word like pricing. The number and the domain are new, and they’re the interesting part, because they’re parameters the old format had nowhere to put.

Each block closes with a directive line, `length|long`

, `length|medium`

or `length|short`

. This one is the survivor of the old format. The JSON at the top of this article had `"response_length":"long"`

in the same position, so it’s been renamed rather than added. It reads as an instruction for how much text to bring back per result, and the values track the job. `long`

fired on the deep product comparison, `medium`

on most lookups, and `short`

on a final call that was verifying two venue names. If that reading is right, most searches pull a bounded excerpt of your page rather than the page, one more reason the sentence that answers the question needs to sit where an excerpt starts.

The fields after the query are optional. Some lines are only a query, some add the number, and the domain appears when a site is being targeted.

### Practical AI SEO/GEO Tip

Ask the questions your buyers ask and check the brands written by ChatGPT. The brand names in those queries are the competitive set ChatGPT already holds for your category, and the domains in the slots are the sites it intends to visit.

Make sure your site will survive the probing (I have written about this before and made a a few tools so check them out)

## Idea 2. The third field is a freshness window

Here’s the same field across five lines from the questions I asked on 20th August.

Question | Line | Number |
|---|---|---|
| Is Nvidia overvalued | `fast|NVIDIA NVDA stock price August 20 2026...|2` | 2 |
| Premier League weekend | `fast|Premier League results...|7|premierleague.com` | 7 |
| Best AI live chat software | `fast|Zendesk AI agents pricing 2026|30|zendesk.com` | 30 |
| Nvidia earnings guidance | `fast|NVIDIA latest earnings guidance...|90|investor.nvidia.com` | 90 |
| Live chat, the Reddit line | `fast|best AI live chat support...reddit|365|reddit.com` | 365 |

A stock price gets 2. Football results get 7. Commercial product research gets 30. Earnings guidance gets 90.

So, what on earth is this number?

I think this number is a recency window in days, matched to how fast the answer goes stale.

I haven’t seen any spec for this, so this is my assumption.

### Practical AI SEO/GEO Tip

On the commercial questions I ran, every brand probe had a 30-day window.

If the days assumption is right, a pricing or comparison page that hasn’t changed in a month is competing from outside the default window on exactly the queries where brands get compared.

Update the pages that answer buying questions inside that cycle, with real changes and visible dates.

Same tactic goes to your key pages and content. Check your prompts/keywords.

## Idea 3. Search is a set of verticals

The call types I’ve captured so far, with the real lines.

** fast is the web search.** It’s the successor to the whole old fan-out.

** product is a catalogue lookup.** It appeared on robot vacuums and mattresses, and on none of the software questions I ran.

```
product|Roborock Saros 10R robot vacuum;Dreame X50 Ultra robot vacuum;Eufy E28 robot vacuum
```

Product names, semicolon-separated, with nothing else on the line. It lines up with the product cards and merchant offers I found in the commerce layer back in June.

For physical goods, ChatGPT looks products up in a catalogue as well as searching pages about them, and presence in that catalogue is its own game, separate from anything your blog does.

### Practical AI SEO/GEO Tip

If you sell physical products, check whether yours come back with cards, offers and merchant names when ChatGPT recommends them. Cards mean the catalogue knows you. A text mention with no card means the content game is the only one you’re in, and no amount of page work changes what the `product`

call returns.

** business is a places lookup, and it takes a location.** On a coffee question it fired 3 times. Here are the first two.

```
business|Dubai, UAE|specialty coffee Dubai Marina;best coffee Dubai Marina
business|Dubai, UAE||Blends Specialty Coffee;Roast Speciality Coffee, Marina;OLAB Coffee Shop JBR
```

The first call sends search phrases. The second sends actual business names it got back from the first, and then verifies them one by one with quoted `fast`

searches.

That’s the local version of the shortlist mechanics from the shortlist article, running on venues instead of brands.

If you run a local business, the unit of optimisation is your entity in the places data.

The lookup returns the name, the reviews and the details, and the web searches only verify them.

Ask ChatGPT for your own category in your own area and watch the second `business`

call.

If your venue’s name appears in it, the lookup knows you and the follow-up searches are checking your details, so make sure what’s on your site matches what the listings say. If your name never enters that call, your problem is the places data, and your website can’t fix it.

`image`

is an image search.`image|Dubai Marina specialty coffee shop|30`

. It fired alongside the places lookup.

`genui_run`

calls a widget, with JSON arguments.

```
genui_run|epl_schedule|{"fn":"schedule","league":"EPL","date_from":"2026-08-21","date_to":"2026-08-24","locale_override":"en-GB"}
genui_run|stock_chart|{"ticker":"NVDA","asset_type":"equity","market":"USA","locale_override":"en-US"}
```

A football schedule and a stock chart, requested as functions with typed arguments, not as searches at all. More on what that means in idea 5.

One more detail from the news capture. The domain field can hold a list. `theguardian.com;skysports.com`

appeared on one line, so a search can be scoped to several publishers at once.

## Idea 4. The domain slot

Until this week, when ChatGPT wanted to search one specific website, it wrote the classic, `site:intercom.com`

in front of the query, the same operator search we SEOs often use…

The new format has a slot for it instead. The last field on a line is a website, and that search only looks there. Checking one company’s site is built into the tool now, sitting next to the query on every line, rather than spelled out in the search words. Both styles still show up, some lines keep `site:`

in the words while others use the slot.

What this means in practice hasn’t moved from the shortlist article. The model still names brands before it fetches anything, then goes to their websites to check what they say.

What’s new is how ordinary that step is. Visiting the website of a company it just named is a standard option on every search line, and the model fills the slot itself, from whatever domain it already links to the brand.

If the domain in its memory is wrong or stale, the probe searches the wrong place. I’ve watched that happen once, a probe aimed at a domain the brand doesn’t run, and the broad search rescued them.

On the query `best llm visibility tool and what does each one cost`

, the model wrote this probe:

```
site:profound.ai pricing AI visibility platform Profound pricing 2026
```

Profound doesn’t run on profound.ai, they run tryprofound.com. The probe returned 0 pages from the pool. The brand survived anyway. the broad discovery search found the right domain, tryprofound.com got cited at its pricing page, and Profound was named 6 times in the answer body. So the wrong slot cost them one of the model’s four searches.

### Practical AI SEO/GEO Tip

Read the slot on your own captures and check the domain is one you actually run. **Rebrands**, **migrations** and **country domains** are the cases that produce a wrong slot, because the model fills it from memory, and memory lags. A wasted probe cost that brand nothing on the day I watched it, and I wouldn’t build a strategy on the rescue repeating.

## Idea 5. Some answers are becoming widgets

The `genui_run`

lines don’t return pages. They return interface.

In the finance answer, the stock chart showed up as a reference named `stock_chart`

pointing at a widget hosted on `cdn.platform.openai.com`

, version 2.0, hydrated from a state payload. In the coffee answer, the model emitted a `genui`

directive in the answer text itself, a map widget with pins wired to the businesses the places lookup returned.

So for sports, stocks, places, and presumably more I haven’t caught yet, part of the answer is a component OpenAI renders itself. A stock chart has no link inside it to win, and the football schedule cites no fixtures page. Whole classes of query are moving to surfaces where the citation game, the one every GEO tool measures, doesn’t exist.

### Practical AI SEO/GEO Tip

Run the queries you rank for and note which come back with a widget where the answer used to be. A `genui_run`

line in the capture is the tell. I can’t give you a tactic for winning inside a widget, because on what I’ve seen there’s nothing in one to win. What you can do is know which of your queries have crossed over, and stop counting citation opportunities on answer types that no longer offer any. If your traffic depends on being the page that answers “what time is the match”, the widget is your competitor now.

It’s the same call as not optimising for a keyword whose SERP is an AI Overview and a wall of other features.

## The Reddit situation is very very interesting

I want to walk you through this one step by step, keeping what I can see separate from what I think it means.

Start with the line itself, from the live chat capture.

```
fast|best AI live chat support Intercom Gorgias Zendesk Ada Tidio Crisp reddit|365|reddit.com
```

Read the query. Reddit is named in the words, the domain slot is pointed at reddit.com, and the window is **365** where every brand line in the same call got **30**. And the six brand names are in there with it.

**So, what’s going on here?**

I genuinely had a Joey moment. (Friends fans will get it)

**So this search didn’t ask Reddit who the good live chat tools are. It asked Reddit what people say about the six tools the model had already picked.**

**The candidate set came from memory, and Reddit was fetched for opinion about it.**

What came back is the next tangible fact.

84 of the 221 entries in that conversation’s retrieval pool were Reddit threads, more than from any other source. The conversation had no open-and-read step, so what entered the model’s context was 84 thread snippets, the title and excerpt the search returns, rather than 84 threads read in full.

Then the answer went out with every citation bound to vendor pages. Zero of the 84 got credited, in the one conversation where I’ve checked citations against the pool line by line.

The coffee capture then did it again, harder.

```
fast|site:reddit.com Dubai Marina specialty coffee Dubai|3650|reddit.com
```

Both mechanisms at once, `site:`

in the words and the domain in the slot, with a 3650-day window. Ten years of threads, on a question where news sites got 7 days.

Why Reddit would get a decade on a local query, I honestly don’t know, but I have a few thoughts on this below. One clue about why a wide window fits the question, I asked my AI agent to search Reddit for Dubai Marina coffee threads, and it found some as old as 12 years. That’s the archive a 3,650-day window reaches.

The wire itself can’t confirm ages either way. Almost none of the fetched Reddit entries in my capture carried a date, so I can’t tell you how old the threads ChatGPT actually pulled were.

[Promptwatch’s chart from 18 August](https://promptwatch.com/data/reddit-citations-are-dropping-in-chatgpt) has Reddit’s share of ChatGPT citations collapsing from about 3.83% to under 1% in mid August. Their guess was a source selection change. A citation panel only sees the finished answer. The wire adds the steps before it, the deliberate request, the bulk delivery, and the zero credits.

Based on what I’m seeing, this is what I think is happening. I can’t confirm it yet, so treat this as my interpretation of the evidence, not a definitive conclusion.

- Content sitting in the model’s context can shape what it writes. (There is often a bias)
- This model fetched opinion about its shortlist immediately before writing opinions about its shortlist, then attributed those opinions to nobody.
- I think
**Reddit has become an invisible input**, feeding the verdicts while the credits go to vendor pages. - That would fit what I found in Part 1, where facts came from official pages and verdicts came from third parties, with Reddit chief among them. If that division of labour survived and the crediting stopped, the influence is still there
**and the receipts are gone**. - The other possible reading is that the snippets are fetched and then ignored, and the year-wide window is a leftover habit. Nothing in the traffic separates the two. The fetching and the zero credits are facts I can show you. The influence is my interpretation, and the wire cannot prove influence without citation.

Now let’s unpack this a little further and look at the wider context around why OpenAI might have made this change.

**Anti manipulation and spam deterrence**

This could be a way to reduce the impact of people gaming Reddit for AI SEO/GEO. If ChatGPT is deliberately looking across 1 to 10 years of Reddit history, recent manipulation becomes a much smaller signal.

There are effectively two filters. The candidate pool appears to be selected first, then Reddit is used to gather opinions or validate those candidates. That makes simply flooding Reddit with brand mentions far less useful.

There may also be a *deterrence effect*. Citation studies show Reddit visibility falling sharply, which makes marketers think Reddit has lost its value. Less perceived value means less spam.

**Compliance or licensing**

For context, OpenAI and Reddit signed a data licensing deal in 2024, so the data access itself is paid for and public. What that deal says about attribution, I can’t see from the wire. Another possibility, and it’s speculation, is that OpenAI still wants the value of Reddit data without leaning on Reddit as an obvious, directly cited source.

Instead of surfacing Reddit pages prominently in answers, Reddit could be used further upstream as an input for candidate evaluation, opinion gathering, or other internal retrieval processes.

### Practical AI SEO/GEO Tip

If Reddit has been part of your AI visibility work, count the chips yourself. Run your queries, and check whether the threads you invested in still get credited on them.

Does this change make your Reddit campaigns useless? Absolutely not.

If you’ve been doing this for a while, genuinely engaging with Reddit communities and building a brand, especially if you survived Reddit’s recent spam purge, carry on. Two channels survive this change either way. Years of threads feed the training data that builds the memory shortlist in the first place, and the humans reading those threads never stopped being buyers. What’s collapsed is the measurable citation payoff, the chips.

If your strategy was simply spamming Reddit to manipulate AI visibility, though, this is bad news for you.

Remember one thing. A thread that gets fetched but never cited isn’t a measurable win. Whether it still sways the answer is the open question above.

## What breaks, and what I’d do

**The old recipe is dead.** My last article said to open DevTools and search the response for `queries`

. That field no longer exists. The queries are still there, they’ve moved into the `web.run`

tool-call messages as the pipe-delimited lines above. FanoutFox reads the old field too, and I’ll be patching it.

**The new two-minute check.** Open ChatGPT in Chrome with DevTools on the Network tab. Ask the commercial question your buyers ask. Filter for `conversation`

, click the biggest response, the conversation payload, not the tiny stream_status and textdocs rows that share the name. Open its Response tab, press Cmd+F inside that pane, and search for `fast|`

. The panel-wide search drawer will drown you in JS bundle hits, so search inside the one response instead. Read the lines. You’re looking for three things. Whether your brand is in the queries, whether your domain is in the slot, and what window your category runs on.

That check is manual, and it gets old on the third answer. [FanoutFox](https://fanoutfox.com/), the free Chrome extension I built for this series, reads the same session data and does the fetched-versus-cited counting for you, per domain, per answer. The converts column is the Reddit check from this article as a sorted table. Its fan-out card reads the old `search_queries`

field, so that card is empty on new conversations until the patch for the pipe format ships, and the rest of the panel, sources, citations and the domain radar, is unaffected by the change.

I need a little time to update Fanout Fox and make it play nicely with all these changes.

My kids are home for the summer holidays, so my current development environment includes three highly persistent stakeholders with absolutely no respect for sprint planning.

I’ll get it updated soon.

This is the third format change I’ve documented since June, and I could put a 4-day window on this one only because I keep dated snapshots of what the traffic exposes and diff them after every capture session. If you do this kind of work, keep dated copies of everything. What was true on a Sunday was gone by Thursday.

Want this kind of AI search analysis run on your brand?

If you want help applying this on your own site, my agency Snippet Digital takes on this kind of work. Send an enquiry and I will be in touch.

[Work with me](/work-with-me/)

Enjoying this? Get the next one in your inbox.

I email when I publish something new. Usually 2 to 4 emails a month. Unsubscribe anytime.

Join 1,270+ readers. Unsubscribe anytime.

[Suganthan Mohanadasan](/about/)

Norwegian entrepreneur with 20+ years in SEO. Co-founder of Keyword Insights and Snippet Digital. Based in Dubai.
