In a bitcoin transaction, there is no information about the recipient, right?
Correct, the address / script to which the payment is sent does not have user identification or wallet information included.
How can services like blockchain.com track information about a transaction, what wallets have started from and what wallets have arrived?
Simply: making a guess Based on certain heuristics. As mentioned in @torkel, the ownership of some addresses is publicly known (for example, donation addresses, known cold exchange portfolios, etc.), but for many addresses, the service will only algorithmically aggregate the addresses, according to certain patterns / spending conditions. Keep in mind that in many cases, these conjectures may be incorrect, it is extremely difficult to be absolutely sure about the nature of each transaction output, without being a party to the transaction.
As a user, having identified and grouped the addresses of your wallet is very bad for privacy and for the fungibility of Bitcoin in general. Therefore, many techniques are being developed and deployed to break the heuristics used by the analysis services, for example, the P2EP union transactions are effective in breaking some of the simplest heuristics used (all entries for a transaction belong to the same portfolio).
This 2013 document lists some of the analysis heuristics that string analysis services may be using. To cite the two most basic heuristics discussed in the article:
HEURISTIC1.If two (or more) addresses are inputs to the sam transaction, they are controlled by the same user; that is, for any transaction, allpkpinputs (t) are controlled by the same user.
HEURISTIC2.The one-time change direction is controlled by the same user as the entry addresses; that is, for any transaction, the input controller (t) also controls the one-time change addresspk∈outputs (t) (if such an address exists).