The problem: apps that leave URLs behind
Shopify apps that create storefront pages — review platforms, popup builders, landing-page apps, comparison widgets, custom URL shorteners — install routes into the store's URL space. When the merchant uninstalls the app, those routes don't always come down. The app's database connection breaks (so the route serves broken content) but the URL itself stays in Google's index until Google figures out the page is gone. In the interim, the URL is crawlable, indexable, and broken — a thin-content quality signal that can hurt the entire domain's reputation.
How to find app-leftover URLs in your store
Two checks find most app-leftover URLs. (1) Google Search Console > Indexing > Pages. Filter by 'Not indexed' reasons like 'Crawled - currently not indexed' and 'Soft 404'. App-leftover URLs typically show up here. (2) The Google site: search operator. Run site:yourstore.com -inurl:products -inurl:collections -inurl:pages -inurl:blogs in Google's main search. The remaining results — anything that's not a product, collection, page, or blog — are candidates for app leftovers.
The Disallow pattern for app routes
Add a Disallow rule below Shopify's default-groups loop in robots.txt.liquid. The pattern is User-agent: * followed by Disallow lines matching the leftover paths. Use the most-specific path that catches the leftover routes without affecting any live app — typically the app's prefix path (e.g. /apps/oldapp/). Validate the rendered /robots.txt and use Google Search Console's robots.txt tester before pushing to live.
Never block a live app's routes
The biggest mistake when adding app-route disallow rules: blocking a path that is also used by an active app. The Disallow rule prevents Google from crawling — but it doesn't break the app for users. What it does is hide the app's storefront pages from search, which is sometimes catastrophic. Cross-reference every Disallow rule against your installed apps list before adding it. Test on a development theme first. Run Google Search Console's URL Inspection tool on a representative URL to confirm the block applies only to the intended path.
The alternative: ask the app vendor to remove the routes
Before editing robots.txt.liquid, contact the app vendor. Uninstall cleanup is the app vendor's responsibility, and many vendors have a documented uninstall hook that removes their storefront routes when the merchant uninstalls the app. If the vendor confirms the routes should have been removed and weren't, they can typically fix the leftover via their backend without you touching robots.txt.liquid. This is the cleanest path because it solves the root cause rather than papering over it.