Category: AEO

  • Who AI Actually Recommends (And Why It’s Not the Brand That Ranks #1)

    Who AI Actually Recommends (And Why It’s Not the Brand That Ranks #1)

    I've now run two studies on this. The first showed that ranking well in Google doesn't get you recommended by AI, the two ladders barely lined up. The second showed why: 79% of the sources AI cites to build a recommendation are third parties, not your own website.

    Both studies left one question sitting there unanswered. If the brand that ranks #1 isn't the one AI recommends, then who is?

    So I picked three categories, took the single most SEO-dominant brand in each, and asked four AI engines who they'd actually recommend. The famous name lost all three times.

    The Setup

    I chose categories where a household name owns Google, then measured whether that dominance survives in AI:

    • Project management software, focal brand monday.com (the one running Super Bowl-adjacent ad budgets).
    • Mattresses, focal brand Casper (the brand that basically invented the bed-in-a-box category).
    • VPNs, focal brand NordVPN (the most-advertised VPN on the planet).

    Each category had the focal brand plus four real competitors. I pulled every brand's U.S. organic traffic from DataforSEO to build the SEO ladder, then ran 7 buyer-style prompts ("best project management software," "best mattress for back pain," "best VPN for streaming," and so on) across ChatGPT, Google AI Overviews, Perplexity, and Gemini, five times each, and measured share of voice: out of all the brand recommendations AI made, what percentage went to each brand.

    Non-determinism is real, so nothing here rests on a single answer. Every prompt ran five times per engine and the results are the aggregate.

    The Finding: The Famous Name Lost Every Time

    Here is the whole study in one picture. Left side is where each brand ranks in Google. Right side is where AI actually recommends it.

    Rank flip across three categories: the SEO leader drops 3 to 4 places in AI

    Every focal brand, the biggest SEO name in its category, fell:

    • monday.com: #2 in Google, dead last in AI.
    • Casper: #1 in Google, dead last in AI.
    • NordVPN: #1 in Google by a mile, 4th of 5 in AI.

    Meanwhile the brands with the smallest search footprints climbed. Two of them took the #1 AI spot outright. Let me show you each category, because the three tell slightly different versions of the same story, and the differences matter.

    Mattresses: A Near-Total Inversion

    This one is the cleanest. The SEO ladder and the AI ladder are almost perfect mirror images.

    Mattress AI leaderboard: Nectar 28%, Saatva 26%, Tempur-Pedic 22%, Purple 21%, Casper 4%
    Brand Google traffic SEO rank AI share AI rank
    Nectar $330K 5, last 28% 1
    Saatva $370K 4 26% 2
    Tempur-Pedic $473K 3 22% 3
    Purple $819K 2 21% 4
    Casper $1.11M 1 4% 5, last

    Casper has the most organic traffic in the category by a wide margin. In AI, it showed up in exactly one of seven prompts, once, on a single engine. It is functionally invisible when someone asks ChatGPT or Perplexity for a mattress. Nectar, the weakest brand in the group on Google, wins the AI recommendation outright.

    If you only watched your Google rankings, you'd think Casper was crushing it. In the place buyers are increasingly asking, it has almost no presence at all.

    VPNs: The Great Flattening

    VPNs behaved differently, and that's exactly why I'm glad this category was in the study.

    VPN AI leaderboard: ExpressVPN 21%, Surfshark 21%, Proton VPN 21%, NordVPN 20%, CyberGhost 19%
    Brand Google traffic SEO rank AI share AI rank
    ExpressVPN $324K 3 21% 1
    Surfshark $221K 4 21% 2
    Proton VPN $370K 2 21% 3
    NordVPN $1.28M 1 20% 4
    CyberGhost $37K 5, last 19% 5

    NordVPN outspends and out-ranks this entire field. It has 3.5 times the organic traffic of the next brand and roughly 80,000 ranking keywords. In AI, all of that collapses into a dead heat. Every VPN sits within two points of every other one, and NordVPN lands 4th.

    Nobody got destroyed here the way Casper did. But look at what happened to the advantage. NordVPN spent years and a fortune building a search lead that AI simply ignores. It treats the category as a five-way tie and hands the top slots to smaller brands. A commanding SEO position bought NordVPN nothing in the AI answer.

    Project Management: The Nuance

    The PM category is the one that keeps me honest, because it contains the study's one real exception.

    Project management AI leaderboard: Asana 21%, ClickUp 21%, Trello 21%, Notion 20%, monday.com 17%
    Brand Google traffic SEO rank AI share AI rank
    Asana $777K 1 21% 1
    ClickUp $157K 4 21% 2
    Trello $206K 3 21% 3
    Notion $144K 5, last 20% 4
    monday.com $328K 2 17% 5, last

    Two things are happening. First, my focal brand monday.com, #2 in Google, came in dead last in AI, right on script. ClickUp and Notion, both weaker in search, beat it.

    Second, and this is the honest exception: Asana ranks #1 in Google and holds #1 in AI. So SEO dominance can carry into AI. But look at the condition. Asana isn't merely strong in search, it's the outright leader by a wide margin, and it has the deep third-party review presence to match. Being #2, like monday, offered no protection at all. The takeaway isn't "rankings never transfer." It's "only true category dominance transfers, and even then it's the third-party coverage riding alongside it doing the work, not the ranking itself."

    Why This Keeps Happening

    Put the three categories together and the mechanism from my second study explains all of it.

    Google ranks your page. You can win it largely on your own property, with your content, your links, your technical health. That's why Casper, monday, and NordVPN dominate search: they've each poured resources into their own websites for years.

    AI doesn't rank your page. It assembles a recommendation from what the rest of the web says about you, the "best of" listicles, the review labs, the Reddit threads, the YouTube round-ups. And on that battlefield, none of these famous brands is winning. Nectar and Saatva get the mattress-review love. ExpressVPN and Surfshark own the VPN affiliate ecosystem. ClickUp and Notion get talked about constantly. The famous brands optimized the one surface AI mostly ignores, their own site, and under-invested in the surfaces AI actually reads.

    That's the whole thing. AI recommendations track third-party reputation, and third-party reputation is not the same asset as search rankings. You can lead one and lose the other, and most brands don't even know there are now two scoreboards.

    What This Means For Your Brand

    If you're the biggest name in your category, do not assume you're safe in AI. Casper was the biggest name and finished last. Go check.

    If you're not the biggest name, this is the best news you'll read this quarter. The AI recommendation isn't locked up by whoever has the fattest SEO budget. Nectar and ClickUp prove a smaller brand can win it outright, by being the one reviewers and communities actually talk about.

    Either way, the work is the same, and it's off your website:

    • Find out where you actually stand across ChatGPT, AI Overviews, Perplexity, and Gemini. Your Google rank tells you nothing about this.
    • Earn the third-party coverage that AI reads, the category review sites, the "best of" listicles, the relevant subreddits and YouTube channels.
    • Track it as its own scoreboard, separate from rankings, because the two now move independently.

    That's exactly what my AI Search Visibility service does: measure where you show up across every major engine, then earn the placements that move you up. If you're the category's biggest name and you're not sure whether AI recommends you, that's the first thing I'd check, and it's a quick thing to find out.

    FAQ

    Does ranking #1 on Google mean AI will recommend me?

    No. Across three categories, the most SEO-dominant brand lost in AI every time, twice finishing dead last. The only brand that held its #1 spot in both was an outright category leader with deep third-party review coverage, and even there it's the coverage doing the work, not the ranking.

    Why does AI recommend smaller brands over famous ones?

    Because AI builds recommendations from third-party sources, review sites, editorial "best of" lists, forums, and video, rather than from a brand's own website. Smaller brands that earn strong review coverage can out-perform famous brands that rely on their search rankings. In this study, the lowest-traffic mattress brand won its category's AI recommendation outright.

    How do I find out if AI recommends my brand?

    Run your key buyer prompts across ChatGPT, Google AI Overviews, Perplexity, and Gemini, several times each to account for non-determinism, and measure your share of voice against competitors. That measurement is the first step of the AI Search Visibility service.

    Is SEO still worth it if AI ignores my rankings?

    Yes. SEO still drives search traffic and keeps you eligible to be cited. But it's now one of two separate jobs. Ranking wins Google. Earning third-party coverage wins the AI recommendation. Treating them as the same task is why so many strong-ranking brands are invisible in AI.

  • Where AI Actually Gets Its Recommendations (Hint: Not Your Website)

    Where AI Actually Gets Its Recommendations (Hint: Not Your Website)

    In an earlier study, I showed that good SEO doesn’t guarantee AI visibility. Brands that dominate Google can still get left out when buyers ask ChatGPT. That raised the obvious question: if ranking your own pages isn’t what earns the recommendation, what is?

    So I went and looked at the receipts.

    I analyzed 1,648 sources that AI actually cited when recommending products, across three engines and three popular categories. The pattern is blunt: AI barely recommends you based on your own website. It recommends you based on what everyone else says about you.

    The Headline: 79% of AI’s Sources Are Third Parties

    Here’s the whole study in one chart.

    Source mix: 79% of AI citations are third-party, 21% brand-owned
    Source mix: 79% of AI citations are third-party, 21% brand-owned

    Of every source AI pulled from to build a recommendation, 79% were third parties, media articles, review sites, Reddit, YouTube, and only 21% were the brand’s own website. And that 21% flatters brands, because a big chunk of it isn’t product pages at all. It’s companies’ own listicle blogs (more on that below).

    Put simply: for roughly every seven sources AI uses to decide what to recommend, only one is the brand’s own site.

    The Method

    I kept this reproducible on purpose:

    • Three popular categories where people genuinely ask AI for recommendations: project management software, mattresses, and VPNs. Each has a different third-party ecosystem, so the finding isn’t a quirk of one niche.
    • 21 buyer-style prompts (“best project management software,” “best mattress for back pain,” “best VPN for streaming,” and so on).
    • All four major engines: ChatGPT, Google AI Overviews, Perplexity, and Gemini. Each prompt was run several times per engine.
    • Instead of tracking brand mentions this time, I captured every source URL each answer cited, then categorized the domains: the brand’s own site, editorial media, review sites, community forums, YouTube, retailers, or other.

    Two honest limits. ChatGPT returned answers but almost no linked sources through its API, so it couldn’t contribute citations. Gemini wrapped its citations in redirect URLs, so I resolved those to their real domains (580 of 584 resolved) before counting. The 79% figure is across AI Overviews, Perplexity, and Gemini.

    What Kinds of Sources Win

    Break the citations down by type and the story sharpens:

    • Editorial media, 31%. “Best of” articles from TechRadar, CNET, Forbes, PCMag, and the like. The single biggest bucket.
    • Review sites and test labs, 21%. NapLab, Sleepopolis, Mattress Nerd, security.org, dedicated reviewers.
    • The brand’s own site, 21%. And often the blog, not the product page.
    • YouTube, 12%. Video reviews and explainers, the single most-cited domain in the whole study.
    • Reddit and forums, 6%. Real people comparing options.
    • Everything else (info sites, retailers) made up the rest.

    Editorial, review, and community sources together dwarf owned content. That’s the machinery behind an AI recommendation, and none of it is your homepage.

    The More Consumer the Category, the Less Your Site Matters

    The overall average hides a sharp gradient. I broke the third-party share out by category.

    Third-party citation share by category: project management 49%, mattresses 90%, VPNs 93%
    Third-party citation share by category: project management 49%, mattresses 90%, VPNs 93%
    • Mattresses: 90% third-party. The names you’d expect, Casper, Purple, Saatva, and Nectar, still came up, but almost entirely through review labs and “best of” articles. Their own sites were nearly invisible in the AI answers.
    • VPNs: 93% third-party. Even more lopsided. The household names, NordVPN, ExpressVPN, and Surfshark, surfaced through affiliate reviews and Reddit threads far more than through their own pages. This category runs on other people’s recommendations.
    • Project management software: 49% third-party. The one category where “brand” citations were close to half. But look closer and most of those aren’t product pages. They’re SaaS companies publishing their own “best project management tools” listicles (Paymo, Zapier, Wrike, Toggl). Even the biggest names, Notion, Asana, and monday, mostly showed up inside other people’s roundups, not on the strength of their own pages.

    So the true rate of “AI cites the actual product page” is even lower than 21% across the board. In consumer categories, it rounds to almost nothing.

    The Sources AI Actually Cites

    This is the part you can act on. AI’s recommendations don’t come from a random long tail. They concentrate in a short, nameable list of places.

    Top sources AI cites: YouTube, TechRadar, Reddit, NapLab, CNET, security.org, and more
    Top sources AI cites: YouTube, TechRadar, Reddit, NapLab, CNET, security.org, and more

    YouTube was the most-cited source in the entire study. After it came TechRadar, Reddit, NapLab, CNET, security.org, Mattress Nerd, PCMag, Forbes, and Sleep Foundation. If you’re in one of these categories and you’re not present on those sources, you are not in the conversation AI is having with your buyers.

    This is a different to-do list than SEO gives you. It isn’t “optimize your title tags.” It’s “get reviewed, get listed, get talked about on the sources AI trusts.”

    Why This Happens

    Google and AI answer different questions, and this study is the proof.

    Google ranks your page against a query. It rewards your on-page work, your links, your technical health. So you can win Google largely on your own property.

    An AI assistant isn’t ranking your page. It’s assembling a recommendation, and it builds that recommendation from what it can find said about you across the open web: the listicles you’re included in, the reviews you’ve earned, the comparisons people write, the threads where real users vouch for you. Your own site is one voice in that chorus, and a quiet one.

    That’s why the first study came out the way it did. You can rank beautifully and still lose in AI, because the thing AI reads to make its pick lives mostly on other people’s domains.

    What This Means for Your Brand

    If you want to show up when buyers ask AI, the work moves off your website:

    • Earn placements on the sources AI cites. Get into the “best of” listicles, onto the review sites, into the YouTube round-ups for your category. That is the lever.
    • Treat reviews and third-party mentions as an AI-visibility channel, not just reputation management. They’re literally what AI reads.
    • Don’t mistake ranking for being recommended. They’re now two separate jobs, and this is the one most brands aren’t doing on purpose.

    None of this means SEO is dead. Your site still has to be crawlable, credible, and clear. But your on-page work is table stakes now, not the finish line. The recommendation is won out in the wider web.

    That off-site, get-mentioned-and-cited work is exactly what my AI Search Visibility service is built to do, measure where you show up across every engine, then earn the placements that move you. If your rankings aren’t turning into AI recommendations, this is why, and it’s fixable.

    FAQ

    How does AI decide what to recommend?

    It assembles an answer from sources across the web, weighted heavily toward third parties: editorial “best of” articles, review sites, community discussion like Reddit, and video. In this study, 79% of cited sources were third parties rather than the recommended brand’s own website.

    Does my own website still matter for AI search?

    Yes, but less than most people assume. Your site needs to be crawlable and credible to stay eligible, but it made up only about a fifth of the sources AI cited, and much of that was blog content, not product pages. The recommendation is won mostly off your site.

    What is answer engine optimization (AEO)?

    Answer engine optimization is the practice of getting your brand named and cited in AI-generated answers rather than only ranking in traditional search results. It’s sometimes called generative engine optimization (GEO). Based on this data, a big part of it is earning third-party mentions, not just optimizing your own pages.

    How do I get cited by AI?

    Get present on the sources AI actually pulls from in your category: the review sites, the “best of” listicles, the relevant subreddits, and YouTube. Then measure whether it’s working across ChatGPT, AI Overviews, Perplexity, and Gemini. That measurement and outreach is what the AI Search Visibility service handles.

  • Does Good SEO Get You Recommended by AI? I Tested It on Four Email Tools

    Does Good SEO Get You Recommended by AI? I Tested It on Four Email Tools

    There’s a comfortable assumption behind a lot of marketing budgets right now. If we already rank well in Google, we’ll show up when people ask ChatGPT too. The SEO is done, so the AI visibility tags along for free.

    I didn’t want to assume it. I wanted to measure it.

    So I ran a small experiment. I took four email marketing platforms, ranked them by how well they perform in traditional Google search, then measured how often each one actually gets recommended across the big AI answer engines. Same brands, two scoreboards: SEO on one side, AI search visibility on the other.

    If good SEO reliably turned into AI visibility, the two scoreboards would line up. They didn’t. They nearly inverted. Here’s the full test, the data behind it, and what it means if you’re trying to get found when buyers ask AI.

    Why SEO and AI Visibility Are Not the Same Thing

    Search is splitting into two habits. People still Google. But more and more, they also ask ChatGPT, read Google’s AI Overviews, or run a question through Perplexity or Gemini and take the answer at face value.

    That creates a new question most brands haven’t measured:

    • Google ranking tells you where your page sits for a keyword.
    • AI visibility tells you whether an AI recommends your brand when someone asks.

    Those sound like the same thing. The work of optimizing for the second one even has its own names now, answer engine optimization (AEO) and generative engine optimization (GEO). But nobody had shown me hard data on whether the first buys you the second. So I tested it, and I picked a category where the answer would be clear.

    The Test: How I Measured SEO Against AI Visibility

    This is the part that makes the finding trustworthy, so I’ll be specific about how it ran.

    The Four Brands

    I used four email marketing platforms, chosen because they sit at clearly different levels of SEO strength:

    • Mailchimp, the category giant that everyone already knows.
    • MailerLite, the strongest of the three challengers in Google.
    • Moosend, a mid-tier player in search.
    • EmailOctopus, the smallest search footprint of the group.

    The Rule I Set First

    I ranked the four on SEO metrics before I ran a single AI query. The order was locked in based on Google performance alone, using organic traffic value and page-one keyword counts. That matters. It means I couldn’t pick the story after seeing the AI results.

    The Engines and Prompts

    • I measured all four across the four engines that carry the most weight today: ChatGPT, Google AI Overviews, Perplexity, and Gemini.
    • I used 12 buyer-intent prompts, the kind people actually type: “best email marketing software,” “best tool for a small business,” “cheapest option,” and so on.
    • I ran every prompt five times per engine and averaged the results, because AI answers shift from one run to the next. A single query tells you almost nothing.

    How I Scored It

    For each answer, I recorded which brands got named and which got cited with a link. Then I rolled it up into share of voice: each brand’s slice of all the mentions across every prompt and engine. Higher share of voice means AI put that brand forward more often. This is the same method behind my AI Search Visibility service, pointed at a public test instead of a client.

    Step 1: The Google Rankings Were Not Close

    Ranked by estimated organic traffic and page-one keywords, the four sat in a clear order:

    • Mailchimp was in a different league. Around $745K in estimated monthly search traffic value and roughly 12,600 keywords on page one. It laps the field.
    • MailerLite was a clear second, with strong page-one presence and about 1,150 keywords up top.
    • Moosend came third. It ranks for plenty of terms, but most of them sit on page three and deeper.
    • EmailOctopus was last and smallest, with a fraction of the group’s search footprint.

    MailerLite had roughly seven times the search presence of EmailOctopus. In Google terms, it wasn’t a fair fight. If SEO decided AI visibility, MailerLite should have crushed the two smaller brands in the AI answers too.

    Then I asked AI, and the fight changed completely.

    Step 2: Then I Asked AI, and the Order Flipped

    Here’s the AI share of voice next to the SEO ranking. The two columns are the whole story.

    Brand SEO rank (Google) AI rank (share of voice)
    Mailchimp 1 1 (28%)
    MailerLite 2 4 (21%)
    Moosend 3 2 (26%)
    EmailOctopus 4 3 (25%)

    Mailchimp held the top spot. Below it, everything reshuffled, and it reshuffled in exactly the wrong direction for anyone who thinks SEO decides this.

    Google rank versus AI share of voice for four email platforms; the strongest challenger in SEO finished last in AI.
    Google rank versus AI share of voice. The lines that cross are the story.

    MailerLite Ranked #2 on Google and Finished Last in AI

    The strongest challenger in search came dead last of the four in AI answers. Second in Google, fourth in AI. All that ranking strength did not carry over.

    EmailOctopus Punched Far Above Its SEO Weight

    The weakest platform in Google, with about a seventh of MailerLite’s search footprint, got recommended more often by AI. On paper it should have been an afterthought. In the answers, it wasn’t.

    What the AI Answers Actually Showed

    Report heatmap showing where a brand is named on each AI engine, prompt by prompt.
    A piece of the report you get: exactly where you are named, prompt by prompt, on every engine.

    Share of voice is the summary. The individual answers are where it gets concrete, and a few of them made the pattern impossible to ignore.

    • On “best email marketing software,” the biggest query in the set, ChatGPT and Perplexity both left MailerLite out completely. They named Mailchimp, Moosend, and EmailOctopus, and skipped the one challenger with the strongest Google rankings. Only two of the four engines mentioned MailerLite at all for that query.
    • On “best email marketing service for ecommerce,” three of the four engines did the same thing. ChatGPT, AI Overviews, and Perplexity each named EmailOctopus, the weakest platform in search, and none of them named MailerLite. Gemini was the only engine that included it.
    • The citations told the same story. When an engine backed a brand with a source link, Moosend got cited seven times across the test, more than Mailchimp’s four. MailerLite, second in Google, was cited twice. EmailOctopus was named plenty but rarely linked, which is its own gap to close.

    The platform with the second-best SEO in the group kept getting left out of the exact answers it should have owned, while weaker-ranked competitors got named and linked in its place.

    There’s one more detail worth sitting with. MailerLite showed up in all 12 prompts somewhere. The models clearly knew it existed. They just almost never put it forward as the answer. It was in the room the whole time and rarely got picked. That gap between “known” and “recommended” is the whole problem in one brand.

    So Does Good SEO Mean Good AI Visibility?

    Share of voice bars for the four email platforms across the AI engines.
    Straight from the report: each brand’s share of voice across all four AI engines.

    On its own, no.

    The only place the two rankings agreed was the very top, and Mailchimp is a special case worth calling out.

    The Only Agreement Was at the Top, and That’s Brand, Not SEO

    Mailchimp is the name half the market already knows. Its brand sits in the training data, in the reviews, in every “best email tools” listicle. That kind of dominance shows up everywhere, in Google and in AI, and it says more about scale and reputation than about any single ranking. Take the giant out of the picture, and the link between ranking position and AI visibility falls apart.

    Google and AI Answer Different Questions

    • Google ranks your page against a search. It rewards relevance, links, technical health, and your position for a keyword.
    • AI isn’t ranking your page. It’s assembling a recommendation, and it builds that from what it can find said about you across the web: third-party lists, reviews, comparisons, and the words other people use to describe your product.

    Ranking well means your page is strong. It doesn’t mean the wider web talks about you like an answer. AI leans on the second thing, which is why content that earns mentions and citations matters as much as on-page ranking now.

    Being Present Is Not Being Preferred

    MailerLite is the whole lesson. It ranks well. It gets crawled. AI knows it’s there. And it still isn’t the name handed to the buyer. Ranking earned it visibility. It didn’t earn it the recommendation.

    What This Means for Your Brand

    Ranking in Google is necessary. This test is a blunt reminder that it isn’t sufficient. A few takeaways if you’re serious about AI search:

    • Don’t treat your rankings as proof of AI visibility. For most brands, the two don’t move together, and the gap is invisible until you measure it.
    • Measure both, separately. Your Google positions and your AI share of voice are different scoreboards. Track them as such.
    • If you’re not the category giant, do the AI work on purpose. Brand fame carries the leader into both channels. Everyone else has to earn AI visibility deliberately.

    How to Check Your Own AI Visibility

    AI visibility report scorecard tiles.
    The report’s scorecard: your AI visibility scored at a glance, the same view every client gets.

    You can’t fix what you haven’t measured. The starting point is a baseline: where your brand actually shows up across ChatGPT, AI Overviews, Perplexity, and Gemini, and where competitors are getting recommended instead of you. That’s exactly what my AI Search Visibility service does, using the same method you just read. If you’d rather start with the fundamentals, a technical and content SEO audit is still the foundation everything else sits on.

    The Honest Limits of This Test

    I’d rather you trust the direction than oversell the certainty, so here are the caveats:

    • This is one category over one month. A different niche could behave differently.
    • AI answers are non-deterministic. They shift from run to run, which is why every prompt ran five times and got averaged.
    • Share of voice is directional, not a fixed ranking. It shows a trend, not a guarantee.

    It’s a direction, not a law of physics. But the direction here is hard to miss.

    FAQ

    Does SEO still matter for AI search?

    Yes. Strong SEO gets your pages crawled, indexed, and treated as credible, which keeps you eligible to appear in AI answers. This test shows it isn’t enough on its own, but it’s still the foundation. Think of good SEO as necessary but not sufficient.

    What is answer engine optimization (AEO)?

    Answer engine optimization is the practice of getting your brand named and cited in AI-generated answers, from ChatGPT to Google’s AI Overviews, rather than only ranking in the traditional list of blue links. It’s sometimes called generative engine optimization (GEO).

    Why does a lower-ranking brand show up more in AI?

    Usually because the wider web talks about it more in the contexts AI pulls from: third-party best-of lists, reviews, and comparisons. AI builds recommendations from what’s said about a brand across the web, not only from who ranks highest for a keyword.

    How do I find out where my brand stands in AI search?

    Run a baseline across the major AI engines for the questions your buyers actually ask, and compare your share of voice to your competitors. That’s what the AI Search Visibility service measures, and it’s the fastest way to see the gap between your Google rankings and your AI visibility.

  • How to Add WebMCP to WordPress (and Everything That Broke When I Did)

    How to Add WebMCP to WordPress (and Everything That Broke When I Did)

    WebMCP lets an AI assistant like Claude connect directly to your WordPress site and answer questions about your services, your blog, and where to guest post, instead of scraping your pages like a search bot. It hands the assistant a set of tools, so the agent talks to your site rather than guessing at your HTML.

    I added WebMCP to christopherjanb.com myself, on my real WordPress site, not a sandbox or a fresh test install. It took most of a day, it broke nine separate times, and I learned more from the breaking than from the parts that worked.

    This is the honest build log, with the actual fixes, so you can decide whether it is worth your time and skip the potholes I stepped in. By the end you will know what to upload, where it goes, and which nine things will try to stop you.

    What WebMCP Actually Is

    Here is the part most explainers get wrong. There are two different things called WebMCP, and they are not the same.

    The first is an open source library that works today. You drop a small script on your page, register some tools, and a visitor running an MCP client (like the Claude desktop app) can connect to your site through a local bridge. This is the version I used. The repo is github.com/jasonjmcghee/WebMCP, the project site is webmcp.dev, and I was on the 0.1.x release line.

    The second is an emerging web standard being built into browsers. WebMCP was published as a W3C Draft Community Group Report on February 10, 2026, and shipped as an early preview in Chrome 146 Canary behind a flag. It is co-developed by Google’s Chrome team and Microsoft’s Edge team, with native support across Chrome and Edge expected in the second half of 2026, while Firefox and Safari are engaged in the spec process but have not committed to timelines. That version needs no bridge and no setup: any AI agent visiting your page just sees the tools. It is the future, but it is not shippable yet.

    How WebMCP connects an AI assistant to your site: Claude Desktop, a local bridge, and your site's tools
    Figure 1. The library version I used. The agent calls your tools through a local bridge instead of scraping your HTML.

    Why does this matter? Because if you read about WebMCP and expect agents to start using your site automatically, the library version will disappoint you. It is opt-in and a little fiddly for the visitor. The standard is what makes it effortless, and that is still months out. Knowing which one you are dealing with sets your expectations correctly before you spend an afternoon on it.

    Why I Bothered

    I work in SEO and content for a living, so I spend a lot of time watching how people find things, and that behavior is shifting fast. More people now ask an AI assistant to do the searching and summarizing for them, and when an assistant reads your site, it reads it like a scraper guessing at your structure.

    WebMCP turns that guesswork into a clean conversation. Instead of an agent parsing my HTML and hoping it finds my services, it can call a tool that hands back exactly what I want it to know.

    Am I getting a flood of agent traffic from this today? No, and I want to be straight about that. Almost nobody is going to install a bridge to talk to my site right now. I did it anyway for three reasons that have nothing to do with today’s traffic: it is a working demo I can show the exact SEO and SaaS clients I want, it is an early signal that compounds with the GEO work I already do, and it is hands-on practice for the day a client asks me to build it. Being early and having actually done it is worth more to me than passive traffic I do not have yet.

    What I Built

    My site is a portfolio and services site, not an app full of buttons, so my tools are mostly read access plus one action. I exposed nine of them:

    Tool What it returns
    get_site_info Who I am, positioning, experience, and how to engage
    list_services The five services with one-line descriptions and URLs
    get_service Full detail on any single service page
    get_proof Client roster, publications, and testimonials
    list_posts The blog inventory, pulled from the sitemap
    search_posts Blog posts matching a keyword
    get_post The full text of any single post
    get_guest_post_opportunities My guest posting directory, optionally by niche
    book_call The booking link, framed to qualify the visitor

    The one insight I would tattoo on the wall: every tool description is conversion copy written for a language model, not a human. When I describe the booking tool, I am not writing UI text. I am telling the agent who the call is for and how it works, so that when someone asks an AI assistant “is this person a fit for my B2B SaaS site,” the assistant answers well and points them to my calendar. The tools are sales collateral aimed at a reader that happens to be an AI.

    I tested this exact scenario afterward. I told the assistant my B2B blog traffic was sliding and asked if I was a fit. On its own it pulled my site info, my services, and my proof, recommended my content reoptimization service, and surfaced the booking link. That is the whole point working end to end.

    The Setup, Step by Step

    Here is the actual sequence on WordPress. It is replicable if you want to follow it, and the setup steps map cleanly to HowTo schema if you mark it up.

    1. Get the script file. This tripped me up immediately, so save yourself the hunt: the file is not at the top of the GitHub repo. It lives inside the release download at src/webmcp.js, and the readme points you to the releases page rather than the source tree. It is browser-ready as is, no build step for a normal modern site.
    2. Upload that file to your site root so it loads at yoursite.com/webmcp.js. Root means the same folder as wp-config.php, not inside wp-content. Visit the URL directly afterward. If you see JavaScript, you are good. If you see a 404, it is in the wrong folder.
    3. Create a page with the slug mcp and write visible copy explaining what the page is and how to connect. This is the page agents and curious humans land on.
    4. Add your tool-registration script through WPCode as an HTML Snippet, set to load in the site-wide footer. The reason it has to be an HTML Snippet and not the post editor is coming up in a second.
    5. Set up your MCP client. For testing that means the Claude desktop app, a small config entry, and a connection token.

    That is the clean version. Now here is what actually happened.

    Everything That Broke

    This is the part you cannot get from a generic tutorial, because a generic tutorial never ran into any of it.

    Nine things that broke during the WebMCP WordPress setup
    Figure 2. The nine failures, each with its fix and lesson below.

    1. WordPress Mangled My Script

    I pasted the registration script into the page and it silently broke. WordPress has a feature called wpautop that wraps things in paragraph tags to tidy your writing, and it happily wrapped my script tags mid-function, turning working JavaScript into garbage. The fix was to stop using the post editor entirely and put the script into a WPCode HTML Snippet, which bypasses wpautop. Lesson: on WordPress, code does not belong in the content editor. It belongs in a snippet tool built to leave it alone.

    2. The Page-Targeting Setting Quietly Failed

    I wanted the widget to load only on my mcp page, so I used WPCode’s option to target that one URL. It did nothing; the matching logic checked the full URL in a way that never fired. Instead of fighting it, I set the snippet to load site-wide and put a one-line check at the top of my own script that runs only if the path ends in mcp. Lesson: when a plugin’s built-in targeting misbehaves, gate it yourself in code. You control that; the plugin’s UI you do not.

    3. The Command Could Not Find npx

    Once I moved to connecting the desktop client, the bridge would not start. The config told it to run npx, but the desktop app launches things with a stripped-down PATH, so a short command was not found even though it works fine in my terminal. The fix on Windows was to run it through the command-prompt wrapper instead of calling npx directly. Lesson: anything launched by a desktop app should assume a minimal environment and use full, explicit commands.

    4. The Config I Edited Was Not the Config It Read

    I edited my desktop config, saved it, restarted, and nothing changed. The app had moved to reading its config from a virtualized location after an update, while the edit button still opened the old file. I was editing a file the app no longer used. Lesson: after a desktop app update, do not assume the file you have always edited is the one being read. Confirm the path, or use the in-app editor that opens the live file.

    5. Invalid Token, on Repeat

    My daemon log started flooding with “invalid token.” The connection depends on both sides agreeing on a shared secret, and mine had drifted out of sync because the token regenerated while one side still held the old one. The fix was to read the real token straight out of the server’s env file and paste that exact value into the client config. Lesson: when two processes authenticate with a shared token, do not guess at it, read the source of truth and copy it verbatim.

    6. A Dead Process I Thought Was Alive

    Then came thousands of “connection refused” errors. The bridge kept trying to reach a server on a port where nothing was listening, because of a stale process-ID file: an old server had died, but its ID file was still on disk, so the bridge assumed a server was running. The fix was to kill every stray process, delete the stale state, and bring exactly one server up cleanly. Lesson: when something insists it is “already running” but nothing answers, hunt for stale lock or PID files first.

    7. My Tools Were Invisible Because of One Missing Word

    Everything connected, the client saw my server, but it reported zero tools. The tool definitions each carry a small schema describing their inputs, and mine were technically malformed. A no-input tool needs a schema that says “this is an object with no properties,” and I had given it a blank instead. My lenient local server registered them anyway; the desktop client validated strictly and silently dropped all nine. The fix was a proper, complete schema on every tool. Lesson: validate against the pickiest consumer, not the most forgiving one.

    8. The Connection Kept Timing Out Mid-Test

    The widget disconnects after about five minutes of sitting idle, for security. I did not know that, so every time I tabbed away to fiddle with the config, the channel quietly dropped, my tools deregistered, and I kept fixing problems that were not problems. The fix was to raise that timeout while testing and keep the tab in front of me. Lesson: when a system has an idle timeout, your slow, careful, switch-between-windows debugging style is the exact thing that breaks it.

    9. Registered Is Not the Same as Available

    Finally, even with everything connected, the assistant said it had no such tool. The connector showed up, but the tools were not loaded into the conversation, because the client treats “a connector exists” and “its tools are active in this chat” as two different states. The fix was getting the order right: bring the server up, connect the browser and register the tools first, then start the client, and test in a fresh chat. Lesson: connection and availability are separate, and the wrong order leaves you staring at a connector that does nothing.

    How I Actually Figured This Out

    The single most useful move in the whole process was not a fix. It was opening the log files.

    For a long stretch I was guessing, changing one thing, restarting, and hoping. That is slow and it teaches you nothing. The moment I started reading the client’s connection log and the server’s console output side by side, the real cause showed itself almost immediately. The invalid-token flood, the connection-refused errors, the empty tool list, all of it was written plainly in the logs while I was busy theorizing.

    If you take one thing from this, take that: when a multi-part system misbehaves, stop guessing and read what each part is actually saying. The answer is usually already on screen.

    Is It Worth Doing Right Now?

    Here is my honest call, because you deserve one before you spend an afternoon on this.

    As a traffic channel today, no. The library version is opt-in and technical enough that real visitors will not use it. If you are hoping this brings agent traffic this quarter, it will not.

    As a demo, a positioning signal, and practice, yes. I can now point a prospect at a live thing instead of a slide, it reinforces that I am tracking where search is going, and when a client asks me to build this, I have already bled on it once. For me, in my line of work, that is worth the day.

    If being early on AI search does not yet matter to your buyers, wait for the native browser standard. It is coming, it needs no bridge, and it will make all of this effortless.

    The Cheap Wins That Compound

    Whether or not you build the full thing, two smaller moves cost almost nothing and pay off into the native standard later.

    Add an llms.txt file to your site. It is a plain-text map of your key pages for AI systems to read, the way robots.txt is for crawlers. This folds directly into GEO work and is the highest-leverage thing on this list.

    Get your contact or booking form ready to be agent-callable. When the native WebMCP standard lands, that is the action that actually earns money, so it is where I would point your effort first.

    Where This Is Heading

    The thread running through all of this is simple. The way people discover and use content is moving from “a human reads a page” to “an agent uses a site on a human’s behalf.” WebMCP is an early, rough, honest attempt at building for that world. It broke nine times on me and I would still do it again, because I would rather hit these walls now, on my own site, than the first time a client is watching.

    If you want content and an SEO approach built for where search is actually going rather than where it was five years ago, that is the work I do. You can book a call with me and we can talk about your site.

    Frequently Asked Questions

    Is WebMCP the same as the standard coming to Chrome?

    Not quite. There are two: an open-source library you can use today (what this post covers) and a native browser standard, published as a W3C draft in February 2026, with Chrome and Edge support expected in the second half of 2026. The library needs a local bridge; the standard will not.

    Do I need to know how to code to add WebMCP to WordPress?

    A little. You upload one script, create a page, and add a snippet through WPCode. You do not write the library, but you will edit a tool-registration script and a small client config, and you will be calmer about it if a command line does not scare you.

    Will adding WebMCP bring me AI traffic right now?

    No. The library version is opt-in and a visitor needs a local bridge to use it, so almost nobody will. Treat it as a demo, a positioning signal, and practice, not a traffic channel, until the native standard ships.

    What is llms.txt and how does it fit?

    It is a plain-text file that maps your key pages for AI systems, like robots.txt for crawlers. It is far easier than a full WebMCP build, it supports your GEO visibility now, and it carries forward when the native standard arrives.

  • Screaming Frog MCP + Claude: How I Audited and Fixed My Site in a Day (and the One Thing the AI Got Wrong)

    Screaming Frog MCP + Claude: How I Audited and Fixed My Site in a Day (and the One Thing the AI Got Wrong)

    Screaming Frog’s MCP server lets Claude operate the crawler directly, read every export, and propose fixes, which turns a one-off crawl into an audit-and-fix loop. I pointed that loop at my own site, christopherjanb.com, and shipped real fixes the same day.

    The crawl covered 2,676 URLs in about ten minutes. From there I corrected 81 over-long page titles with a single change, wrote and published 65 missing meta descriptions, repaired 18 broken internal links, and cleared hundreds of redirect hops.

    Search Console added the context that mattered: the site drew roughly 409,000 impressions against only 638 clicks, so the real prize was fixing pages already being seen rather than publishing new ones.

    One finding mattered for a different reason. The audit reported zero structured data, and that was wrong. Catching that false alarm is the real lesson here: the AI is fast hands, but a human still owns verification.

    What Screaming Frog MCP Actually Is

    Screaming Frog is the crawler most people doing technical SEO already use. The new part is the MCP server, a bridge that lets an AI assistant like Claude start the crawl, pull the exports, and reason over the results without you clicking through a single tab.

    That sounds small. It isn’t. A normal crawl hands you a pile of CSVs to interpret. The MCP turns the crawl into a conversation: Claude runs it, reads the response codes, the titles, the redirects, the link graph, and comes back with a prioritized problem list.

    The mental model that matters: the AI finds and drafts, you approve and verify. Hold onto that, because it’s the whole point of the “one thing the AI got wrong” section below.

    The audit-to-fix loop: Crawl, Analyze, Fix, Verify
    Figure 1. The loop the MCP enables. The assistant finds and drafts; you approve and verify.

    The Crawl: 2,676 URLs in About Ten Minutes

    I kicked off the crawl from my own domain and let it run. About ten minutes later it had seen 2,676 URLs. The headline number isn’t the total, though. It’s the breakdown of what those URLs actually were.

    Of 408 internal HTML pages, only 193 returned a clean 200. The rest were noise a visitor never thinks about: 197 redirects and 18 hard 404s. Figure 2 shows the split.

    Internal HTML URLs by status: 193 live, 197 redirects, 18 broken
    Figure 2. Nearly half my internal HTML footprint was redirects or broken pages, classic migration debt.

    A crawl on its own tells you what’s broken. It doesn’t tell you what the breakage costs. So I layered in my Search Console export.

    Adding Search Console for the Reality Check

    The GSC data reframed everything. Over three months the site pulled roughly 409,000 impressions but only about 638 clicks, an average position near 37 and a sitewide click-through rate of 0.16%.

    Translation: plenty of content was being seen and almost none of it was being clicked. The crawl found the plumbing problems. Search Console found the money problems, and the fix was optimizing the pages already getting seen, not writing more.

    What the Audit Surfaced

    With both datasets in hand, Claude assembled the problem list in Figure 3. These are the issues, with real counts from my own site, not a generic checklist.

    Issues found: 1,913 redirect hops, 81 long titles, 72 missing metas, 18 broken links
    Figure 3. The fixable issues, by volume.

    The standouts:

    • 1,913 internal links were hopping through 301 redirects. One single link, an author byline, appeared 391 times pointing at a redirected archive. A navigation link missing its trailing slash accounted for another 204. Figure 4 shows where the hops concentrated.
    • 18 internal links were broken outright. A newsletter signup page that no longer existed still had 17 live links aimed at it.
    • 72 pages had no meta description, and 81 titles ran past 60 characters, both traced to template defaults rather than anything written by hand.
    Where the 1,913 redirect hops came from: 391 author byline, 204 nav link, 1,318 in-content
    Figure 4. Two template links caused 595 of the 1,913 hops, which is why a couple of fixes cleared most of them.

    The biggest opportunity was a click-through problem, not a ranking problem. One page sat at position 9.6 on 45,905 impressions and earned 14 clicks. Figure 5 shows that gap.

    One page: 45,905 impressions versus 14 clicks
    Figure 5. A page-1 ranking earning a 0.03% click-through rate. The single highest-ROI fix the audit found.

    The crawl even flagged a possible security issue: a broken image loading from a non-WordPress path that looked like injected spam. Worth a five-minute check on any site you inherit.

    The One Thing the AI Got Wrong

    Here is the part no tutorial includes. The crawl reported zero structured data across the entire site, and Claude surfaced it as a critical gap. On a site competing for AI Overview citations, that would be a real problem.

    Except it wasn’t true. My Yoast schema framework had been switched on the whole time.

    The tell was hiding in the report itself. It showed “Contains structured data: 0” and “Missing: 0” at the same time. If schema were genuinely absent, the “missing” count would have been high. Both reading zero means one thing: the crawler’s structured-data extraction was simply turned off, not that the schema was absent. A quick pass through Google’s Rich Results Test confirmed Article and Person schema were present all along.

    So here’s the line worth tattooing on the workflow: a crawl gives you leads, not verdicts. Confirm anything alarming in the live source before you act on it. The AI moved fast and was confident. It was also wrong, and only a human check caught it. (This is the part most “AI will do your SEO” takes quietly skip.)

    Fixing It in a Day

    Finding problems is the easy half. The reason this fit inside a day is that most of the fixes were bulk operations, and bulk is exactly what AI plus the right tooling is good at.

    Titles: One Change Fixed 81

    The 81 over-long titles all came from one place: a Yoast title template appending my brand name to every page. Editing that single template to drop the suffix cleared all 81 at once. I then loaded a few pages and confirmed the suffix was actually gone, rather than trusting the settings screen.

    Meta Descriptions: 72 Written, and a Gotcha That Cost an Hour

    Claude wrote all 72 missing descriptions, keyword-forward and within length. Publishing them is where it got interesting.

    A bulk-import plugin stalled, so I switched to a one-time code snippet. It “ran successfully,” yet the descriptions still didn’t appear on the live pages. The cause is a trap worth knowing: Yoast serves descriptions from its own “indexables” cache, and a raw database write doesn’t refresh that cache. Adding an indexable refresh plus a cache purge fixed it. A REST API check then confirmed 65 of 65 live (the other seven were thin pages I deliberately left alone).

    Broken Links and Redirect Hops

    For the broken pages I imported a set of redirects through a redirect plugin, formatted to match its CSV import.

    The 391-hop author byline had an elegant fix. Rather than surgery on theme templates, I simply re-enabled author archives in Yoast so the links resolved to a real page instead of bouncing through a redirect. The in-content link swaps went through another code snippet, after a search-replace plugin insisted there were “0 cells” to change. That mystery gets its own row in the table below, because the answer is genuinely useful.

    Shipped the same day: 81 titles, 65 metas, 18 broken links, 391 byline hops
    Figure 6. Everything above, found in a ten-minute crawl and fixed inside one working day.

    The Gotchas No Tutorial Mentions

    Every one of these cost me real time, and none of them shows up in a “how to crawl your site” post. The pattern across all five: the tool is confident, and confidence is not correctness.

    The gotcha What actually happened What to do
    Trusting the dashboard The WordPress admin shows values the live, cached page does not Verify in the source: REST API plus cache-busted page fetches
    Yoast indexables A raw meta write does not refresh Yoast’s indexable cache, so edits do not display Force an indexable refresh and purge the cache
    Dynamic block links Page-builder blocks generate links live, so a search-replace finds “0 cells” Fix at the block, template, or post status, not with find-and-replace
    External redirects A redirect pointing to a subdomain silently failed the CSV import Re-add external-target redirects by hand
    Block theme, classic menu The nav link “fixed” in the Site Editor was not the one being rendered Check which menu the header actually outputs

    Where the Day Actually Went

    The crawl was the fast part, roughly ten minutes. Claude’s analysis took a few more. The fixes themselves, mostly the meta-description and redirect verification loops, ate a few hours. Final checks were minutes.

    The split that made it work: I handed the AI the bulk generation, the data crunching, and the first drafts of every fix. I kept the judgment calls and the verification. That division is the actual skill, not the crawling.

    When This Workflow Works (and When It Doesn’t)

    This loop shines on established sites carrying migration debt, on bulk on-page cleanup, and on fast SEO audits where you need a prioritized list in minutes instead of an afternoon. It is just as strong for a content audit, where the job is deciding what to keep, cut, and merge.

    It will not write your strategy, choose your topics, or replace your judgment. The AI is the fast hands. You are the brain that catches the “zero schema” false alarm. Treat it that way and a day’s work genuinely fits in a day. Treat its output as gospel and you will ship its mistakes faster than you would have made them yourself.

    Frequently Asked Questions

    Do I need to know how to code to use Screaming Frog MCP with Claude?

    No. The crawl and analysis need no code at all. A few of my fixes used short snippets, but those were optional shortcuts, and Claude wrote them. You direct and verify; the assistant handles the mechanics.

    Can Claude fix the issues automatically, or only find them?

    Both, with a human in the loop. Claude found the problems, drafted the fixes (redirect files, meta descriptions, code snippets), and I applied and verified them. It is a co-pilot, not autopilot.

    How is this different from running Screaming Frog normally?

    A normal crawl ends with exports you interpret yourself. The MCP lets the AI run the crawl, read those exports, and return a prioritized, plain-language problem list, which collapses hours of manual analysis into minutes.

    What did the AI get wrong, and how do I avoid the same trap?

    It reported zero structured data when the site had schema all along, because the crawl’s extraction setting was off. Avoid it by confirming any critical finding in the live source, Google’s Rich Results Test, the REST API, a cache-busted fetch, before you act.

    The Takeaway

    The audit-to-fix loop, an AI driving the crawler and drafting the fixes while you verify, is where lean SEO operations are heading. The natural next step is pairing it with a topical map of what to build next. The edge was never the tool. It’s the judgment to know which findings to trust, and which to check twice.