This guide is for users with their own providers and subscriptions who want to organize the server list in Shadowrocket. Start by grouping subscriptions under clear source names, then distinguish list order from the server actually used for connections. Finally, investigate duplicates by checking for repeated imports, manual copies, or duplicate entries in the source. The goal is to keep each entry’s source clear, not simply reduce the number of items. This site does not provide, sell, or recommend servers or subscriptions.
Understand the difference between subscription sources, server entries, and config files
Multiple subscriptions do not mean multiple rule configs. Home is primarily for viewing servers, subscription groups, and connection status. Config is where you manage config files, and traffic matching is determined by the active config. Adding two subscriptions to Home does not automatically merge any rules they may include, and moving a group to the top does not route all traffic through that group.
Before organizing, note three things: which source the selected server belongs to, the current Global Routing mode, and which config is active in Config. To route traffic by rules, check Global Routing → Config. Proxy, Direct, Config, and Scene serve different purposes; switching modes is not a substitute for removing duplicate subscriptions.
Sources in Home
- Subscription records
- Store a URL and fetch its source content again when updating.
- Server entries
- Store connection details such as protocol, address, port, and authentication parameters.
- Manual copies
- Independently saved entries that need to be distinguished from subscription-generated entries.
Matching names only mean the displayed text is the same. Do not delete an entry based on its name alone.
Rules in Config
- Where to find them
- Config → the currently active config file.
- How rules are matched
- Rules are checked from top to bottom; the first matching rule determines the policy.
- Fallback keyword
- FINAL applies to traffic that did not match an earlier rule.
Back up your config before organizing subscriptions. Removing a source does not fix references in your rules.
Group by source: keep one active entry for each subscription
Distinguish subscriptions by source name instead of renaming every server. For example, name two plans from the same source “Source A · Daily” and “Source A · Backup,” and use “Source A” and “Source B” for different providers. These are example labels for local reference; they do not indicate service quality or priority.
-
Record the current setup
Open Home and note each subscription’s remarks, entry count, and currently selected server. Check URLs only on your device; do not put complete URLs containing tokens in public notes.
-
Check each source
From Home, open the subscription’s edit screen and check its URL and Remarks. To add a subscription, go to Home → “+” in the upper-right corner → Type → Subscribe. When organizing existing sources, do not add the same URL again.
-
Use consistent remarks
In the subscription’s edit screen, enter the source and purpose in Remarks. Save, return to Home, and make sure the group heading is easy to distinguish. Change only the remarks; do not also modify the URL, authentication parameters, or server port.
-
Update one group at a time
Use the update action for the relevant subscription, updating one source at a time. Check the result and any changes to the entries so you can identify which group regenerated duplicate content.
-
Verify before cleaning up
Select a known working entry in a group you plan to keep, then verify the connection using the same routing setup as before. Once you confirm that the entry works, deal with duplicate sources and inactive entries.
A URL is a credential, not a group name
https://example.com/sub?token=xxxxis only a format example and cannot be used to connect. Query parameters in a real link may contain access credentials. Do not remove parameters just to make two URLs look alike, and do not merge links with different tokens without checking them first.
Reorder the list without confusing display order with server selection
Sorting the list makes entries easier to find; it does not change the actual connection route. Sorting by name works well when entries share a consistent prefix. Sorting by test results can help compare responses on your current network, while manual ordering lets you keep a preferred browsing sequence. Available sorting options depend on the current Home interface. Do not mistake any order for automatic failover.
First decide whether you are reordering subscription groups or servers within a group. After opening the sorting or editing controls in Home, check the result on a small group before changing others. Subscription updates may rebuild entries in the order returned by the source, so check after updating to see whether your local order was retained. For lists that change often, source remarks are easier to maintain than manually sorting every entry.
Two use cases: everyday browsing and temporary troubleshooting
Everyday browsing
- Use consistent source remarks: find the group first, then look for an entry within it.
- Before sorting by name, make sure names follow a consistent format.
- After updating, check that frequently used entries are still there and the correct one is selected.
Temporary troubleshooting
- Compare test results on the same Wi-Fi or cellular network.
- Set aside timed-out entries for another test; do not assume the source is inactive right away.
- Even after sorting by test results, select the server you want to use explicitly.
Sorting changes how the list is displayed. For the actual connection, also check the selected server, Global Routing, and the active rule policy.
A response-time test is a one-time result for the current network and test target. It does not represent sustained throughput or prove that an entry can reach every destination. Do not delete entries in bulk because they ranked lower in one sort; first rule out changes to your local network, then decide whether cleanup is needed.
Remove duplicate servers: check the source, then compare connection settings
A matching name does not mean two entries use the same connection. Different protocols can use the same address, and entries with the same address and port may have different authentication details. Compare the protocol, server address, port, authentication, and transport settings. Do not deduplicate based only on the displayed name or location label.
- The same subscription was imported twice: Two groups have the same URL, similar content, and matching changes to their entries. Once you confirm the group you are keeping can update, delete the extra subscription record to prevent the entire group from being generated again next time.
- Subscription entries and manual copies are both present: One entry belongs to a source group, while the other was added as an independent server. If the manual copy is only for historical testing, confirm that no rule policy depends on it before deleting it.
- Different sources return the same connection: Compare the settings before deciding which copy to keep. If you still need to manage both sources independently, keep both groups and use remarks to distinguish them, so their origins do not get confused.
- Duplicates within the same source: If identical content reappears after an update, check what the source is returning. Deleting the local entries alone usually will not prevent them from being generated again on the next update.
For example, two Trojan entries pointing to port 443 on the same address may use different passwords or TLS server names. Two VLESS entries may also differ in UUID, transport, or related parameters. Compare every setting before deciding that they are duplicates. Do not change ports or disable verification to remove duplicates; that changes the connection requirements rather than organizing the list.
If duplicates return after an update, check what generated themDeleting entries locally changes what you see now; organizing the source affects future updates. First find which subscription generated the extra entries, then address repeated imports or duplicate source content. Do not repeatedly delete the same entries while keeping the duplicate subscription that generates them.
Remove an inactive subscription: confirm what has failed before removing its source
A failed update does not mean a subscription has permanently stopped working. A timeout may be caused by the current network path; an authentication error may mean the link has expired or the credentials have changed; if the subscription updates but some connections fail, check the server settings and reachability separately. Distinguish “unable to fetch the subscription” from “unable to connect to a server” to avoid deleting a source that still works.
- In Home, identify the affected group and note the error message and network conditions at the time.
- Open that subscription’s edit screen and check that the URL is complete, especially that query parameters have not been cut off or followed by extra spaces.
- If a direct fetch times out and you already have a working proxy, check Settings → Subscribe → Update via Proxy, then retry that source on its own. Note the original setting before changing it.
- Once you confirm that a source is no longer needed, switch to a working server in a group you are keeping. Then use the delete action for that subscription record in Home, and check whether the confirmation dialog refers to the entire subscription or just one server.
- Return to Config and check whether any custom policies refer to a deleted name. Then test destinations that should connect directly and those that should use a proxy.
If you need automatic connections, also check Settings → On Demand. On Demand controls when a connection is triggered; it does not restore deleted subscriptions. Even if a connection starts automatically while you are organizing, that does not mean it is using the entry you just kept. Confirm the selected entry in Home and the policy that actually matches.
FAQ: Updates, duplicate names, and connection changes
Why do duplicate servers come back after I delete them?
Return to Home and check which subscription group they belong to. If the same URL was saved twice, keep one active source. If the duplicates come from the same source content, deleting them locally will not change what the source returns. Do not import the subscription again to fix the issue; that could create a third copy.
Two servers have the same name. Can I delete one?
Do not rely on names alone. Open each entry’s edit screen and compare the protocol, address, port, authentication, and transport parameters on your device. After confirming that they match, check whether the entry you plan to remove is referenced by the active config. When asking for help, do not share passwords, UUIDs, or complete subscription URLs.
Why isn’t the server at the top of the list being used?
Sorting does not select a server for you. First check the selected server in Home, then check Global Routing. If you use Config, also check its active rules and policy groups. If a request matches DIRECT, reordering servers will not change its direct connection.
Should I delete and re-add a subscription when an update fails?
Keep the existing record for now and check the URL, error message, and update settings under Settings → Subscribe. Adding it again will not automatically fix an authentication failure or network timeout, and may create a duplicate group. If the source details have changed, edit the existing record and try again.
How can I make sure I haven’t missed anything?
Update each group once, then check its source remarks, entry count, and selected server. Test your usual destinations as well. For a closer look at rules, see the Routing Rules guide. For automatic connections and subscription settings, see Features & Settings.