At a glance

To manage multiple subscriptions, identify each source, standardize names and order, then remove entries you’ve confirmed are no longer needed. This guide is for users with their own service details who see multiple subscription groups or duplicate-looking servers in Home. Follow the steps to distinguish subscription groups from policy groups, identify duplicate imports, and verify updates and connections after cleanup.

1. Understand subscriptions, servers, and configuration files

A longer list in Shadowrocket doesn’t necessarily mean you have more subscriptions. One subscription can contain multiple server entries, and adding the same address as a new subscription more than once can create groups with similar contents. Before cleaning up, check the group headings and server membership in Home. Don’t delete entries based only on their displayed names.

Groups in Home organize server lists by subscription source. Configuration files in Config contain settings such as rules and policies. Renaming, collapsing, or moving a subscription group doesn’t change how requests are routed. Policy groups in a configuration are different from subscription groups in Home, even if their names look similar.

2 screens
Check server sources in Home; check the active configuration in Config
3 initial checks
Compare protocol, server address, and port, then check the remaining parameters
4 modes
Global Routing:Proxy / Direct / Config / Scene

For example, when Global Routing is set to Config, requests are affected by the active configuration’s rules and policies. Moving a server to the top of the list does not mean all requests will use it. Keep the existing mode and configuration unchanged while organizing the list so it’s easier to tell whether an issue comes from cleanup or routing settings.

2. Record subscription sources, then standardize names

Start by making a brief record for each existing subscription: its purpose, whether the source is still valid, its Home group, and whether you still need it. Keep these notes somewhere you control; don’t put full subscription URLs or authentication details in shared documents. Query parameters in subscription URLs may contain access credentials, so don’t include them in names either.

Check the source Standardize names Arrange the order Remove duplicates Verify updates
  1. Open Home and expand each group to see which servers it contains. Note the currently selected entry and its group so you can select it again later.
  2. Use the subscription entry’s edit option to check its URL and notes. Don’t mistake a server entry’s edit screen for subscription settings; the former usually shows the server address, port, and protocol parameters.
  3. Add a note that makes each subscription’s purpose clear, such as “Daily use” or “Backup testing.” If several sources are similar, add a short identifier of your own, but don’t include a password or token.
  4. After saving, return to Home and make sure the change appears on the intended subscription group. It’s normal for the servers within the group to keep their original names: a subscription note and a server name apply at different levels.

The two cards below are examples of tracking notes, not importable configurations, and they don’t provide any service. Use information you already have. The example address https://example.com/sub?token=xxxx is fake and should not be used to update a subscription.

Subscription group record

Display note
Daily use
Where to check
The corresponding subscription entry in Home
Confirm the source
Compare with a valid subscription URL you’ve saved
When to keep it
Still in use, with updates that can be verified

Use notes to describe the purpose; keep full authentication details in a controlled location.

Standalone server record

Display note
Backup testing
Confirm the source
Added manually or imported as a single server
Fields to compare
Type, address, port, and authentication parameters
How to maintain it
Check separately; it isn’t tied to updates from a subscription

A standalone entry and a server in a subscription may point to the same server. Confirm their purposes before deleting either one.

3. Reorder Home without confusing sorting with policy

Put frequently used sources near the top, less-used backups below, and collapse groups you don’t currently need. Sorting makes entries easier to find; it doesn’t determine long-term quality based on a single latency result. The list’s display order, the currently selected server, and policy choices in the configuration are three separate things to check.

  1. Use the editing or sorting controls available in Home. If the current edit mode shows drag handles, move the entry to the desired position and then exit edit mode. If there are no handles, don’t repeatedly import an entry to try to pin it to the top.
  2. Check whether you’re moving a subscription group or a server within a group. If you only want frequently used sources to be easier to find, move the group instead of making changes to individual entries.
  3. If you sort by name or latency, first check which list the sorting applies to. To make entries easier to find consistently, start by using clear, standardized notes, then choose a sorting option supported by the interface.
  4. When you’re done, exit edit mode, return to Home, and check that the order was saved. Then update just one subscription and see whether the update rearranges its servers.

There’s no need to change Settings → On Demand while organizing subscriptions. On Demand triggers connections based on conditions; it doesn’t organize subscription groups or remove duplicates. Handle connection triggers separately from list management to avoid automatic reconnections that make it harder to check the current state during cleanup.

4. Compare server parameters before deciding what to delete

Matching server names only mean the displayed text is the same; they don’t prove the entries use the same connection. Different names don’t guarantee different connections either. Compare the protocol, server address, and port first, then check authentication and transport parameters. For example, two entries using port 443 on the same server could still differ in protocol, TLS settings, or transport path. Don’t use the port number alone to identify duplicates.

