When managing multiple Shadowrocket subscriptions, name them by source first, update them one at a time, check for duplicate sources, then adjust their display order. This guide assumes you already have your own providers and subscriptions. It explains how to distinguish nodes with the same name from genuine duplicates, why deleted nodes may return, and how to keep a recoverable record before and after cleanup. Get subscriptions from your own provider.
1. Distinguish subscription sources, nodes, and configuration rules
Start cleanup from Home; don't begin by deleting configuration files in Config. A subscription is a remotely updated list of nodes, a node is an individual connection entry, and a configuration file controls behavior such as rules and policies. Deleting a configuration file won't remove duplicate subscriptions and may change how traffic is routed.
Adding the same source twice can create two groups of similarly named, identical nodes. Different sources may also use the same display name, so matching names don't prove that connection settings match. The goal is to remove duplicate sources and unnecessary entries—not every node with a name in common.
2. Name subscriptions by source, then add and update them individually
Name subscriptions by source and purpose, such as “Source A — Daily” and “Source B — Backup.” A and B are just labels you assign locally to sources you already use, not provider recommendations. Keep source names consistent. Temporary test results and current latency make poor permanent names because they change with network conditions.
The steps below use Home on iPhone and iPad as an example. On other platforms, check the corresponding fields; editing and sorting controls may be in different places. Manage subscription notes and node notes separately: renaming a node doesn't rename its subscription.
-
Record the current setup
In Home, note the existing subscription names, the number of nodes in each group, and the currently selected node. In Config, note which configuration is enabled. Keep your subscription links somewhere safe, and make sure you can re-add them before deleting anything.
-
Check the source
In Home, open an existing subscription's edit screen and check its URL and remarks. Review what's already there before tapping “+” to add a source just because it has few nodes.
-
Add only what's missing
If a source is genuinely missing, go to Home → “+” → Type → Subscribe. Enter the subscription link you got from your provider in URL, add the source and purpose in Remarks, then save.
-
Update individually
Use the update action for that subscription, one at a time. Expand its node list and note whether the update succeeded and how the count changed. Check that it wasn't imported twice before moving on to the next one.
-
Check the names
Return to Home and make sure each subscription name identifies its source. When checking connection settings on a node's edit screen, take care not to change Address, Port, or authentication fields.
Keep the full subscription URL, including its path and query parameters. The example below shows only the URL format and can't be used to import a subscription; its token isn't a real credential. Don't remove query parameters just to make two URLs look alike: different parameters may return different lists.
https://example.com/sub?token=xxxx
3. Handle display order and rule order separately
Arrange subscription groups by how often you use them: frequently used sources first, backups next, and sources you're troubleshooting last. If the list offers an edit or drag-to-reorder option, use it while editing. If not, keep the source notes and collapse groups you aren't using. There's no need to repeatedly delete and re-import subscriptions just to change their position.
Sorting nodes by name and by latency serves different purposes. Name sorting helps you check sources, region labels, and duplicates. After a connection test, latency sorting can help you compare candidates on your current network. Test results reflect only that moment; a timeout alone doesn't prove a subscription is inactive and isn't a reason to delete an entire group.
- To check for duplicates: Check which subscription each node belongs to, look for similar names, then compare connection settings on the edit screen.
- To choose a node: Test under the same network conditions. Results from tests run far apart in time aren't directly comparable.
- After changing the list: Confirm that the correct node is still selected. A change in display order doesn't switch the active node.
- When checking Config: Don't confuse node sorting with rule order. Rules are evaluated in sequence; the display order in Home isn't rule priority.
For example, DOMAIN-SUFFIX, IP-CIDR, GEOIP, and FINAL are rule keywords. You don't need to reorder these rules while organizing subscriptions. In particular, don't move the fallback rule FINAL ahead of specific rules. Tidying the list and verifying that traffic is routed as expected are separate tasks.
4. Compare connection settings—not just node names
When nodes from two subscriptions appear together, first ask whether the same subscription was added twice; then check whether different subscriptions returned the same connection. If a source was added twice, remove the extra subscription record. If different sources returned similar nodes, decide which source to keep first. Deleting a node from a subscription may not last: the remote list can bring it back on the next update.
| What to check | Details to compare | How to decide |
|---|---|---|
| Display name | Are the Remarks and subscription the same? | Use as a clue only; don't delete based on this alone |
| Connection target | Address and Port, such as 443 and 8443 at the same address | Different ports don't automatically mean the same connection |
| Protocol and authentication | Check whether Type, authentication ID, password, or key match | Entries with different authentication may serve different purposes |
| Transport settings | TLS, SNI, transport method, and, where applicable, Host and Path | The same address may connect differently depending on these settings |
| Subscription source | Full URL, returned list, and update results | Once you've confirmed the same source was added twice, keep one working record |
The fields for Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard aren't identical. Compare the fields each protocol actually uses rather than expecting every entry to have the same form. Different names with the same address aren't necessarily duplicates; different authentication details or transport settings may indicate separate connections.
Bottom line: remove duplicate sources before individual entries
If the same URL was added twice, keep one subscription record that updates successfully. If duplicates come from the remote list itself, check its contents with your provider. Repeatedly deleting entries locally isn't a permanent deduplication solution.
5. Pause automatic updates during cleanup; turn them back on afterward
Manual and automatic updates are different ways to manage subscriptions; neither changes where their contents come from. An automatic update during cleanup may bring back a node you just deleted and make it harder to tell what's happening. Go to Settings → Subscribe, check the subscription update settings, and note their current values. If automatic updates are enabled, you can temporarily disable the relevant option while cleaning up.
Manual updates
RecommendedDuring cleanup, update subscriptions one at a time and record the groups and node counts before and after each update. This makes it easier to see which source brought duplicate entries back. This recommendation applies to the cleanup process only; it doesn't mean automatic updates should always be off.
Best for: tracking duplicate sources, checking before deletion, and verifying after cleanup
Automatic updates
Keep remote lists up to date according to your configured conditions. Once you've removed duplicate sources and verified the results, you can restore your previous settings. Automatic updates can't determine whether two nodes with the same name are identical.
Best for: routine maintenance after sources are stable and cleanup is complete
Check the network path used for updates separately. If a subscription URL isn't reachable over your current direct connection but you already have a working connection, check Update via Proxy under Settings → Subscribe. Enabling it requires a working proxy path; it can't fix invalid credentials or an inactive subscription URL.
- Update succeeds, but no nodes appear: Check whether the response is a supported node list and whether the existing resources are still valid.
- Update fails, but old nodes are still visible: The old list doesn't mean the latest update succeeded. Keep the record for now and investigate network or credential issues.
- Names revert after an update: The remote list is supplying the names again. Local node renaming shouldn't be relied on as a stable way to manage sources.
6. After deleting an inactive subscription, verify the results twice
Delete a source only after confirming you no longer use it, have migrated away from it, or your provider has confirmed it's inactive. A single test timeout or failed update isn't enough to establish that an entire subscription is inactive. First record the URL and any necessary notes. If the selected node belongs to the group you're about to delete, switch to a working node you plan to keep.
- In Home, find the subscription you want to delete and check its source notes and URL. On iPhone and iPad, use the list's swipe-to-delete action. Before confirming, make sure you're deleting the entire subscription rather than a single node in the group.
- Immediately check the groups and node list after deletion. Confirm that the sources you're keeping are still there and that the selected node isn't the one you deleted.
- In Config, check the active configuration. If a policy group you wrote yourself references nodes by name, check whether it still refers to the deleted node.
- Update each subscription you're keeping once. If the duplicate group doesn't return, restore the update settings you noted earlier.
- Connect and access the services you normally use. Verify the connection and routing separately; a tidy list alone isn't enough.
You generally don't need to change Settings → On Demand during cleanup. On Demand controls when connections are established; it doesn't remove duplicate subscriptions. Don't switch Global Routing just to make the list “take effect.” Keep your existing setting and, if access problems arise, check the active node, configuration, and network path separately.
7. Frequently asked questions about cleaning up subscriptions
Why did a deleted node return after an update?
First, check in Home which subscription the node belongs to. If the remote list still includes it, an update can recreate it. Check whether the same URL was added twice. If you need the node removed from the list permanently, ask your provider to check the list rather than repeatedly deleting the local entry.
Two nodes have the same name. Can I just keep one?
Don't decide by name alone. Open each node's edit screen and compare Type, Address, Port, authentication, and transport settings. Once you've confirmed their purpose and settings match, decide which source to keep. Treat same-named nodes from different sources as separate entries until you've checked them.
A subscription update timed out. Should I delete it and add it again?
Keep the existing record and retry that subscription separately in Home, making sure the URL is complete. If you already have a working connection, check whether Settings → Subscribe → Update via Proxy suits your current network. Deleting and re-adding usually won't fix an unreachable network or invalid credentials.
What if routing changes even though the connection works after cleanup?
First check Global Routing in Home and the currently selected node, then confirm in Config that the original configuration is still enabled. If a policy group in the configuration references a deleted node name, fix that reference. Don't restore duplicate subscriptions to hide a configuration reference problem.
How can I restore a subscription I deleted by mistake?
Use the working link you saved before cleanup. Go to Home → “+” → Type → Subscribe to add it again, then restore the source notes. If you didn't save the link or it's no longer valid, get a new one from your provider. After re-importing, check the selected node and any name references in your configuration.