At a glance

When managing multiple subscriptions, identify each source first, then adjust the display order and remove duplicate entries. This guide is for iPhone and iPad users who already have their own service and subscription and use Shadowrocket. Follow the steps to check sources, determine whether same-named nodes are duplicates, and keep what you need to restore them before deleting anything. No nodes or subscriptions are provided, sold, or recommended here.

1. Understand the Difference Between Subscriptions, Nodes, and Config

A subscription is a source address for retrieving node details; a node is a set of protocol parameters used to connect; and Config organizes rules and other settings. They operate at different levels: adding a subscription in Home does not automatically create a separate set of routing rules, and placing two groups of nodes together does not merge their sources.

Before reorganizing, review each subscription’s label, source address, and node count in Home. Use labels that help identify the source or purpose, such as “Primary,” “Backup,” or “Test.” These are local labels, not indicators of connection quality or service level. Avoid putting subscription addresses containing credentials in labels.

ItemWhere to checkHow it helps when organizing
SubscribeSubscription entry in HomeIdentify the source of its nodes and manage whether that source is updated or kept.
NodeExpanded list in HomeCheck the protocol, server, port, and authentication parameters to identify the connection target.
ConfigConfigReview rule and policy references to avoid leaving references to old names after cleanup.
Update optionsSettings → SubscribeReview subscription-related settings; available options depend on the current interface.

A subscription may contain entries using different protocols, such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, or WireGuard. Don’t duplicate a subscription just because its entries use different protocols, or delete a node just because its name matches another. Check the source and connection parameters to determine whether entries are actually duplicates.

2. Add and Group by Source Without Importing the Same Address Twice

If you already have multiple subscriptions, make a list of their sources first, then add only the ones that are missing. Before adding one, look for existing entries in Home and compare their addresses in the subscription editor. If the same address is already there, update that entry instead of adding it again with “+”.

  1. Record the sources

    Review each subscription group in Home and note its label, node count, and purpose. Keep full addresses somewhere secure under your control; don’t post them in public discussions.

  2. Add only missing subscriptions

    In Home, tap “+” in the upper-right corner → Type → Subscribe. Enter a subscription address you already have, add a recognizable label, and save. Make sure you select Subscribe, not a protocol type for an individual node.

  3. Update one at a time

    Return to Home and use the update action for the relevant subscription. Pull down to update everything only when needed. Update one source and check the result before moving on, so you can tell which source caused any changes.

  4. Check the groups

    Expand the relevant subscription and confirm that its nodes match the expected source, then collapse groups you aren’t currently using. Grouping helps organize the list; it doesn’t determine which group handles requests.

Different addresses don’t always mean different sources. An old and a new address may return identical content, or two entries may belong to the same account. Check the purpose against information from your existing source, and avoid keeping identical entries just to have “one more backup.”

3. Handle Group Order Separately from Connection Strategy

Reordering makes entries easier to find; it doesn’t automatically change the switching strategy. Moving a node to the top of the list does not mean it will take over if the current connection fails. Check “how the list is displayed” and “where requests actually go” separately to avoid mistaking a display change for a connection change.

In Home, open the action menu for the subscription or node you want to organize and check the available sorting or editing options. If manual reordering is available, move your primary source to the top. If the only options sort by name or latency, use what the interface provides. Don’t confuse the order of subscription groups with the order of nodes within a group, and confirm the scope before applying bulk actions.

The following compares three Global Routing modes to explain the difference between sorting and routing. Check Scene settings separately for your own use case; their behavior cannot be inferred from the number of subscriptions.

Config

Recommended

Let the rules in the current configuration determine the policy. Before removing nodes, check whether the Config you use references them through policy groups or names; not all traffic uses the node currently selected in Home.

Best for: Keeping your usual routing behavior with a verified rule configuration.

Proxy

Route requests through a proxy to help isolate the effect of rules. Still check which node or policy is actually selected; the first item in the list is not automatically selected.

Best for: Temporarily testing an existing node to distinguish connection parameter issues from rule issues.

Direct

Connect directly. If a page loads in this mode, that doesn’t confirm that a recently reorganized proxy node works.

Best for: Checking how the current network behaves with a direct connection.

Bottom line: Confirm the selected item after reordering

