3
36 Comments

2 weeks of fixing my Shopify App Store listing + building SEO content — installs haven't moved (yet)

I launched Reporting SaaS a few weeks ago — a Shopify app that automatically emails merchants their sales/order/product reports as PDF or CSV, so they don't have to log into Shopify Analytics manually every week.

I want to share what the last two weeks actually looked like, honestly, including the part where nothing much happened yet.

What I found wrong with my own listing

When I actually audited my own App Store page instead of assuming it was fine, I found:

  • A recurring text-encoding bug that silently stripped every accented character from my French copy (I'm based in Morocco, French is my primary market) — looked unprofessional and I hadn't noticed for over a week
  • The listing existed in French only, which cuts out the large majority of Shopify's English-speaking search volume
  • A subtitle field that was hard-truncated mid-word because I didn't realize there was a strict character limit
  • A generic, non-branded app name that blends into every other "reporting" app in the category

What I fixed

  • Rewrote and re-saved every field (properly this time), added 2 extra feature bullets I wasn't using
  • Created a full English listing from scratch
  • Built a comparison page (my app vs. native Shopify Analytics — the honest comparison, not vs. a competitor I can't fairly evaluate), a free calculator ("how many hours a year are you losing manually checking Shopify sales"), and two blog posts, all cross-linked

The honest result

Zero net new installs from any of this so far. I know SEO content realistically takes weeks to months to show up in search, so I'm not writing this off yet — but I'd rather say that plainly than pretend there's already a growth curve.

One thing I did notice in the data that's more interesting than the SEO silence: one merchant installed and uninstalled the same day, twice, a week apart. Before I put more energy into getting people to install, I think there's a real question in why someone bounces immediately rather than just "not enough traffic yet."

Genuinely curious from people who've been through this stage: what actually got you your first handful of organic installs — was it one channel that outperformed everything else, or did it come from somewhere you didn't expect?

https://apps.shopify.com/reporting-saas-public

on July 27, 2026
  1. 1

    Really honest writeup - the 2-week "nothing much happened yet" framing is the useful part.

    One distinction that saved me a lot of guessing: a listing audit fixes conversion (page-view -> install), but flat installs usually mean the bottleneck is discovery (impression -> page-view), and the listing can't touch that. They're two separate funnels.

    So before deciding the fixes "didn't work," instrument it: do you have impressions vs page-views vs installs broken out? If page-views are flat, no amount of listing polish moves installs - you need category ranking, keyword relevance in the structured fields (title/subtitle/category tend to outweigh body copy), reviews, and install velocity. If page-views are healthy but installs are flat, then your audit was exactly the right move.

    Also, 2 weeks is way too short to judge SEO content - that's more like a 2-3 month loop before pages even rank. The encoding-bug fix was worth doing regardless; just don't expect it to show up directly in installs.

    1. 1

      That's the same conclusion someone else in this thread landed on from a different angle (mobile app store, locale-segmented impressions) — good to have it confirmed a second way, because at this point it's clearly the actual blind spot rather than a one-off suggestion.

      Honest answer, same as I gave before: no, I don't have impressions vs. page-views vs. installs broken out. Shopify's Partner Dashboard only gives me install/uninstall counts — nothing about people who saw the listing or clicked into it without installing. So right now I genuinely can't tell which funnel stage is flat, which means the honest conclusion isn't "nothing worked," it's "I don't have the data to know what worked yet."

      Appreciate you naming the specific discovery-side levers too (category ranking, structured-field keyword relevance, reviews, install velocity) — clearer list than I had of what actually moves impressions versus what only moves conversion once someone's already looking. Treating the encoding fix and English listing as "worth doing regardless," like you said, and dropping the habit of reading install numbers as a verdict on them specifically.

  2. 1

    Two weeks is early days for SEO — most app store optimization takes 4-8 weeks to see meaningful movement, especially for competitive categories. One thing that helped me was iterating on screenshots more frequently than the text fields. A/B testing the first screenshot against a benefit-driven version often moves the needle faster than keyword changes alone.

    1. 1

      Good to hear 4-8 weeks lines up with what I'd assumed — gives me an actual timeframe to wait for before drawing conclusions either way, instead of just guessing at how patient to be.

      The screenshots point is new to me though. I've only touched captions/alt text since publishing, never the actual images or any variant of them — and honestly, my current first screenshot is just a plain dashboard view, no benefit framing baked into the image itself at all.

      Quick question on mechanics, since I haven't looked into this: are you actually A/B testing through Shopify's own listing tools (if that even exists), or running variants externally somehow and comparing which drives more clicks/installs afterward?

  3. 1

    The repeat install/uninstall is unusually strong intent. Before investing in more acquisition, I would instrument four timestamps: install, first successful API read, first useful report rendered, and first scheduled report delivered. That separates permission friction from setup friction and output quality.

    I would also let merchants preview a generated-data report before granting store permissions. In a read-only Shopify operations beta I am testing, the safe demo reduced permission anxiety, but it exposed a different gap: people explored the dashboard without completing the beta form. That made “first useful action” a better metric than installs alone.

    If you can identify which stage that merchant reached on both attempts, you will have a much sharper next experiment than another traffic channel.

    1. 1

      This is the sharpest version of the point several people have converged on in this thread, so thank you — "which stage did they reach" is a much better question than "why did they leave."

      Honest answer: I'm not instrumenting any of those four moments right now, just raw install/uninstall from Shopify's own Partner Dashboard. So for the merchant in question, I genuinely can't say yet whether they hit a permission wall, a setup wall, or saw a low-quality first report and bailed — meaning I've been guessing at exactly the thing multiple people here have told me to go measure instead.

      Going to add explicit timestamps for those four events. "First useful report rendered" is probably the one I care about closing fastest right now — shrinking the gap between install and that moment seems like the highest-leverage single change available to me at the moment.

      The permission-preview point is interesting too — in your beta, did letting people explore with sample data before connecting their real store actually move people past that step afterward, or mostly just get more lookers who never followed through to the real thing?

  4. 1

    The uninstall-twice signal is the one I’d instrument first. I’d add three events before doing more SEO: app installed, first successful report generated, report email opened/clicked. If the drop is before first successful report, your growth problem is really time-to-value, not traffic.

    1. 1

      That's converging closely with what someone else suggested just above — instrument the funnel instead of guessing. Your version adds something theirs didn't: whether the report actually gets opened once it's delivered, not just whether it's generated. That's a real gap — right now I'd have no way to tell "never got a report" apart from "got a report and ignored it," and those point to very different fixes.

      Same honest answer as above: none of this is instrumented yet, just install/uninstall counts from Shopify's dashboard. Install → first successful report → email open/click is going on the list, alongside the finer-grained version from the comment above yours (they split "first successful report" into API read / render / delivery separately). Probably don't need both levels of granularity at once, but between the two I've got a much clearer instrumentation plan now than I did this morning.

      If the drop turns out to be before first successful report like you're suggesting, I'd guess the fix is almost entirely about speed — how fast that first report shows up after connecting — rather than anything about traffic. Does that match what you've seen when time-to-value turned out to be the real bottleneck on something you've built?

  5. 1

    The measurement order matters more than the timeline: a listing fix shows up as impressions first, then listing views, then installs - and each stage lags the one before it. Two weeks after a listing change, installs are the LAST place the effect will appear. We ship a mobile app with store listings in six languages, and every localization change followed the same pattern: search impressions moved within days (the index picks up new terms fast), page conversion moved over weeks, installs moved last. If your dashboard only shows installs, you're staring at the slowest signal in the chain and concluding nothing happened.

    The English listing is probably your biggest lever, and it's worth isolating: watch impressions for English queries specifically, not the aggregate. When we added new locales, the aggregate looked flat for a while because the new locale started from zero next to a steady main one - segmented, the new locale was obviously climbing the whole time.

    And +1 to the others on the install/uninstall bounce: that's a product signal, not a marketing one. One person trying twice and leaving twice tells you more than two weeks of SEO data does.

    1. 1

      This is a genuinely different angle from the activation discussion happening elsewhere in this thread, and it's making me realize I've been staring at the wrong end of the funnel specifically for the SEO/English-listing question.

      Honest gap: as far as I've seen, Shopify's Partner Dashboard only gives me install/uninstall counts — no search impression data, and nothing split by locale or query. So right now I have no way to check whether English-query impressions are climbing the way you're describing, even in aggregate, let alone segmented the way you did with your locales.

      Question back, since your example sounds like it had proper store-listing analytics (App Store Connect / Play Console style, locale-segmented impressions): is there an equivalent view inside Shopify's Partner Dashboard that I'm just missing, or does Shopify genuinely not expose that layer at all for app listings? If it doesn't, that's a bigger blind spot than I realized — not just "can't see conversion," but no visibility into the entire top of the funnel.

      Either way, the sequencing point stands regardless of what I can actually measure: two weeks isn't enough to conclude anything about the English listing specifically, and staring at the aggregate install number was the wrong way to check it even if I had more patience.

  6. 1

    The most interesting line in your post isn't the SEO silence — it's the merchant who installed and uninstalled twice. Someone who comes back a week later to try again wants your app to work and bounced off something specific. If you can find them (or replicate their first-run experience yourself), that's worth more than any new channel right now: fixing whatever they hit converts every future install better.

    On your actual question — for my rental-management SaaS, honest answer: organic did nothing for the first months. My first real signups came from small paid Meta campaigns while the SEO compounds in the background, and I recently added the free software directories (Capterra etc.) since that's where "best X app" searches already go. One channel outperforming everything else? For me it was ads buying signal early, not growth — they told me who converts before organic could.

    Your instinct to look at the uninstall before pouring energy into installs is the right call.

    1. 1

      Appreciate that — especially "find them or replicate their first-run yourself," since that's something I can actually go try right now, independent of any of the instrumentation gaps discussed elsewhere in this thread.

      On channels: genuinely different way to think about paid than I had — using it as a fast signal-finding tool rather than a growth lever. I've been staying off paid and broader social platforms entirely for this round, partly by choice, so I don't have anything of my own to compare that against yet.

      The directories point is new to me though — hadn't considered the Capterra/G2 equivalent for a Shopify app specifically. Does general software-directory listing actually pick up "Shopify app" searches, or is there a more Shopify-specific version of that worth looking at instead?

      And yeah — agreed on the uninstall being the real signal. That's the next thing I'm actually going to go check, not just say I will.

      1. 1

        Good question, and I want to be straight that I'm reasoning here rather than reporting numbers I've measured on a Shopify app specifically.

        The way I'd separate it: Capterra / G2 / GetApp rank for category intent — "inventory management software," "helpdesk software" — not for "Shopify app" as a keyword and definitely not for search happening inside the App Store. So a listing there catches buyers comparing tools by job-to-be-done, some of whom aren't even Shopify-committed yet. Different funnel, thinner Shopify relevance.

        The intent you actually want ("shopify app for X") lives in two places: App Store search itself, and the third-party "best Shopify apps for X" roundups/review blogs that rank in Google for exactly those queries. For a Shopify app, I'd put the Capterra/G2 energy into getting into those roundups before I'd chase a general directory — closer intent, and they compound.

        So my honest answer: general directories aren't useless, but they're not the Shopify-specific equivalent you're picturing. The nearest thing to that is the App Store's own surface plus the listicle ecosystem around it.

  7. 1

    the double install/uninstall is the loud bit here. i’d pause content for a day and make the first report stupidly obvious. if setup is involved, maybe show sample output before they connect anything. two weeks is nothing for SEO, but someone coming back and bouncing twice is real.

    1. 1

      That's blunt and useful — "pause content for a day" is a fair callout. I've been treating content and diagnosis as parallel tracks, but pouring more time into content while an unexplained double-bounce sits there unexamined is a strange order of priorities when you say it plainly like that.

      The sample-output-before-connecting idea has come up once already in this thread — feels like a real pattern now, not a one-off. I don't have that today: right now the first thing after install is "connect your store," no preview of what a report even looks like before granting access.

      Going to actually go check the install history for that merchant before writing anything else here.

  8. 1

    Interesting approach! In my experience with LLM agents, the key challenge is balancing flexibility with reliability. What's been your biggest technical hurdle?

  9. 1

    Respect for posting the honest version. The "here's what didn't work yet" posts teach me way more than the success ones, so thank you for that.

    Building in the same Shopify space, so two thoughts:

    On the SEO part, you're right not to give up, but two weeks is nothing for search. The bigger near-term lever is the App Store listing itself, not the blog. Most first installs come from in-store search, so your title and subtitle keywords matter more than blog posts right now. Honestly the English listing was probably your single biggest fix, it opened up a whole search audience you were invisible to before.

    But the install-then-uninstall twice is the signal I'd chase first, before any traffic. That's not a traffic problem, it's an activation one. Someone wanted it enough to install twice, then bounced twice. Usually that means the first-run didn't deliver fast enough, too much setup or the first report took too long to show up. Sending more traffic into a leaky onboarding just wastes it. I'd add simple event tracking to see exactly where they dropped, and make that first report land in their inbox as fast as possible.

    For me the first organic installs came from just being useful in Shopify communities, not SEO. Slower, but the intent is miles higher than cold search.

    1. 1

      Thanks — means more than a generic "nice work," especially since these honest posts take more to write than a highlight reel.

      You're actually the third person in this thread to independently point at activation over traffic for that same-day double-bounce, so I'm done treating it as a one-off and going to actually check it: I still haven't gone into the install history to confirm whether that merchant ever saw a generated report before uninstalling. That's the very next thing to verify, before anything else.

      On time-to-first-report — honestly don't know off the top of my head how long it currently takes from install to a merchant seeing their first report. Uncomfortable to admit, but better than assuming it's fine without checking.

      The English listing point tracks with something else that came up in this thread too — between you and a couple others here, three separate people have now converged on "you're flying blind on listing traffic specifically," since Partner Dashboard only shows install/uninstall counts, not listing page views. Feels less like coincidence at this point and more like the actual next thing to fix.

      Really appreciate the "useful in communities first" data point — that's the bet I'm currently making with basically no evidence yet that it'll pay off, so hearing it worked for someone else in the exact same space is worth more than a traffic number would be right now.

  10. 1

    Painfully relatable — I'm in the exact same spot (built it, polished the listing, traffic flat). A few honest thoughts from the same trench:

    • 2 weeks is way too early for SEO content to move installs — that's a 3–6 month lever, not a 2-week one. Don't judge it yet.
    • Listing fixes only convert traffic you already have. If installs are flat, the bottleneck might be upstream (nobody's reaching the listing), not the copy.
    • What's actually worked for people I've read: getting in front of store owners where they already hang out (relevant subreddits, Shopify/FB communities) with a specific "here's the problem I solve" angle — not the listing.

    Quick question that changes the whole fix: is your listing getting impressions but not converting, or just not getting impressions?

    1. 1

      this is the right question to be asking, but the annoying part is the Partner Dashboard will not answer it for you. it shows installs and uninstalls, not page views on the listing itself.

      cheapest way i know to get the number anyway: put a UTM-tagged link pointing at the listing on every piece of content and every community post, then compare clicks against installs over the same window. decent clicks and no installs points at the listing. near-zero clicks means nobody is reaching it and the copy rewrite was never the bottleneck.

      not perfect, but it splits impressions from conversion without waiting on Shopify to hand you the data.

      1. 1

        That UTM trick is clever — using it to split "nobody's reaching the listing" from "they reach it but bounce," without waiting on Shopify's dashboard. Stealing that.

        One gap I'd flag: it only measures traffic you actively tag, so it's blind to organic App Store search — someone who finds the listing by searching inside the store never touches your UTM link. So near-zero UTM clicks doesn't fully rule out the listing being reached; it just rules out your owned channels driving it. Still, as a quick directional read on "is my distribution even landing," it beats flying blind.

        Do you tag the App Store listing URL directly, or route through a redirect you control? Curious whether Shopify keeps or strips the UTM params on the listing page.

        1. 1

          redirect you control, every time. partly because i would not bet on any marketplace preserving query params through to a listing page, but mostly because the redirect is where the measurement belongs anyway. you get the click server-side before the destination has any chance to strip something, and you can repoint it later without reissuing links you already published.

          and your gap is a fair correction to what i said. near-zero UTM clicks only rules out YOUR channels, not in-store search, so the honest version is narrower than how i put it: it tells you owned distribution isn't landing, not that nobody is reaching the listing. in-store search volume is the one number none of us can see.

        2. 1

          Good question, and honestly I don't know yet either way — I've been linking straight to the App Store listing (no UTM tagging) on everything I've shared here and on Product Hunt so far, so I don't have the data to answer cravveo's impressions-vs-conversion question with confidence right now.

          I do already tag links to my own site (the blog/calculator pages) and track those clicks separately — that's actually how I know Product Hunt and one earlier test sent a click each, and IH hasn't shown up as a source in that tracker at all yet. But that setup never touches the App Store listing URL itself, which is a different property from my own site — so I've been measuring one gap and missing the other entirely.

          Going to start tagging the App Store link specifically from here on. On whether Shopify preserves those params through to anything I can actually see, or strips them before/during install — genuinely don't know, and I'd rather test it directly than guess. Will report back with a real answer instead of a theory.

          1. 1

            Testing over theorizing is exactly right — and the "I instrumented my own site but never the listing itself" catch is the real takeaway. Easy trap to fall into: you measure the property that's easy to measure and quietly assume the untracked one is fine.

            Genuinely curious what you find on whether Shopify preserves the UTM through to install. That's an unknown a lot of app builders probably share and nobody writes up — if it survives, small distribution superpower; if it gets stripped, at least you know clicks-to-listing is the ceiling of what you can measure.

            Ping the thread when you've got real numbers — would like to hear it.

  11. 1

    Le signal de désinstallation est probablement plus pertinent que le signal SEO actuellement.
    Qu'est-ce qui vous convaincrait que le goulot d'étranglement réside dans l'acquisition, plutôt que dans le fait que les commerçants installent l'application sans en percevoir immédiatement la valeur ajoutée pour la conserver ?

    1. 1

      Ha, c'est presque mot pour mot la même question qu'un autre commentaire plus haut sur ce fil. En version courte : avec un échantillon d'une seule boutique désinstallée, je ne peux honnêtement pas encore trancher — il me faudrait savoir si cette boutique a désinstallé avant ou après avoir vu un rapport généré, pour distinguer un problème d'activation d'un problème d'acquisition. Curieux de savoir si quelque chose en particulier te fait pencher vers l'une des deux hypothèses, ou si c'est plutôt une grille de lecture générale à ce stade ?

  12. 1

    The uninstall/reinstall pattern is a strong signal worth investigating. That suggests they saw value (decided to try) but hit a friction point on first use. Before scaling traffic, I'd validate: Can you add onboarding walkthroughs or a quick setup video showing the core value in under 2 minutes? Shopify app discovery is brutal because everyone's listing looks similar - your comparison page vs native Analytics is smart positioning. The other angle: direct outreach to Facebook groups or Slack communities where Shopify store owners hang out. Cold traffic to App Store rarely converts, warm audiences from relevant communities do.

    1. 1

      The friction-point read makes sense, and it's probably the more useful hypothesis than "not enough traffic" at this stage. A quick setup video or a walkthrough showing a sample report within the first couple minutes is a fair suggestion — right now the first thing a merchant sees after install is basically "connect your store," with no preview of what the actual report looks like before they commit. That gap alone could explain a same-day bounce.

      On the Facebook groups / Slack outreach — I've deliberately stayed off social platforms for this round of distribution, mostly a personal choice about where I want to spend energy, not a belief that it doesn't work. Appreciate you naming it though, since it's clearly working for other people in this space.

      Appreciate the comparison page callout too — that one took longer to get right than I expected, glad it reads as intentional rather than defensive.

  13. 1

    Listing optimization takes time — two weeks isn't enough to see movement. Are you tracking conversion rate or just raw installs? Sometimes the listing is fine but the traffic just isn't there yet. What channels are you using to drive visitors to the page?

    1. 1

      Honestly, just raw installs right now — I don't have real visibility into listing page views vs. conversion from those views, which in hindsight is a gap I should close before drawing conclusions from install numbers alone. Shopify's Partner Dashboard shows installs/uninstalls but not page traffic to the listing itself, so I'm partly flying blind on that specific question.

      Channels so far: the App Store listing itself, a couple of SEO pages/blog posts published a few days ago, and conversations like this one on IH. No paid traffic, nothing off Shopify's own ecosystem yet. Given how young the SEO content is, "not enough traffic yet" is a completely fair read — I just can't confirm or rule it out with the data I currently have.

      1. 1

        Makes sense. One quick win before you invest in any fancy analytics: set up a UTM parameter on the link back to your listing from your SEO pages. At least then you'll know which blog posts are actually driving clicks vs. just ranking. Free, takes 5 minutes, gives you a baseline to work from.

  14. 1

    The uninstall signal is probably more valuable than the SEO signal right now.

    What would convince you that the bottleneck is acquisition, rather than merchants installing but not immediately seeing enough value to keep the app?

    1. 1

      Honestly, I don't think I can answer that with confidence yet — one uninstalled store isn't enough data to diagnose anything reliably.

      What would actually tell me the difference: if the SEO/community traffic eventually brings in more installs, and most of them also bounce same-day without ever seeing a generated report, that's a strong signal it's activation, not acquisition — the problem would be the first-run experience asking for too much trust (Shopify data access) before showing any value. If instead I keep struggling to get installs at all despite real distribution effort, that points to acquisition being the actual bottleneck.

      Right now I genuinely don't know which one I'm dealing with, because the sample size is one store. The thing I do want to go check first: did that merchant ever actually see a generated report before uninstalling, or did they bail before getting there at all? That alone would tell me a lot.

      How do you usually tell the difference at this stage, with such small numbers to work with?

      1. 1

        Appreciate the honest context, Ayoub.

        Would be good to continue the conversation outside the thread as you learn more from those signals.

        What's the best email to reach you on?

        1. 1

          [email protected]. Happy to keep sharing what I learn as I dig into the activation vs. acquisition question — curious what you're working on too, if you want to share.

          1. 1

            Thanks! I’ve just sent it over.

            Looking forward to hearing your thoughts whenever you have a chance.

Trending on Indie Hackers
How to rank #1 on ChatGPT? User Avatar 112 comments I built a startup-idea scanner. It just told me none of my 3,400 ideas are easy wins. User Avatar 66 comments I Tested Agenmatic for Finding Customers in Communities — Here’s What I Learned User Avatar 63 comments “I’ll just post on Upwork” is not a client strategy. Here’s what I built instead. User Avatar 51 comments Building a Shopify bundles app for stores with real fulfillment: here's the wedge User Avatar 42 comments I recorded myself using 200+ indie SaaS products cold. Here are the 7 conversion killers that keep showing up. User Avatar 32 comments