Skip to content

robots.txt.liquid · App routes

Disallowing App-Leftover Routes on Shopify Safely

Apps that get uninstalled often leave crawlable URLs behind — product-review widgets, popup builders, custom landing pages, comparison tools. Google has already indexed them. The uninstall doesn't remove the URLs from Google's index, and the URLs now serve broken or thin content. The clean fix is a Disallow rule in robots.txt.liquid1. Two cautions: (1) never block a live app's routes (you'll break the app), and (2) ask the app vendor first — uninstall cleanup is their responsibility.

Published Verified 2026-05-22

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.

Common app-leftover patterns: /apps/judgeme/... from an uninstalled Judge.me reviews app, /apps/... URLs from any number of third-party tools, custom URL paths from page-builder apps (PageFly, Shogun) that retained routes after uninstall. The exact patterns vary by app vendor and Shopify's app proxy implementation.

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.

Cross-reference the URLs you find against your installed apps list (Settings > Apps). Anything that does not map to a currently-installed app is a leftover from a previous app. Anything that maps to an installed app is a live route that you must not block.

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.

liquid robots.txt.liquid with custom disallow rules for app leftovers
 {% for group in robots.default_groups %} {{- group.user_agent -}} {% for rule in group.rules %} {{- rule -}} {% endfor %} {% endfor %} {%- comment -%} Disallow uninstalled-app leftover routes {%- endcomment -%} User-agent: * Disallow: /apps/oldreviewapp/ Disallow: /apps/oldlandingbuilder/ 

Google's robots.txt documentation3 notes that robots.txt blocks prevent crawling but do not remove URLs from the index. URLs already indexed and now blocked may persist in search results as URL-only listings for weeks. For permanent removal, use Google Search Console's URL Removal tool in parallel with the robots.txt block.

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.

If the vendor cannot or will not remove the routes — common with smaller apps or apps where the vendor has gone out of business — the robots.txt.liquid block is the practical fix. Audit the rules quarterly: if you reinstall an app later or change vendors, an outdated Disallow rule can break your new setup.

For the underlying robots.txt.liquid mechanics and the safe editing pattern, see the cluster hub. For the ThemeKit-vs-admin-upload preservation gotcha that affects every robots.txt.liquid edit, see /shopify-seo/robots-txt-themekit/.