What you seeWhat to checkWhat to do
Two groups have very similar names and serversAre the subscription URLs identical? Was the same one added more than once?After confirming, keep one valid subscription group
Two servers have the same nameProtocol, address, port, and authentication parametersDon’t merge them if the parameters differ
Different names, but the same address and portTLS, transport method, path, and protocol-specific fieldsDecide whether an entry is redundant only after confirming the full configurations match
A deleted server reappears after an updateDoes the subscription still return this server?Address the issue at the source instead of repeatedly deleting it by hand
The same server appears in a subscription group and the standalone listDoes the standalone entry serve as a backup?Confirm why you’re keeping it, then remove one copy

The fields to compare vary by protocol. For Shadowsocks, check the encryption method and password. For VMess and VLESS, check the UUID and relevant transport settings. For Trojan, check the password and TLS parameters. Don’t compare just the address and port, and don’t share an edit screen that contains authentication details.

In short: remove duplicate groups at the subscription level; check the source for duplicates within a group

If you confirm the same URL was added twice, deleting the extra subscription group is easier to maintain than removing servers one by one. If entries reappear after every update even though there’s only one group, check what the subscription returns first so the next update doesn’t undo your cleanup.

Take care when comparing subscription URLs. The same domain and path don’t guarantee the same permissions or contents; merging two URLs just because they both end in /sub could remove a group you still need. If you don’t have enough information, keep the entries for now and mark them for review rather than deleting them in bulk.

5. Remove old subscriptions and verify updates

Before deleting an entry, make sure you can still retrieve a valid source from your own secure records. Removing a local subscription entry usually doesn’t cancel a remote service or mean the original URL has expired. Conversely, keeping an old group doesn’t guarantee it can still be updated. Decide whether to keep a source based on whether you still need it.

  1. Keep the information you may need to restore. Record the names and sources of subscriptions you plan to keep, along with the servers you currently use. Don’t share passwords or full URLs publicly. If you need a backup, use an app backup or export process you’ve verified, and protect the resulting file.
  2. Switch away from the entry before deleting it. If the currently selected server belongs to an old group, first select a valid entry you plan to keep. If needed, temporarily turn off the connection so an interruption won’t affect your checks.
  3. Delete at the subscription level. In Home, use the delete action for the old subscription group. If a confirmation appears, check the group name and deletion scope. Removing one server from a group does not remove the subscription source.
  4. Update the group you’re keeping on its own. Use the update action for the subscription you’re keeping, then check that it succeeded and returned the expected server list. Don’t add the same URL again as a substitute for updating the existing entry.
  5. Verify the connection. Select a server from the group you’re keeping, then check Global Routing and the active configuration in Config. Connect and visit a familiar website to make sure requests and name resolution work.

Remove only one confirmed duplicate group at a time. If you delete several sources while also switching modes and changing configurations, it will be difficult to pinpoint the cause of any problem. A shorter server list isn’t a fault by itself. Check that the remaining sources update, the entries you need are still there, and the connection and policies point where you expect.

6. Frequently asked questions about managing multiple subscriptions

Why does a deleted server come back after I update the subscription?

In Home, first check which subscription group the server belongs to. If the source still returns that server, a later update may add it back. If you no longer need the entire source, delete the subscription. If you still need its other servers, collapse the group or change how it’s displayed, and check the contents with the provider of your existing service details. Don’t keep deleting the same server entry over and over.

The subscription has a new URL. Should I add it again?

First confirm that the new URL replaces the original source. Then edit the URL in the existing subscription entry and update it. If you temporarily added another group for testing, decide which one to keep once testing is complete and delete the old group if you’ve confirmed it’s redundant.

Two servers have the same name. Can I just keep the one with lower latency?

Don’t delete one based on a single latency result. Open the edit screen for each entry and compare protocol, address, port, authentication, and transport settings. If the parameters match, check their sources; if they differ, they’re different connection configurations. A latency test only reflects the conditions at the time of testing. It can’t prove entries are duplicates or replace checking an actual website.

Why don’t requests use the first entry after I reorder the list?

Return to Home and check the selected server and Global Routing. If you use Config, check the active configuration and policy selection there. If you use Scene, check its settings too. The first entry’s position in the list doesn’t override the current selection or policies in the configuration.

How can I prevent duplicate groups from appearing on the next import?

Before importing, search your existing subscriptions or check their notes to see whether the source is already there. If an existing source changes, edit its entry; to get updated contents, use the update action. Add a new subscription only when you’re adding a genuinely new source. Scanning a code, using the clipboard, and entering details manually are different ways to add information; they don’t automatically identify and merge the same source.