# Store Scanner. Full content archive for LLMs. Source: https://storehealth.app/llms-full.txt Origin: https://storehealth.app App: https://apps.shopify.com/store-scanner-health-check Generated: 2026-04-18 This file concatenates every public blog post and documentation page in plain Markdown. It is intended for LLM retrieval and citation. Each section starts with frontmatter-style metadata and a canonical URL. Content may be cited with attribution and a link to the source page. ===== # Documentation ===== --- title: Introduction description: What Store Scanner does and how to get value quickly. url: https://storehealth.app/docs type: documentation --- # Introduction > What Store Scanner does and how to get value quickly. Store Scanner is a read-only Shopify theme and store configuration scanner. It helps you spot leftovers from uninstalled apps, risky scripts, oversized assets, and content issues that slow down your storefront or create instability. ## What Store Scanner checks - Theme file health (unused snippets, large files, duplicate scripts) - App leftovers (scripts, assets, and settings that should be removed) - Store configuration risks (product content, metafields, discounts) - Performance bottlenecks (oversized media, blocking scripts) ## Who this is for - Shopify merchants who want a clean, fast storefront - Developers auditing multiple themes or client stores - Teams that need periodic scans and clean-up workflows ## Read-only by design Store Scanner never writes to your storefront or theme. You choose what to fix, when to fix it, and in which theme. --- title: Cleanup Playbook description: A practical sequence for fixing common issues. url: https://storehealth.app/docs/cleanup-playbook type: documentation --- # Cleanup Playbook > A practical sequence for fixing common issues. ## 1) Remove leftover app code - Look for app snippets that are no longer installed. - Remove unused scripts from theme files. - Verify you are not deleting active integrations. ## 2) Reduce heavy assets - Compress large images and videos. - Replace oversized assets with optimized versions. - Remove duplicate files that are not referenced. ## 3) Tidy metafields - Archive or delete unused metafields. - Standardize naming to avoid duplicates. - Keep high-impact fields lean. ## 4) Review product content - Avoid overly long descriptions. - Keep image counts reasonable. - Ensure variant data is consistent. ## 5) Audit discounts - Remove outdated or conflicting discounts. - Keep automatic and code-based rules clean. --- title: Getting Started description: Connect your store and run your first scan. url: https://storehealth.app/docs/getting-started type: documentation --- # Getting Started > Connect your store and run your first scan. ## 1) Connect your Shopify store Install Store Scanner from the Shopify App Store, then approve the required permissions. We only request access needed to read theme files and configuration. ## 2) Choose the theme to scan Go to **Settings → Theme** and select a theme: - Use a **draft theme** while making changes. - Scan the **live theme** when you need a production snapshot. ## 3) Run your first scan Open **Home** and click **Run scan**. Most scans finish in a few minutes. ## 4) Review the highlights The overview page surfaces: - Overall score and issue count - High-impact items first - Links to detailed report sections --- title: Reports and Compare description: Save scan results and track improvements over time. url: https://storehealth.app/docs/reports-and-compare type: documentation --- # Reports and Compare > Save scan results and track improvements over time. ## Saved reports Each scan can be saved as a report so you can revisit it later. Reports summarize: - Overall score and severity breakdown - Issue categories with recommended actions - Theme, store, and scan metadata ## Compare scans Compare highlights changes between two scans so you can verify fixes: - New issues introduced - Issues resolved - Score movement and severity shifts ## Exporting You can export reports to PDF or JSON for sharing or internal tracking. --- title: Running Scans description: What happens during a scan and how to read results. url: https://storehealth.app/docs/running-scans type: documentation --- # Running Scans > What happens during a scan and how to read results. ## What a scan reads Scans analyze: - Theme files and assets - Theme settings and sections - Product and collection content used for checks - Discounts and store configuration relevant to risk checks ## Scan duration Most scans complete in minutes. Large themes or stores with heavy metafields may take longer. ## Best practices - Scan after uninstalling apps. - Scan after major theme edits or merges. - Schedule regular scans for long-term store health. --- title: Scheduling and Notifications description: Automate scans and stay updated by email. url: https://storehealth.app/docs/scheduling-notifications type: documentation --- # Scheduling and Notifications > Automate scans and stay updated by email. ## Scheduled scans Enable scheduled scans in **Settings → Scans** and choose a cadence that matches your change velocity. Recommended: - Weekly for active stores - Monthly for stable stores ## Email alerts Enable email notifications to receive scan completion alerts and summary changes. ## Quiet hours If you operate across time zones, set quiet hours so notifications arrive during working time. --- title: Security and Privacy description: How Store Scanner handles access and data. url: https://storehealth.app/docs/security-privacy type: documentation --- # Security and Privacy > How Store Scanner handles access and data. ## Read-only access Store Scanner does not modify your theme or storefront. Scans are read-only. ## Data we process We process only what is required to run scans and build reports: - Store domain and theme identifiers - Theme files and settings - Configuration data related to checks (products, discounts, metafields) We do not need customer data to run scans. ## Data retention Reports are stored so you can review and compare past scans. You can request deletion at any time. --- title: Troubleshooting description: Common issues and how to resolve them. url: https://storehealth.app/docs/troubleshooting type: documentation --- # Troubleshooting > Common issues and how to resolve them. ## Scan takes too long - Large themes and heavy metafields can slow scans. - Try scanning a draft theme or reduce large asset sizes. ## Missing data in reports - Confirm the connected Shopify store is correct. - Check permissions in your Shopify app settings. - Re-run the scan to refresh data. ## Not receiving notifications - Verify your email address in Settings. - Check spam filters and allowlist the sender. - Make sure notifications are enabled. ## Still stuck? Contact support with your scan run ID and a short description of the issue. ===== # Blog ===== --- title: The 'Uninstall Doesn't Remove Everything' Myth in Shopify description: Many merchants assume uninstalling an app cleans the storefront. Here is why leftovers remain and how to make cleanup measurable. url: https://storehealth.app/blog/uninstall-does-not-remove-everything-myth-in-shopify type: blog published: 2026-02-14 tags: shopify, apps, cleanup, theme, performance --- # The 'Uninstall Doesn't Remove Everything' Myth in Shopify > Many merchants assume uninstalling an app cleans the storefront. Here is why leftovers remain and how to make cleanup measurable. Many merchants assume uninstalling an app means the storefront is clean. In reality, uninstall often removes the app from your admin, but it does not guarantee: - theme code is removed - scripts stop loading - metafields are cleaned - discount rules are retired This is not always malicious. It is a consequence of how apps integrate and how stores evolve. ## Why leftovers remain ### 1) Legacy manual installs Older installs required pasting code into: - `theme.liquid` - snippets - product/cart templates Uninstall cannot always safely edit your theme files back, because the app cannot reliably know what you changed after the install. ### 2) Multiple integration layers Apps can touch: - theme files - app embeds - pixels and tracking - metafields and discount rules Uninstall may only remove part of this. ### 3) Stores are not static Themes change over time. Apps cannot always safely revert changes without breaking something else. ## What leftovers cause - duplicated widgets and scripts - slower storefront performance - unstable cart behavior - confusing tracking data Even if nothing breaks, you pay the cost in performance and maintenance. ## A safe cleanup approach 1) Duplicate the theme. 2) Disable app embeds related to the removed app. 3) Search theme files for includes/snippets related to the app. 4) Remove references first, then delete files. 5) Validate purchase flow before publishing. ## Make it measurable Cleanup is hard when it is guesswork. If you can list: - suspicious scripts and domains - leftover theme files and references - risky patterns introduced by apps Then you can prioritize, fix safely, and verify results over time. Uninstall is only step one. Store hygiene is what keeps Shopify stores fast and stable long-term. If you want to turn cleanup into a repeatable process, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) helps you surface leftovers and storefront risks in one scan so you can prioritize and verify improvements over time. --- title: How to Compare Two Theme Versions and Spot Regressions Fast description: A comparison mindset for Shopify: find what changed in scripts, assets, and templates so regressions are obvious. url: https://storehealth.app/blog/how-to-compare-two-theme-versions-and-spot-regressions-fast type: blog published: 2026-02-12 tags: shopify, theme, qa, workflow, performance --- # How to Compare Two Theme Versions and Spot Regressions Fast > A comparison mindset for Shopify: find what changed in scripts, assets, and templates so regressions are obvious. The fastest way to debug a storefront regression is simple: Compare a good state to a bad state. Many teams skip this and jump straight into random edits. A comparison workflow saves time and reduces risk. ## What to compare (in order) ### 1) Scripts and external domains If performance got worse or UX is glitchy, check: - what new third party domains were added - whether scripts are duplicated - whether a widget now runs on every page ### 2) Theme file changes High-risk areas: - `layout/theme.liquid` - header/navigation - product template/section - cart template/drawer Small changes here have large impact. ### 3) Assets that grew Compare: - new images/videos - new fonts - JS bundle changes Asset bloat is common after redesigns. ### 4) Data assumptions Sometimes the theme change is fine, but it assumes: - metafields exist - discounts exist - product descriptions exist When those assumptions are false, templates break. ## A practical regression checklist When "something changed": - can you reproduce on mobile? - does it happen on product/cart? - did a new app install/uninstall happen recently? - did a pixel or script change happen? ## Make comparison repeatable The best systems track changes over time: - scans produce reports - reports can be compared - teams can see what moved, not guess When comparison becomes normal, regressions become much less painful. If you want to operationalize this, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) lets you save scan reports and compare runs, so "what changed" is visible without manual digging. --- title: What to Check After Installing a New Shopify App description: Installing apps is easy. QA is usually skipped. Here is what to validate: speed, cart behavior, duplicates, and tracking. url: https://storehealth.app/blog/what-to-check-after-installing-a-new-shopify-app type: blog published: 2026-02-11 tags: shopify, apps, qa, performance, tracking --- # What to Check After Installing a New Shopify App > Installing apps is easy. QA is usually skipped. Here is what to validate: speed, cart behavior, duplicates, and tracking. Shopify apps can add huge value. They can also quietly break your storefront or slow it down. The biggest mistake most merchants make is installing an app and assuming everything is fine. This checklist helps you validate app impact in 10 to 20 minutes. ## 1) Confirm what the app changed Apps can affect: - theme files (snippets/assets) - app embeds (theme editor toggles) - scripts and tracking - metafields and discounts Knowing where the app integrates helps you uninstall cleanly later. ## 2) Check for duplicated features Before enabling the app embed, confirm you do not already have: - a similar widget from another app - an older manual snippet install Duplicate widgets are common after multiple experiments. ## 3) Validate critical pages Minimum set: - product page (variants, add-to-cart) - cart/drawer (quantity updates, remove item) - start checkout If the app touches one of these flows, test it twice. ## 4) Watch for performance regressions Open the storefront and check: - new third party domains loaded - heavy scripts on product/cart - increased time to interact If a new app adds multiple scripts, consider scoping it to fewer pages. ## 5) Check tracking sanity Apps sometimes add: - pixels - customer event tracking - marketing tags Confirm: - events do not fire twice - your primary analytics still works ## 6) Document ownership The best operational habit: - every app has an owner - you know why it is installed - you know how it integrates This makes future cleanup faster and safer. If you want to validate impact faster (and keep a baseline to compare later), run a quick scan with [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) after installs. It helps surface script and storefront hygiene issues that are easy to miss in manual QA. --- title: Why 'It Works on Desktop' Is Not QA description: Mobile UX and performance issues are the most common regressions in Shopify. Here is a minimal device testing checklist. url: https://storehealth.app/blog/why-it-works-on-desktop-is-not-qa type: blog published: 2026-02-10 tags: shopify, ux, qa, mobile, performance --- # Why 'It Works on Desktop' Is Not QA > Mobile UX and performance issues are the most common regressions in Shopify. Here is a minimal device testing checklist. Many Shopify issues are invisible on a fast desktop machine. They show up on mobile: - menus feel laggy - cart drawer stutters - sticky UI blocks content - pages render late and shift around If your QA is only desktop, you will miss the most common customer experience problems. ## Why mobile catches issues first Mobile devices and networks amplify problems: - slower CPU makes JavaScript heavier - network latency makes third party scripts more expensive - smaller screens magnify layout issues ## The minimal mobile QA checklist (15 minutes) ### 1) Navigation - open/close menu - open search - open cart drawer ### 2) Product page - select variants - scroll through images - add to cart ### 3) Cart / drawer - update quantity - remove item - proceed to checkout ### 4) Sticky UI and layout - does the sticky header cover content? - does the add-to-cart remain usable? - do accordions open smoothly? ### 5) Performance feel You do not need lab metrics every time. Ask: - does the page feel responsive? - do taps register immediately? - do animations drop frames? ## Common causes of "mobile-only" regressions - too many third party scripts - heavy image/video assets - cart drawer code that blocks scroll - duplicated widgets (embed + snippet) ## Make mobile QA a habit If you do one thing after every deploy: - test purchase flow on a real phone It is a small time investment that prevents the most expensive bugs. If you want extra confidence after mobile QA, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) can highlight common theme and script risks that often show up as "mobile-only" issues in real stores. --- title: A Monthly Shopify Maintenance Routine (60 Minutes) description: A simple monthly checklist to keep Shopify stores stable: scripts, discounts, metafields, and theme changes. url: https://storehealth.app/blog/monthly-shopify-maintenance-routine-60-minutes type: blog published: 2026-02-09 tags: shopify, maintenance, qa, performance, operations --- # A Monthly Shopify Maintenance Routine (60 Minutes) > A simple monthly checklist to keep Shopify stores stable: scripts, discounts, metafields, and theme changes. Most Shopify stores do not need constant work. They need consistent maintenance. A simple monthly routine prevents slowdowns, weird bugs, and campaign surprises. This checklist is designed to fit into one hour. ## 1) Script and performance hygiene (15 minutes) On product and cart pages: - list third party domains loaded - check for duplicates - disable or remove any "unknown" widgets If you do one thing every month, do this. Script creep is the most common long-term performance killer. ## 2) Theme change review (10 minutes) If you shipped theme edits recently: - verify purchase flow - verify navigation and mobile UX - check the console for errors Also verify that changes were made on a duplicate theme and published intentionally. ## 3) Discount hygiene (10 minutes) Review: - active automatic discounts - active discount codes - unknown or ownerless discounts Disable or document discounts that nobody can explain. ## 4) Metafields and data hygiene (10 minutes) Review: - new metafield definitions added by apps - old namespaces for uninstalled apps - keys that are clearly unused Do not mass-delete. Instead, mark candidates for cleanup and remove in phases. ## 5) Content QA quick pass (10 minutes) Pick top products (by revenue/traffic): - check missing descriptions - check broken images - check variant behavior Small content fixes often pay back quickly. ## The habit that makes this work This routine works when it is measurable. If you can track: - what scripts were added/removed - what issues exist now vs last month - what changed in the theme Then maintenance becomes predictable instead of reactive. If you want an easy way to track progress month to month, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) produces scan reports you can save and compare, so your maintenance routine stays measurable. --- title: How to Audit Your Shopify Store for Risky Integrations description: A simple risk-focused review for Shopify stores: unknown scripts, abandoned apps, fragile dependencies, and missing fallbacks. url: https://storehealth.app/blog/how-to-audit-your-shopify-store-for-risky-integrations type: blog published: 2026-02-08 tags: shopify, risk, security, performance, qa --- # How to Audit Your Shopify Store for Risky Integrations > A simple risk-focused review for Shopify stores: unknown scripts, abandoned apps, fragile dependencies, and missing fallbacks. Most Shopify stores are not intentionally risky. Risk accumulates over time: - apps installed and forgotten - scripts loaded from vendors that change behavior - theme changes shipped without QA - dependencies on external CDNs without fallback This audit is not about paranoia. It is about reducing the chance of revenue-impacting surprises. ## What counts as a risky integration? Examples: - unknown third party scripts running on every page - abandoned apps that still inject code - features that break cart or product pages when vendors are down - duplicated pixels and tracking that corrupt your analytics ## Step 1: Create a quick inventory List: - installed apps (especially those touching storefront) - app embeds enabled in the theme - theme-level scripts and snippets - external domains loaded on product/cart If you cannot list these quickly, visibility is already a problem. ## Step 2: Use a simple risk matrix For each integration, rate: - Impact if it fails (low/medium/high) - Likelihood of failure (low/medium/high) High-impact + high-likelihood items become your first priorities. ## Step 3: Check the critical flows with integrations enabled Test: - product variant selection - add-to-cart - cart updates - start checkout The goal is to ensure integrations do not block purchase flow. ## Step 4: Identify duplicates and conflicts Common conflict areas: - tracking pixels - review widgets - upsell widgets - subscription apps If the same feature exists in two places, pick one and remove the other. ## Step 5: Remove or isolate high-risk items Safer than removing completely: - disable on non-critical pages - delay loading until after interaction - keep fallbacks if vendors fail ## A maintenance habit that works Once per quarter: - run the inventory - review integrations on product and cart - remove abandoned tools and duplicates Stores stay stable when risk is reviewed regularly, not only when something breaks. If you want a faster inventory step, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) can help surface risky script sources and common storefront hygiene issues so you can focus your risk matrix on the biggest items first. --- title: Theme App Embeds vs Manual Snippets: What Merchants Should Know description: Many stores have both modern app embeds and old snippet installs. Here is why that causes duplicates and how to clean it up safely. url: https://storehealth.app/blog/theme-app-embeds-vs-manual-snippets-what-merchants-should-know type: blog published: 2026-02-07 tags: shopify, apps, theme, cleanup, qa --- # Theme App Embeds vs Manual Snippets: What Merchants Should Know > Many stores have both modern app embeds and old snippet installs. Here is why that causes duplicates and how to clean it up safely. Shopify has evolved how apps integrate with themes. Many modern apps use Theme App Extensions (app embeds) instead of telling you to paste code into `theme.liquid`. But many stores still carry years of legacy snippet installs. That means it is common to have both: - app embeds enabled in the theme editor - old snippet-based includes still present in theme files This causes duplicates, performance issues, and confusing bugs. ## What are app embeds? App embeds are toggleable integrations in the theme editor. They are: - easier to enable/disable - safer than manual code edits - often scoped and managed by Shopify's extension system ## What are manual snippets? Manual snippet installs typically mean: - you add `render`/`include` to `theme.liquid` - the app creates a snippet and sometimes assets This approach is older, but many stores still have it. ## Why having both causes problems Common outcomes: - widget renders twice - same script loads twice - tracking events fire twice This is especially common with: - reviews widgets - upsell widgets - chat widgets - analytics pixels ## How to detect duplicates Symptoms: - you see two badges or two widgets - the console shows repeated logs - network calls repeat to the same vendor domain ## Safe cleanup approach 1) Duplicate the theme. 2) In the duplicate, disable the app embed. 3) Test storefront. If the widget is still there, you have a manual snippet. 4) If the widget disappears, the embed was the source. 5) If both exist, remove one of them (prefer embed for modern apps). Do not delete files first. Remove references first, test, then delete later. ## What to prefer going forward In most cases: - prefer app embeds for supported apps - avoid manual snippet installs unless necessary - after uninstalling an app, run a cleanup pass to remove snippet leftovers Modern Shopify theme workflows are safer, but legacy artifacts still create a lot of pain. Cleaning up the duplicates is one of the highest ROI maintenance tasks you can do. If you want a quicker way to spot duplicate widgets and risky script patterns before they become a problem, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) can flag common leftover and duplication signals in a scan report. --- title: Before You Edit Your Live Theme: A Safe Workflow description: A simple workflow to avoid storefront downtime: duplicate themes, test critical flows, and publish confidently. url: https://storehealth.app/blog/before-you-edit-your-live-theme-a-safe-workflow type: blog published: 2026-02-06 tags: shopify, theme, workflow, qa, operations --- # Before You Edit Your Live Theme: A Safe Workflow > A simple workflow to avoid storefront downtime: duplicate themes, test critical flows, and publish confidently. Most theme disasters happen because someone made a "small change" on the live theme without a safety net. Shopify makes it easy to edit themes, but the safest workflow is still: 1) duplicate 2) change 3) test 4) publish This is the simplest way to protect revenue and reduce stress. ## Step 1: Duplicate the live theme Online Store > Themes > Actions > Duplicate. Work on the duplicate. Treat the live theme as production. ## Step 2: Make one change at a time Avoid stacking multiple high-risk changes at once (navigation + cart + tracking). If something breaks, you want to know which change caused it. ## Step 3: Test the critical flows Minimum test set: - product page: variant selection, add to cart - cart: update quantity, remove item - checkout: start checkout If the store uses: - cart drawer: test open/close and scroll - subscriptions: test selling plan selection - discounts: test a code application ## Step 4: Check mobile Most regressions appear on mobile first: - menu does not open - sticky header blocks content - cart drawer scroll locks incorrectly Test on a real device if possible. ## Step 5: Validate scripts and tracking Common mistake: adding or duplicating scripts in `theme.liquid`. Quick checks: - no new unknown third party domains - no duplicated analytics events ## Step 6: Publish at the right time If your store has predictable traffic patterns: - publish during low-traffic windows - keep someone available for 30 minutes after publish ## Step 7: Keep a rollback plan If something is wrong, you can: - publish the previous theme - investigate on the duplicate Rollback should be a button click, not a long debugging session. ## The long-term win This workflow turns theme edits from "risky" into "routine". When combined with a repeatable QA checklist, you can ship improvements faster with fewer surprises. To make the "validate scripts and regressions" step faster, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) can give you a quick scan report after changes, so you publish with more confidence. --- title: How to Build a Store Health Score That Actually Helps Merchants description: A store health score should drive action, not vanity. Here is a practical way to weight issues and prioritize fixes. url: https://storehealth.app/blog/how-to-build-a-store-health-score-that-actually-helps type: blog published: 2026-02-05 tags: shopify, analytics, qa, performance, ux --- # How to Build a Store Health Score That Actually Helps Merchants > A store health score should drive action, not vanity. Here is a practical way to weight issues and prioritize fixes. "Your score is 83/100" is meaningless unless it tells you what to do next. A useful store health score is not a marketing number. It is a prioritization tool that helps merchants and agencies decide: - what to fix first - what can wait - what is risky vs cosmetic ## The two mistakes most scores make 1) They count everything equally. 2) They do not connect issues to real business impact. For example, a missing description on a low-traffic product should not carry the same weight as a broken add-to-cart. ## A practical model for a health score Start with categories: - Purchase flow stability - Performance and scripts - Theme hygiene (leftovers, risky patterns) - Product content quality - Discount and promo hygiene Each category should represent a real area of risk or opportunity. ## Weighting: what matters most If you need a simple weighting approach: - Purchase flow: highest weight (revenue risk) - Performance: high weight (conversion and UX) - Theme hygiene: medium weight (future risk and maintenance) - Content: medium weight (SEO and conversion) - Discounts: medium to high weight (margin and checkout behavior) ## How to prevent "gaming the score" If the score can be improved by fixing easy, low-impact items, it becomes a distraction. To avoid this: - cap points from low-impact items - include "critical blockers" that override the score (ex: broken cart) - show top 3 actions instead of a long list ## The output that makes a score useful Always include: - the score (for tracking trend) - top 3 priority fixes (for action) - category breakdown (for strategy) - compare vs previous run (for verification) ## Why comparison matters Scores become powerful when you can compare runs: - did uninstalling an app remove scripts? - did a theme change add new risk? - did content improvements reduce missing descriptions? This turns "we think we improved" into "we can prove we improved". ## Keep it simple Merchants do not need a complex model. They need a score that: - is stable over time - explains itself - leads to the next action If your score does that, it will help, not distract. If you want a concrete example of this idea in action, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) generates a Store Health score and a prioritized report, so merchants focus on fixes that actually move performance and stability. --- title: SEO Basics That Merchants Miss in Shopify Themes description: Not SEO theory. Practical theme and content checks that prevent common Shopify SEO issues: headings, templates, links, and duplicates. url: https://storehealth.app/blog/seo-basics-merchants-miss-in-shopify-themes type: blog published: 2026-02-04 tags: shopify, seo, theme, content, qa --- # SEO Basics That Merchants Miss in Shopify Themes > Not SEO theory. Practical theme and content checks that prevent common Shopify SEO issues: headings, templates, links, and duplicates. Most Shopify SEO issues are not advanced. They are basic problems that hide in themes and templates: - missing or inconsistent headings - thin templates that render empty content - broken internal links - duplicate content patterns caused by filters or query params This post is not a full SEO guide. It is a practical checklist you can apply to most Shopify stores. ## 1) Heading structure (H1/H2) Common theme mistakes: - multiple H1s on the same page - no H1 on product pages - heading styles used without semantic headings Quick checks: - product pages have one clear H1 (product title) - collection pages have one clear H1 (collection title) ## 2) Empty templates and "thin pages" Some pages exist but render almost nothing: - empty collection templates - blog pages with no content - product pages missing descriptions Thin pages lower perceived site quality. ## 3) Internal links and broken navigation paths Broken internal links often appear after: - theme refactors - menu changes - app installs/uninstalls Check: - header and footer links - collection links on the home page - blog links and article links ## 4) Duplicate content patterns Common sources of duplication: - multiple URLs with different query params rendering the same content - tag pages and filtered pages that create near-duplicates You do not need to solve everything at once. Start by identifying the patterns, then decide what to index. ## 5) Image alt text and media hygiene Alt text is not a magic SEO lever, but it improves accessibility and helps with image search. Check: - hero images have descriptive alt text - decorative images use empty alt attributes where appropriate ## 6) Performance as an SEO input Slow UX often correlates with worse SEO outcomes: - users bounce - pages render late - heavy scripts delay content If you have to choose between "more widgets" and "faster store", speed usually wins. ## A simple SEO maintenance habit Once per month: - scan for broken links and empty templates - review product pages missing descriptions - review new scripts and heavy assets SEO improves when the storefront stays clean and predictable. If you want a faster way to keep theme and storefront hygiene under control (scripts, leftovers, and common quality issues that impact UX), [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) gives you a report you can use as part of your monthly SEO and QA routine. --- title: Product Content QA: The Hidden Cost of Missing Descriptions description: Missing or thin product descriptions quietly hurt conversion and SEO. Here is a practical content QA checklist for Shopify. url: https://storehealth.app/blog/product-content-qa-hidden-cost-of-missing-descriptions type: blog published: 2026-02-03 tags: shopify, content, seo, conversion, qa --- # Product Content QA: The Hidden Cost of Missing Descriptions > Missing or thin product descriptions quietly hurt conversion and SEO. Here is a practical content QA checklist for Shopify. Product content problems are rarely dramatic. They do not crash the store. They simply lower conversion and make your SEO weaker over time. Missing descriptions are one of the easiest issues to fix, but they are also one of the easiest to overlook, especially in stores with hundreds or thousands of products. ## Why missing descriptions matter ### Conversion impact Descriptions answer the questions customers have: - what is included? - what problem does this solve? - what are the specs and sizing? - how does it compare to alternatives? If the product page does not answer these, customers leave or contact support. ### SEO impact Search engines do not rank "empty pages" well. Thin product pages often: - fail to rank for long-tail queries - cannibalize each other with similar content - reduce overall site quality signals ## A practical product content QA checklist ### 1) Description presence For each product: - is there a description at all? - is it readable on mobile? - does it contain key details (materials, sizing, shipping expectations)? ### 2) Title clarity Check: - titles are not overly generic - variants do not belong in the title (unless intentional) - titles match what customers search for ### 3) Media completeness Check: - at least 3 images for hero products - variant images where relevant - no broken images after theme changes ### 4) Specs and key attributes If you sell physical goods: - sizing info - materials - care instructions If digital: - file format - delivery method - licensing ### 5) UX clarity On mobile: - important details are not hidden too deep - accordions are labeled clearly - the add-to-cart is not pushed too far down ## How to make this manageable at scale If your store is large, do not try to fix everything at once. Instead: 1) Prioritize by revenue (top products first). 2) Prioritize by traffic (high-traffic pages next). 3) Apply a consistent content template. ## A simple content template that converts If you want a structure: - 2-3 lines: what it is and who it is for - bullet list: key benefits - section: specs (size, materials, compatibility) - section: shipping/returns expectations Even small improvements compound quickly across a catalog. If you want to find missing descriptions and similar catalog gaps without manual spot-checking, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) surfaces product content issues in a report so you can prioritize fixes across the whole store. --- title: Discount Hygiene: How Stale Discounts Create Real Checkout Risk description: Old discounts can quietly break margins and customer expectations. Here is a safe process to audit and retire stale rules. url: https://storehealth.app/blog/discount-hygiene-how-stale-discounts-create-checkout-risk type: blog published: 2026-02-02 tags: shopify, discounts, qa, risk, operations --- # Discount Hygiene: How Stale Discounts Create Real Checkout Risk > Old discounts can quietly break margins and customer expectations. Here is a safe process to audit and retire stale rules. Discounts are easy to create and hard to manage over time. Many stores have years of abandoned discount codes, expired promotions, and overlapping automatic discounts that nobody remembers. This creates real risk: - margins get hit unexpectedly - checkout behavior becomes unpredictable - support tickets increase ("my code does not work") Discount hygiene is a store maintenance habit, not a one-time project. ## How stale discounts cause problems ### 1) Margin leaks The worst discounts are the ones nobody monitors. A forgotten code shared publicly can keep converting for months. ### 2) Conflicts and stacking surprises Stores often run: - automatic discounts - discount codes - app-based promotions These can conflict or stack in ways that are hard to reason about. ### 3) UX confusion Customers get: - "code invalid" errors - discount not applied messages - inconsistent behavior across cart vs checkout ## A practical discount audit process ### Step 1: Classify discounts Group discounts by: - active vs inactive - automatic vs code - scope (all products, collections, shipping) - campaign owner (marketing, retention, affiliates) ### Step 2: Identify the "unknown" discounts Any discount without an owner is a risk. If nobody can answer: - why it exists - when it should be used - who monitors it You should retire it or document it. ### Step 3: Check for conflicts Look for: - multiple automatic discounts that touch the same products - codes that overlap with automatic discounts - rules that unintentionally include excluded products ### Step 4: Retire in phases Safe approach: 1) Disable unknown or unused discounts on a schedule 2) Monitor orders and customer feedback 3) Remove or archive after confidence ### Step 5: Add a simple discount policy If you want discounts to stay manageable: - every discount must have an owner - every discount must have an end date (even if extended) - quarterly review of the discount list ## What to do for large stores Large stores often have: - many product-specific promotions - many segmented discounts Focus on the top risk areas first: - high-volume products - shipping discounts - automation-driven discounts Discount hygiene is one of the most practical ways to reduce operational risk in Shopify. If you want a quicker way to keep discount risk visible (especially in stores with lots of promotions), [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) can help surface discount hygiene issues alongside theme and script risks in one report. --- title: Metafields Sprawl: When Metafields Become a Store Hygiene Problem description: Metafields are powerful, but sprawl creates complexity and risk. Here is a practical audit and cleanup approach. url: https://storehealth.app/blog/metafields-sprawl-when-metafields-become-store-hygiene-problem type: blog published: 2026-02-01 tags: shopify, metafields, data, hygiene, qa --- # Metafields Sprawl: When Metafields Become a Store Hygiene Problem > Metafields are powerful, but sprawl creates complexity and risk. Here is a practical audit and cleanup approach. Metafields are one of Shopify's best features: they let you model real business data and build flexible themes. The downside is sprawl. Over time, stores accumulate metafield definitions and values that are no longer used, inconsistently named, or duplicated across apps. Sprawl is not just "messy data". It increases maintenance cost and raises risk during theme changes. ## What metafields sprawl looks like - dozens of namespaces created by apps that are no longer installed - keys that mean the same thing (ex: `size_guide`, `sizeGuide`, `size-guide`) - values stored but never rendered on the storefront - huge numbers of values that make audits slow ## Why this becomes a real problem ### 1) Theme complexity Themes often end up with conditionals like: - "if metafield exists, render X" - "if metafield missing, fallback to Y" When metafields are inconsistent, the storefront becomes harder to reason about. ### 2) App conflicts Multiple apps can use metafields for similar purposes (badges, bundles, subscriptions). Removing one app can break the other if the theme was coupled to the old key. ### 3) Debug cost When a product page looks wrong, teams waste time asking: - is the data missing? - is the theme referencing the wrong key? - did an app overwrite a value? ## A practical metafields audit ### Step 1: List namespaces and owners For each namespace: - who created it (app, agency, internal team)? - is the app still installed? - does the theme reference it? ### Step 2: Identify "active" keys Active keys are those referenced in: - Liquid templates and snippets - app embed configurations - automation rules If a key is not referenced anywhere, it may be dead. ### Step 3: Standardize naming Pick a convention and stick to it: - one namespace per domain (ex: `product`, `marketing`, `custom`) - keys in snake_case - clear descriptions and validations ### Step 4: Remove in phases Do not delete everything at once. Safe approach: 1) Mark keys as deprecated 2) Remove theme references (with fallbacks) 3) Remove values later ## What to do if the store is very large Large stores can have huge metafield volume. The key is to focus on visibility and prioritization: - which keys impact product pages? - which keys affect cart/checkout? - which keys are purely internal? The fastest cleanup targets "storefront-impacting" keys first. ## Make metafields manageable long-term If you want metafields to stay healthy: - review new metafields during app installs - review metafields after app uninstalls - keep a short "metafields map" in internal docs Metafields should add flexibility, not hidden complexity. If you want to keep metafields manageable as the store grows, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) can help you spot metafield clutter patterns alongside other storefront risks, so cleanup becomes a planned routine instead of a surprise. --- title: Oversized Theme Assets: What to Fix First description: A simple, safe order of operations to reduce theme asset bloat (images, videos, fonts, JS) without breaking design. url: https://storehealth.app/blog/oversized-theme-assets-what-to-fix-first type: blog published: 2026-01-30 tags: shopify, performance, theme, assets, ux --- # Oversized Theme Assets: What to Fix First > A simple, safe order of operations to reduce theme asset bloat (images, videos, fonts, JS) without breaking design. Theme assets slowly grow. A store adds a new font, a new hero video, a new app script, and a few more images. Nothing breaks immediately, but the storefront becomes heavier month by month. You do not need a rebuild to fix this. You need a safe priority order. ## The goal: reduce weight on critical pages Start with the pages that matter most: - product page - collection page - cart/drawer The best optimization is removing bytes and work that users do not need. ## Fix-first priority list (safe and high impact) ### 1) Fonts Fonts are often overlooked and surprisingly expensive. Check: - how many font families are loaded - how many weights are loaded - whether you load the same font multiple times Safe wins: - keep 1 family if possible - reduce to 2 weights (regular + bold) - avoid loading multiple subsets you do not use ### 2) Large images used as backgrounds Common problem: - a hero image uploaded as a full-resolution photo and used on every page Safe wins: - compress images - use responsive image sizing - avoid loading huge images above the fold on mobile ### 3) Autoplay videos Hero videos look great, but they can hurt performance. Safe wins: - do not autoplay on mobile - replace with a poster image until user clicks play - ensure the video is optimized and hosted correctly ### 4) Unused JS and CSS files Themes and apps accumulate unused files. Safe wins: - remove references to unused assets - delete after confirming no references remain ### 5) Third party scripts Some scripts are necessary. Many are not. Safe wins: - remove duplicates - scope to only the pages where needed - delay non-critical scripts ## How to do this without breaking the theme 1) Duplicate the theme. 2) Make one change at a time (fonts, then images, then scripts). 3) After each change, test product and cart flow. 4) Publish only after validation. ## A practical maintenance habit If you want to keep the storefront fast: - run a quarterly "asset inventory" - remove unused fonts and scripts - audit app leftovers after uninstall When you treat assets like a living system, performance stays under control. If you want help spotting oversized theme files and common storefront risk areas quickly, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) can highlight the biggest "fix first" items so you do not have to hunt manually. --- title: How to Find Leftover App Code in a Theme (Without Guessing) description: A systematic way to locate app leftovers in Shopify themes: snippets, assets, app embeds, and script duplicates. url: https://storehealth.app/blog/how-to-find-leftover-app-code-in-a-theme-without-guessing type: blog published: 2026-01-28 tags: shopify, theme, cleanup, apps, qa --- # How to Find Leftover App Code in a Theme (Without Guessing) > A systematic way to locate app leftovers in Shopify themes: snippets, assets, app embeds, and script duplicates. "We uninstalled the app, but the widget is still there." If you have worked on Shopify stores long enough, you have heard this. The reason is simple: apps can touch multiple layers of a storefront, and uninstall does not always reverse every theme change. This post is a systematic method to find leftovers without guessing. ## Start with the symptoms Write down what you see: - a widget appears twice - a popup still shows - a badge is still present - performance got worse Knowing the symptom helps you locate the source faster. ## Step 1: Check App Embeds first Modern apps often use app embeds. In the theme editor: - open App embeds - look for anything you do not recognize - disable on a duplicate theme first If a widget disappears, you found the source. ## Step 2: Search for app snippet includes Many older apps add a Liquid include: - `render` or `include` in `theme.liquid` - injection in product/cart templates Search your theme for: - the app name - vendor namespace - snippet names that look like `app-*` If you are unsure, comment out the include and test. ## Step 3: Inventory assets the app added Common leftover files: - `assets/app-*.js` - `assets/app-*.css` - `snippets/app-*.liquid` Do not delete files first. Remove references first, then delete later. ## Step 4: Find duplicated script sources It is common to have the same integration loaded from: - theme file - app embed - another app - a tag manager Quick method: 1) Open DevTools > Network 2) Filter by the vendor domain 3) Check if the same script loads more than once If yes, find where each copy comes from. ## Step 5: Check store settings outside the theme Leftovers can live in: - pixels and customer events - metafield definitions and values - discount rules created for promotions These are not theme files, but they impact storefront behavior. ## Step 6: Validate with a "known-good" version If possible: - compare with a previous theme version - compare with another store that does not have the integration The goal is to isolate what changed. ## A note on safety Do not remove code on the live theme directly. Use a duplicate, verify purchase flow, then publish. ## Make it repeatable The fastest teams use the same audit process after every uninstall. If you can track leftovers and changes over time, cleanup becomes a routine instead of a risky guess. If you want to reduce manual searching, [Checkpoint: Store Scanner](https://apps.shopify.com/store-scanner-health-check) helps surface leftover theme references and common risk areas so you can focus your cleanup where it matters most. --- title: Shopify Theme Files That Commonly Cause Problems description: Where regressions most often happen in Shopify themes and what to check before and after changes. url: https://storehealth.app/blog/shopify-theme-files-that-commonly-cause-problems type: blog published: 2026-01-26 tags: shopify, theme, liquid, qa, ux --- # Shopify Theme Files That Commonly Cause Problems > Where regressions most often happen in Shopify themes and what to check before and after changes. When a Shopify storefront breaks, it is rarely random. A small set of theme files and components carry most of the risk because they load everywhere or they control critical flows (cart, product, navigation). This post explains which files are most likely to cause regressions and what to check when you touch them. ## 1) `layout/theme.liquid` This file is the global wrapper. Common problems: - scripts added in the head that block rendering - duplicated analytics/pixels - app snippet includes left behind after uninstall - missing or broken meta tags What to check: - any new `