Back to News & Insights
SEO September 13, 2026 · 6 min read

Ask the Raw LLM API From Your Terminal. What Comes Back Is Junk, and That's the Point

Martin McGarry's top tip: query the bare OpenAI or Gemini API, diff it against the chat product, and the delta shows you where retrieval fetches from. Plus RSS as the next llms.txt and the grace period spam drives through.

Ask the Raw LLM API From Your Terminal. What Comes Back Is Junk, and That's the Point

You can find out in five minutes without an SEO tool. Martin McGarry gave me this as his top tip for anyone learning SEO right now, and it's the kind of thing a developer runs once and never sees ChatGPT the same way again. Martin runs Search Assistance out of Leeds, twenty years into SEO with the first ten on the black hat side. Most of what follows is him. The disavow story is mine.

"Anyone learning SEO right now, I've got a top tip, is to try the API. Do a little bit of learning. You can pop up Visual Studio, and you can access the API in your terminal. And just ask the raw API a question. So that's the OpenAI LLM, the Gemini LLM, whatever else you use. And just ask a raw question. What you get back is junk."

That's it. No tools, no web search flag, no system prompt beyond the question. Something like this, with a question your actual customers ask:

Save the answer. Then paste the identical question into ChatGPT or Gemini and save that answer too, along with every citation it shows you. Now diff them.

"And then you realize that there's some background process augmenting the chat results. So when you use ChatGPT or Gemini, there's something else working in the background."

Everything the chat product knew that the bare model didn't came from a fetch. Martin doesn't dress this up: "the standalone LLM on its own is rubbish, in my opinion. And there's definitely some, we know there's RAG in the background. OpenAI has been called Googling."

You already knew a chat product is model plus retrieval. What you probably haven't done is measure the gap on your own money queries. That gap is the only part of the answer you can actually influence, and the citations tell you where it fetched from. Martin's version:

"we know SEO is not dead first of all, because these LLMs are having to go out and get extra information from somewhere. So if you learn how that happens, you still learn where you're needed and you still learn where your site needs to be positioned for that RAG or that augmentation to happen."

Three things that keep the experiment honest: Temperature 0 on the raw call, so the junk is the same junk twice and the delta you record is retrieval, not sampling noise. Date every sample. The chat products change what they fetch without telling you. Keep the key in an environment variable. The spreadsheet you hand a client is not the place for it.

This is the idea Martin thinks nobody else has said yet, and you can act on it this afternoon.

"I've not really heard anyone say we should be optimizing our RSS feeds or API."

Everyone is arguing about llms.txt and markdown mirrors. But if part of the retrieval step moves server-side, the machine-readable outputs you already publish (/feed/, /wp-json/wp/v2/posts, your XML) are the surfaces a fetch is most likely to read. And most WordPress feeds are actually a mess: truncated excerpts, missing images, junk categories.

"there's a lot of talk about .md files and llms.txt files at the minute and it may be simpler than that. Maybe we just all build RSS feeds"

He's careful to call it a hunch. "Maybe I'm the first to go down that route. There'll be a whole raft of courses on it by next week on LinkedIn." So treat it as a hypothesis, not a result. But the cost of testing it is close to zero: Open your own /feed/ and read it the way a parser would. Is it full content or an excerpt? (In WordPress that's Settings, Reading, "For each post in a feed, include", or rssuseexcerpt in the options table.) Open /wp-json/wp/v2/posts?per_page=5 and check the content.rendered field isn't full of shortcodes that only your theme understands. Tail your access logs for feed and API hits from AI user agents. If something is reading it, you'll see it there before any dashboard tells you.

I've been running a static markdown experiment on my own podcast site. Martin's point is that I may have been building a new door when the machine was already coming in through the one WordPress installed in 2005.

Telegram link sellers have scaled an old trick, adding links to brands with their own anchor text advertising their services, to hundreds of thousands of sites. Google largely can't judge a page it hasn't seen ranking, so every new page gets a window:

"I think the reason it fails and the reason the expired domains work is because there's a grace period where Google needs things in the SERPs to understand if it's what the user wants or what the user doesn't want."

"these spam sites can rank a page for two or three days. It gets tanked almost instantly, but there's another 10 waiting to be loaded. And what these spam links have done is made a system where Google is actually reassessing the organic listings that were already there."

Want to discuss this further?

Book a free strategy call with our team to see how these insights apply to your specific business goals.

Book a consultation