After reordering, explicitly select the node you plan to use in Home and check Global Routing. If you use Config, check the active policy references too. Don’t rely on list position to determine the connection target.

4. Identify Duplicate Nodes by Their Parameters, Not Just Their Names

Two entries with the same name aren’t necessarily the same connection configuration. Entries with the same name may use different servers, ports, or protocols; one server may also use multiple ports with different authentication details. Conversely, entries with different names may have identical connection parameters.

What you seeWhat to checkWhat to do
Same name, ports 443 and 8443Protocol, server, authentication, TLS, and transport parametersDon’t delete based on the name alone; they may be different connection endpoints.
Same server and portPassword or UUID, TLS Server Name, transport type, and pathDifferent parameters can still mean different connection configurations.
The same subscription address was added twiceFull address, contents of both groups, and Config referencesKeep one verified source, then remove the duplicate subscription entry.
The same entry appears under two sourcesPurpose of each source and plans for future updatesDecide which source to keep first; deleting only the node may not prevent it from returning after an update.

The ports in this table are examples to explain the comparison process, not values to enter. Don’t change server, port, or authentication parameters just to remove duplicates; they must match your existing configuration. For WireGuard, compare key relationships and parameters such as Endpoint rather than using checks intended for passwords or UUIDs.

A safer cleanup order is to remove duplicate subscription entries first, check for duplicates across sources next, and then review standalone nodes added manually. If a source keeps returning the same entries, deleting them manually only affects the local list; they may reappear at the next update. Check the content and filtering options provided by your existing source rather than repeatedly deleting the same entries.

Bottom line: Remove duplicate sources first

If two groups use the same full subscription address, keep one source and verify its updates first. This is easier to maintain than deleting nodes one by one from one of the groups.

5. Keep Recovery Information Before Deleting and Check References Afterwards

Removing a subscription entry is not the same as canceling a service. Removing it locally doesn’t manage your account with the original service, nor should you assume local deletion invalidates the source credentials. If an address has been exposed, manage its credentials through the account for your existing source rather than simply removing the entry from Home.

  1. Keep recovery information

    Make sure you still have a valid subscription address and any necessary instructions. If you use the app’s configuration backup or export feature, check what it covers first; don’t assume it includes all subscription credentials.

  2. Switch connections

    If you’re using a node in the group you plan to remove, disconnect or switch to a node you’re keeping first, then check the policy references in your Config.

  3. Remove the source

    In Home, delete the target subscription entry and check which item and scope appear in the confirmation prompt. Don’t mistake an action for an individual node for an action on the entire subscription.

  4. Verify the result

    Check the remaining subscription groups, selected node, and Config. If the configuration still references an old node name, update it according to its structure, then test the connection and access again.

Don’t make deleting a subscription your first response to an update failure. Keep the existing content and check the address, network, and source status first; this usually makes the problem easier to diagnose. Remove an entry only after confirming it’s duplicated, the source is inactive, or you no longer need it. If you haven’t finished checking it, collapse the group to avoid selecting it by mistake.

6. Common Questions About Changed Sort Order and Returning Duplicates

Why did a node I just deleted come back?

First check whether it belongs to a subscription. If the source still returns the entry, it may be imported again during an update. Check the source in Home. If the same address was added twice, remove the extra subscription entry instead of repeatedly deleting its child nodes.

Can I give two subscriptions the same label?

The same label doesn’t merge sources and can make it easier to delete the wrong one. Open each subscription’s edit page, give them different labels, and check their addresses. To make entries easier to find, keep the sources distinguishable first, then organize the names and display order within each group.

The first item changed after sorting. Will my connection change too?

Don’t assume it will. In Home, check which item is actually selected, then review Global Routing. If you use Config, also confirm the current selection in the policy group. To keep using a specific entry, select it explicitly rather than relying on the first row.

One subscription update failed. Should I remove and re-add them all?

No. Update only the subscription that failed and leave other working sources as they are. Check its full address, your current network, and the source status, then review the relevant options under Settings → Subscribe. Record the original values before changing settings, and change one thing at a time.

At the end of each cleanup, run the same checks: Can the sources you’re keeping update? Are your frequently used nodes still there? Does the current policy behave as expected? A successful update only confirms that retrieval and parsing completed; it doesn’t prove every node can connect. Test the specific entry you plan to use.