Tag: csa-pillar-2

  • Are Some of Your Shopify Ad Clicks Fake? Here’s How to Check

    Somewhere out there is a person — or more likely a script pretending to be a person — whose entire contribution to the internet is clicking on other people’s ads. We don’t know their name. We do know they’re spending your money.

    If your Shopify ad spend keeps climbing while your sales don’t, the direct answer is: yes, some of those clicks may not be from real potential customers at all. Not all of it, not always a lot of it, but often enough to matter. Here’s how to actually check, instead of just suspecting it.

    What does “invalid” or “fake” ad traffic actually mean?

    It’s any click on your ad that didn’t come from a genuine shopper who might buy something. That covers a few different sources, and they’re not all the sinister kind:

    • Automated bots that crawl ad networks and click links, sometimes to drain a competitor’s budget, sometimes for no clearer reason than “it’s what the bot does.”
    • Click farms — low-paid human click-throughs, often from overseas, with no intent to buy anything.
    • Accidental clicks, especially on mobile, where someone’s thumb hits your ad while scrolling past it.
    • Repeat clicks from the same person checking a price, comparing a listing, or clicking back into your site multiple times in one session.

    The first two are what most people mean by “ad fraud.” The last two are just noise. Both inflate your click count and your spend without adding a single real buyer, which is why a campaign can look busy and still underperform.

    How do you tell if it’s happening to your store?

    You’re looking for a mismatch between how many people clicked your ad and how many of them did anything resembling shopping once they landed. A few checks, roughly in order of how quickly you can run them:

    • Compare click count to session count. Your ad platform (Meta, Google) reports clicks. Your Shopify analytics or GA4 reports sessions from that same campaign. If the ad platform says 500 clicks and your site only logged 300 sessions for that traffic source, roughly 40% of those “clicks” never actually produced a real visit worth counting — that gap is your first clue.
    • Look at time-on-site and pages-per-session for that specific campaign, not your whole store. A real shopper usually looks at more than one page or spends more than a few seconds deciding your site isn’t for them. A campaign where the large majority of sessions last under 5 seconds and view exactly one page is a pattern worth a closer look, not proof on its own — some real shoppers do bounce that fast too.
    • Check where the traffic is geographically concentrated. If you sell mainly to US customers and a meaningful share of a campaign’s clicks are suddenly coming from a country you don’t advertise in or ship to, that’s worth investigating.
    • Watch for click timing that doesn’t look human. A cluster of clicks landing in the same few seconds, repeatedly, at odd hours for your audience’s time zone, is a pattern bots produce and people rarely do.

    None of these alone proves fraud. Together, especially the click-to-session gap, they tell you whether it’s worth doing anything about.

    What can you actually do about it?

    A few practical moves, from easiest to most involved. Most ad platforms already filter out a lot of obvious bot activity before you’re ever charged for it, so don’t assume every platform is asleep at the wheel here — but their filtering is tuned for their own definition of “invalid,” not necessarily for your definition of “a real shopper for my store.”

    • Google Ads and Meta both let you report suspicious click activity for review — it won’t get you money back instantly, but repeated, documented reports matter over time and feed into their own filtering.
    • If you’re running Google Ads, IP exclusion lists let you block specific IP ranges that are clearly not real customers, once you’ve confirmed a pattern over a few weeks rather than reacting to a single bad day.
    • Narrowing your targeting — geography, device type, placement — usually does more to reduce junk clicks than any after-the-fact cleanup, because it keeps the traffic from arriving in the first place.
    • If one specific placement (say, a particular app or partner site in a display network) consistently produces sessions with the fast-bounce, one-page pattern above, excluding that placement is often the single highest-leverage fix available to you.

    Why this matters to you

    Here’s the concrete check you can run this week: pick your best-spending campaign from the last 30 days, pull its click count from the ad platform, then pull sessions from that same source in your Shopify or GA4 analytics for the same date range. If the gap between those two numbers is large — more than the typical 10-20% you’d expect from normal tracking noise — you’ve likely found real budget leaking out before a single potential customer ever saw your product. That’s not a reason to panic or pull your ads. It’s a reason to narrow your targeting, exclude the worst-performing placements, and stop paying to advertise to nobody.

  • Why Your Email Open Rate Can’t Be Trusted Anymore (And What to Track Instead)

    Somewhere in your email platform right now, there’s a chart showing you a 45% open rate and a little green arrow pointing up. We’d love to tell you that means 45% of your customers opened your email with genuine excitement. We can’t. The number is lying to you, and it’s not even trying very hard to hide it.

    Why can’t you trust your email open rate anymore?

    Because a huge share of your “opens” aren’t a person opening your email at all — they’re Apple’s mail servers opening it for them, automatically, whether the person ever looks at it or not. If a meaningful slice of your list reads mail on an iPhone, iPad, or Mac (and for most stores, that’s most of the list), your open rate is now measuring something closer to “how many people have an Apple device” than “how many people are interested in what you sent.”

    What is Apple Mail Privacy Protection, in plain terms?

    Apple’s Mail app has a privacy setting called Mail Privacy Protection, on by default for most users since it rolled out. Here’s what it actually does to your numbers: before a person ever sees your email, Apple’s own servers pre-load it in the background — including the tiny invisible tracking pixel that email platforms use to count an “open.” That pre-load registers as an open in your dashboard. It happens automatically, in the background, often within seconds of the email landing, regardless of whether the person ever scrolls past the subject line.

    The result: an email can show a 60%, 70%, even 90%+ open rate from Apple Mail users specifically, almost none of which reflects an actual human looking at the email. It’s not a bug, and it’s not your email platform’s fault — it’s Apple protecting its users’ privacy, which is a good thing for them and a confusing thing for your reporting.

    How do you know if this is affecting your numbers?

    • Check your email platform’s device or client breakdown for a recent campaign. If Apple Mail, iOS Mail, or Apple devices make up a large share of your “opens,” that’s your signal — this isn’t a hunch, it’s visible in the same report that gave you the inflated number.
    • Look at the open rate on Apple Mail traffic specifically versus everything else (Gmail, Outlook, Yahoo). If Apple’s open rate is dramatically higher and suspiciously close to “everyone who received it,” that’s the pre-load effect, not genuine interest.
    • Watch for opens that land within a second or two of send time, in a tight cluster, well before a person would realistically have read a subject line and decided to click into the email. That’s a server doing the opening, not a customer.

    What should you track instead of open rate?

    Click rate and click-to-open rate. A click requires an actual person to actually interact with your email — there’s no equivalent “privacy protection” feature quietly faking clicks on your behalf. If you need one number to watch week over week, make it clicks, not opens. If you want to compare campaigns against each other fairly, click-to-open rate (clicks divided by opens) gives you a sense of how compelling the content was to the people who did engage, even with a noisy opens denominator.

    Past clicks, the number that actually pays your bills is conversion — did the email lead to a visit that led to a sale. That’s a harder number to get right (attribution windows and last-click rules complicate it, which is its own topic), but it’s the one that was never going to lie to you the way open rate now does.

    Is open rate completely useless now?

    Not completely — it’s still worth a glance for deliverability. A sudden, sharp drop in open rate across the board (not just Apple Mail) can still be an early warning that you’ve landed in spam folders or a sending domain problem has started. What it’s no longer good for is telling you whether a subject line worked, whether a segment is engaged, or whether a campaign was a success. Those questions now belong to clicks and conversions.

    Why this matters to you

    If you’ve been making real decisions off open rate — which subject lines to reuse, which segments to keep emailing, whether a campaign “worked” — go check the device breakdown on your last few sends before you decide anything else. If Apple Mail is a big chunk of your opens and the open rate there looks implausibly high, you’ve been grading your email program on a number that was never really measuring your customers. Switch your main scoreboard to click rate and actual sales, and you’ll get a truer read on what’s working — even if the chart doesn’t climb up and to the right quite as dramatically as it used to.

  • What’s a Normal Shopify Cart Abandonment Rate? (And How to Tell If Yours Is a Real Problem)

    Somewhere around 7 out of every 10 shoppers who put something in their cart will leave without buying it. If that number just made your stomach drop, take a breath — it’s not a verdict on your store. It might just be Tuesday.

    The short answer: a cart abandonment rate somewhere in the 60–80% range is normal across e-commerce generally, including Shopify stores. If you’re sitting inside that band, the number itself isn’t telling you anything is wrong. What actually matters is whether your rate is unusually high for your specific situation, and whether the carts you’re losing were ever going to convert in the first place.

    What’s a normal Shopify cart abandonment rate?

    Industry benchmarks compiled across many retailers (not just Shopify) have put average cart abandonment in roughly the 60–80% range for years, depending on the study and the year. There isn’t one magic number that applies to every store — mobile-heavy stores tend to run higher than desktop-heavy ones, and stores with expensive or considered purchases (furniture, equipment, anything people “think about”) tend to run higher than impulse-buy categories.

    So the first useful move isn’t comparing yourself to a generic industry number. It’s comparing this month to your own last six months, and comparing your mobile abandonment rate to your desktop one. A rate that’s stable over time, even if it’s on the high end of that range, is a very different situation than a rate that just jumped 15 points in the last two weeks.

    Why the raw number doesn’t tell you anything by itself

    Cart abandonment rate is usually calculated as carts created minus completed purchases, divided by carts created. That math treats every cart the same — but not every cart represents a real, almost-bought item.

    • Price-checkers and comparison shoppers. Someone adding your product to cart to see the total with shipping, then closing the tab, was never a lost sale in the sense that matters. They were doing research.
    • Bots and automated traffic inflating the “carts created” side. If a chunk of your sessions aren’t human (a separate, very real problem for a lot of Shopify stores), some of those non-human sessions can still trigger cart-add events, which pushes your abandonment rate up without a single real customer changing their mind.
    • One person, multiple carts. Someone shopping on their phone at lunch and finishing the purchase on their laptop that night can register as an “abandoned” cart on mobile and a completed one on desktop — two events, one happy customer.

    None of that means the number is useless. It means the number needs context before it becomes a decision.

    How do you tell if your abandonment rate is actually a problem?

    Instead of asking “is my abandonment rate too high,” ask three narrower questions, each of which you can actually check in your own store’s data:

    1. Is it trending, or is it stable? A sudden jump is a signal worth chasing — a checkout bug, a shipping cost surprise added late in the flow, or a new traffic source that isn’t converting. A flat, consistent rate over months is just your store’s baseline.
    2. Where in checkout are people actually leaving? Shopify’s own checkout funnel reporting breaks this down by step. Losing people at “shipping information” versus losing them at “payment” point to completely different fixes — one’s a trust or friction problem, the other might be a payment method you’re missing.
    3. Does it match your traffic quality? If you know (or suspect) a meaningful share of your sessions are bots, scrapers, or low-intent comparison traffic, expect a higher abandonment number as a side effect of that — and fix the traffic-quality problem first, rather than redesigning your checkout to chase a number that was never fully real.

    Why this matters to you

    Here’s the concrete thing to actually go do: pull your store’s cart abandonment rate for the last 90 days, broken out by device (mobile vs. desktop) and by traffic source, if your analytics lets you slice it that way. Don’t look at the headline number in isolation — look at whether it’s stable or moving, and whether the worst segment lines up with a traffic source you already suspect is low-quality.

    If the number is stable and sits in that 60–80% range, you likely don’t have an abandonment problem — you have a normal store. If it’s climbing, or if one segment is wildly worse than the rest, that’s where to spend your next hour of attention, not on the topline percentage itself.

  • Why Your Shopify Conversion Rate Never Matches Google Analytics (Or Your Ad Platform)

    If you’ve ever opened three dashboards before your coffee finished brewing and gotten three different conversion rates for the exact same day, take comfort: you haven’t broken anything. You’ve just discovered the one truly reliable fact in ecommerce analytics, which is that nothing agrees with anything.

    Here’s the actual answer, before anything else: none of your reports are wrong. They’re just not measuring the same thing, even though every single one of them slaps the label “conversion rate” on it.

    Why do Shopify, Google Analytics, and your ad platform all show different numbers?

    Three things are different behind the scenes, and any one of them alone is enough to throw the numbers out of sync:

    • What counts as a “session.” Shopify starts and ends a session on its own clock. Google Analytics (GA4) does the same thing, but with different rules for when a session resets, what counts as a new visit, and how it handles someone who leaves a tab open overnight and comes back the next day. Same visitor, two different session counts.
    • What counts as a “conversion.” Shopify counts a completed checkout. GA4 counts a purchase event it was told about through your tracking setup, in its own time window, which can lag or miss entirely if tracking isn’t wired up perfectly. Your ad platform counts a sale it believes it influenced, using an attribution window it picked for you (commonly something like a 7-day click or a 1-day view), whether or not that was the last thing the customer touched before buying.
    • Who gets filtered out. Every platform does some amount of bot and automated-traffic filtering before it shows you a number, and every platform does it differently, with rules you don’t get to see. One tool’s “clean” session count and another tool’s “clean” session count can disagree before you’ve even gotten to the conversion question.

    Put those three together and you get the thing that confuses almost every store owner at some point: your ad platform says it drove 40 sales this week, but your actual Shopify order count only went up by 25. That’s not fraud and it’s not a tracking disaster. It’s three different scorekeepers, each playing by their own rules, all reporting from the same game.

    What is each platform actually counting?

    It helps to think of each number as answering a slightly different question, not the same question with a different answer:

    • Shopify Analytics is answering: “Out of the sessions Shopify itself recorded, how many ended in a completed order?” This is the closest thing you have to ground truth for revenue, because it’s tied directly to your actual order system.
    • Google Analytics is answering: “Out of the sessions GA4 recorded under its own definition, how many triggered a purchase event it was told about?” Useful for behavior and funnel detail, but one step removed from your real order ledger, and only as accurate as your tracking setup.
    • Your ad platform is answering a different question entirely: “Of the sales that happened anywhere, how many do we believe we deserve credit for, based on the attribution window we chose?” This is a credit-assignment number, not a counting number — which is exactly why it can add up to more “sales” across all your campaigns than you actually had orders.

    Which number should you actually trust?

    For “did we make money and how much,” trust Shopify’s order count over anything else. It’s the one number tied directly to a payment actually clearing. Treat Google Analytics as your tool for understanding behavior — where people drop off, what they look at, how a session actually unfolds — rather than as a second opinion on your revenue. Treat your ad platform’s reported conversions as a directional signal about which campaigns are pulling their weight relative to each other, not as a literal count of sales you can add up across platforms and expect to match your bank deposit.

    None of the three is lying. Each one is just built to answer a different question, and the mistake is assuming they’re all trying to answer yours.

    How do you read conversion rate without fooling yourself?

    1. Pick one system as your scorekeeper. For most stores, that’s Shopify’s own order and session data, because it’s the system closest to the money actually moving.
    2. Use the other platforms for trend and shape, not precision. If your ad platform’s reported conversions are climbing week over week, that’s worth noticing even if the raw number doesn’t match your Shopify total. The direction is more trustworthy than the absolute figure.
    3. Compare like with like. Before you put two numbers side by side, check that you’re comparing the same unit — sessions to sessions, not sessions to users; same date range; same time zone; same attribution window if one applies. A lot of “why don’t these match” moments disappear once you notice you were comparing a 7-day window to a 1-day window.
    4. Only chase a discrepancy that survives this check. If your ad platform claims 40 sales from a specific campaign, go look at your actual Shopify orders for that exact day, filtered to that campaign’s own UTM tag, and compare that to what the ad platform claims for the same day. If it’s still wildly off after that, you’ve found something real worth investigating. If it closes the gap, you’ve just confirmed the numbers were never going to agree in the first place.

    Why this matters to you

    The next time two reports disagree, you don’t have to guess which one is “broken,” and you don’t have to quietly panic that your tracking is falling apart. Pull up your Shopify orders for the specific day and campaign in question, filtered by UTM, and compare that single number against the single number the other platform is claiming for that same day. That one check — same day, same campaign, same window — will tell you in about two minutes whether you’re looking at a real problem or just three scorekeepers doing their jobs differently. Most of the time, it’s the second one, and that’s one less thing to lose an afternoon over.

  • Why Shopify Keeps Labeling Real Marketing Traffic as “Direct”

    Every store owner has, at some point, stared at a pie chart and watched “Direct” eat half of it, then quietly assumed their customers are extremely loyal people who type the full store URL from memory. Some of them are. Most of them are not.

    Here’s the direct answer: “Direct” in your analytics doesn’t mean “typed the URL in.” It means “we couldn’t tell where this visit came from.” Those are very different things, and the gap between them is usually filled with real marketing traffic — ads, social posts, emails — that got stripped of its tracking information before it ever reached your store.

    What does “Direct” actually mean in Shopify analytics?

    Every analytics platform, Shopify’s included, tries to figure out where a visitor came from by reading two things: the referring URL the browser hands over, and any UTM parameters tacked onto the link they clicked. When both of those are missing or unreadable, the platform doesn’t guess. It falls back to “Direct” as a catch-all.

    That label was accurate in 2010, when most lost-source traffic really was someone typing your domain into their address bar or clicking a bookmark. It’s a much weaker signal now, because there are more ways than ever for a real referral to lose its tracking information on the way to your store.

    Why does real marketing traffic end up labeled Direct?

    A few common culprits, roughly in order of how often we see them:

    • Missing or broken UTM parameters. If a link in an ad, email, or social post doesn’t have UTM tags on it — or they got dropped somewhere along the way, like when a link is shortened or reposted — there’s nothing left to tell your analytics where it came from.
    • In-app browsers on social platforms. When someone taps a link inside Instagram, TikTok, or Facebook, it often opens in that app’s own built-in browser rather than Safari or Chrome. Those in-app browsers are inconsistent about passing along referrer information, so a click that absolutely came from a social post can still land in your analytics as Direct.
    • Email clients stripping referrer data. Many email apps, and especially mobile ones, don’t send a readable referring URL when someone clicks a link inside an email. Without a UTM tag on that link, the visit shows up as Direct even though it came straight from your newsletter.
    • “Dark social” — links shared outside your view. Someone sees your product, copies the link, and pastes it into a text message, a group chat, or a DM. There’s no referrer to pass along in any of those cases, so that visit is Direct too, even though a real marketing moment (your product being good enough to share) caused it.
    • HTTPS-to-HTTPS security behavior. Browsers sometimes withhold referrer information when the security context doesn’t line up a certain way between the sending and receiving page. It’s a smaller factor than the others, but it adds a little more noise to the pile.

    How can you tell how much of your “Direct” traffic is actually something else?

    You can’t get an exact number without better tagging going forward, but a few checks will tell you whether “Direct” is worth investigating on your store:

    1. Look at the landing page, not just the source. Someone who genuinely typed your domain from memory almost always lands on your homepage. If a meaningful chunk of your Direct traffic is landing on a specific product page, a sale page, or a URL with a long slug they’d never remember, that’s a strong sign a real link was clicked and its tracking just didn’t survive the trip.
    2. Check the timing against your own campaigns. Pull up the days you sent an email blast, launched an ad set, or posted on social, and compare them against your Direct traffic for those same days. A Direct spike that lines up suspiciously well with a campaign you ran is traffic that campaign generated — analytics just lost the paper trail.
    3. Break it down by device. If your Direct traffic skews heavily mobile, that’s consistent with in-app browsers and email clicks, both of which happen disproportionately on phones. A more even device split leans more toward people genuinely navigating in on their own.
    4. Watch what happens when you add UTM tags to everything. This is the most reliable test of all. Go a few weeks tagging every link you control — every email, every social post, every ad — with UTM parameters, and watch your Direct percentage. If it drops noticeably, that confirms a real chunk of it was always marketing traffic that simply wasn’t labeled as such.

    What should you actually do about it?

    Tag every link you control. That’s the whole fix, and it’s less work than it sounds like. Any link you put in an email, a social bio, a paid ad, or a QR code on packaging should carry UTM source, medium, and campaign parameters before it goes out. Most email platforms and ad managers will do this automatically if you turn the setting on — check that it’s actually enabled rather than assuming it is.

    Don’t pull budget from a channel just because your dashboard says “Direct” is outperforming it. A channel that’s secretly feeding your Direct number is still working — it’s just not getting credit. Cutting a real, working channel because an undercounted “Direct” bucket looks stronger is one of the more common ways stores talk themselves out of something that was actually bringing in sales.

    Why this matters to you

    An inflated “Direct” number isn’t just a labeling quirk — it changes real decisions. It makes your actual marketing channels look weaker than they are, which can push you to cut spend on something that’s working or pour more budget into something that just happens to get credited correctly. The fix doesn’t require new software or a bigger analytics budget: pick one week, audit every outbound link you’re sending traffic through, and make sure each one carries a UTM tag. Then watch what happens to your Direct percentage over the following weeks. If it drops, you’ve just recovered visibility into channels you were underrating — and that’s information you can act on immediately, not someday.

  • Your Ad Platform’s ROAS Number Isn’t Lying, Exactly. It’s Just Grading Its Own Homework.

    Every ad platform you run is, in its own dashboard, your best-performing channel. That would be a remarkable coincidence if it weren’t also completely explainable.

    Here’s the direct answer: your ad platforms aren’t lying to you exactly, but they’re each grading their own homework, and none of them can see what the others are claiming. If you run ads on more than one platform, some of your real sales are almost certainly being counted as “attributed revenue” by two or three dashboards at once — which means your combined ROAS numbers are overstating how profitable your ad spend actually is.

    Why does every platform report a different ROAS for the same sale?

    Each ad platform runs its own attribution model, and that model is built to answer one question: “did this platform influence this sale, by its own rules?” Facebook’s default window credits a purchase if someone clicked an ad in the last 7 days, or even just saw one in the last 1 day without clicking. Google Ads has its own version of the same idea. TikTok has another.

    A customer who saw a Facebook ad, later clicked a Google search ad, then bought, can get counted as a Facebook-influenced sale AND a Google-influenced sale, in two separate dashboards, from the same $80 order. Neither platform is wrong by its own math. But add the two ROAS numbers together and you’re double-counting revenue that only happened once.

    What’s the difference between a “conversion” and an actual sale?

    This is the part that catches most store owners off guard: “conversion” on an ad platform doesn’t always mean “someone bought something.” Depending on how your pixel or tracking is set up, a conversion can include add-to-carts, checkout starts, or even view-through events where someone never clicked anything at all. Platforms report these because they’re useful signals — but when they’re rolled into the same “conversions” number as actual purchases, your reported conversion rate and ROAS both end up flattering the campaign more than your bank account would.

    The fix isn’t complicated: check what event each platform is actually counting as a “purchase” conversion, and confirm it’s tied to a completed order in your store, not an earlier step in the funnel.

    How do you check your real ad performance instead of trusting the dashboard number?

    You don’t need a new tool to do this first check — you need ten minutes and your own order data:

    • Pick a specific week. Pull the “attributed revenue” or “conversion value” each ad platform reports for that week.
    • Add those numbers together across every platform you advertise on.
    • Compare that total to your store’s actual total revenue for the same week, from your own order data, not an ad dashboard.
    • If the combined platform total is close to or higher than your real store revenue, you’re looking at meaningful overlap — sales being claimed by more than one channel.

    This won’t give you a perfect per-channel breakdown on its own, but it will tell you, honestly, whether you can trust the individual ROAS numbers you’re staring at — or whether they’re inflated by double-counted sales.

    What about attribution windows?

    Worth checking on its own: most platforms default to attribution windows that favor the platform. A 7-day click window, or a 1-day view-through window, will credit a platform with sales that happened well after — and sometimes with little real connection to — the ad itself. Shortening your attribution window in a platform’s settings (where that platform allows it) to something closer to same-day click will usually pull the reported ROAS down. That lower number is typically closer to the truth, not a sign something broke.

    Why this matters to you

    If you’re deciding where to put next month’s ad budget based on which platform’s dashboard shows the highest ROAS, you’re deciding based on which platform’s homework grading is most generous, not which channel actually drove the most real, incremental revenue. The ten-minute check above — combined attributed revenue vs. real store revenue, for the same week — is the fastest way to know if that’s happening to you before you shift more spend toward a channel that’s taking credit for sales it didn’t actually earn.

  • What Actually Happens When an AI Shopping Agent Hits Your Store

    Somewhere on the internet right now, an AI agent is trying to buy a t-shirt and getting told it’s out of stock when it isn’t. Nobody’s watching. Nobody knows.

    Here’s the direct answer: if any part of your product page’s price or availability is set by JavaScript after the initial load, an AI shopping agent almost certainly can’t see it. Most of these agents — ChatGPT’s browsing tool, Perplexity, Gemini — fetch the raw HTML your server sends. They don’t run your JavaScript. If your theme renders “Add to Cart” client-side, or your availability field in JSON-LD was set once and never updated when a variant sold out, the agent is reading a snapshot of your store that’s already wrong.

    We went and checked our own properties for exactly this, expecting to find small stuff. We found bigger stuff.

    Does your homepage even resolve for a crawler?

    The single highest-impact bug we found wasn’t a schema mismatch — it was that our own root domain returned a flat 401 Unauthorized. Not a redirect, not a coming-soon page. An error. The actual marketing page lived one path deeper. Any crawler, AI or otherwise, landing on the bare domain got nothing. Zero indexed pages, confirmed via a direct site: search. Before any JSON-LD cleanup or content work matters at all, check that your root domain actually serves something.

    Is there a robots.txt, and does it let AI crawlers in?

    We had none at all — a flat 404 where a robots.txt should be. No crawl guidance for anyone, human or AI. If you do have one, actually open it and check for GPTBot, ClaudeBot, and PerplexityBot by name — a lot of stores inherit a blanket Disallow from an old SEO plugin default and never notice, because it doesn’t break anything a human would see.

    Does your JSON-LD say what your page actually says?

    This is the one from the original question that started this post. Pull a product page with curl or view-source — not devtools, which shows you the DOM after JavaScript has run — and read the actual Product schema your server sent. Compare price and availability against what a real shopper sees on the same page. If they were set once at page-build time and the live inventory has moved since, they’ll quietly diverge, and an agent reading only the schema has no way to know it’s stale.

    Is there structured data at all?

    We had none — no Organization schema, no Product schema, nothing. This isn’t just an AI-agent problem; it’s the same gap that keeps you out of Google’s AI Overviews and rich snippets. FAQPage schema on a well-written FAQ section is one of the highest-leverage, lowest-effort things you can add, and it’s exactly the kind of direct, quotable content both traditional answer boxes and AI answer engines prefer over marketing copy.

    The honest bottom line

    None of this is exotic. It’s four checks: does your root domain resolve, does your robots.txt let AI crawlers in, does your JSON-LD match reality, and do you have structured data at all. We failed three of the four on our own site before fixing them. If you haven’t checked, you probably will too — and the only way to find out is to actually look, the same way an agent would: at the raw response, not the rendered page.

    (Housekeeping: yoursignalstack — the Shopify analytics tool this blog exists to support — is currently pending Shopify App Store approval, so it’s not installable yet. It has nothing to do with the checks above; different problem, same honesty-over-hype approach we’re trying to bring to both.)

ClearSellerSignal

Straight talk on ecommerce traffic quality, bot detection, and reading your store data without the hype.

yoursignalstack

Designed with WordPress