In a transaction bitcoin, there is not information on the recipient, right?
Correct, the address/script that the payment is sent to does not have any user or wallet-identifying information included in it.
How do services such as blockchain.com track information about a transaction, from which wallets have they started and to which wallets have they arrived?
Simply: by making a guess based on certain heuristics. As @torkel mentioned, the ownership of some addresses are publicly known (eg donation addresses, known exchange cold wallets, etc), but for many addresses, the service will just algorithmically group addresses, based on certain spending patterns/conditions. Note that in many cases, these guesses may be incorrect, it is extremely difficult to be absolutely certain about the nature of each transaction output, without being party to the transaction.
As a user, having your wallet addresses identified and grouped is very bad for privacy, and for the fungibility of Bitcoin in general. So there are many techniques being developed and deployed to break the heuristics used by analysis services, for example P2EP coinjoin transactions are effective in breaking some of the most simple heuristics used (all of the inputs for a transaction belong to the same wallet).
This paper from 2013 lists some of the analysis heuristics that chain analysis services may be using. To quote the two most basic heuristics discussed in the paper:
HEURISTIC1.If two (or more) addresses are inputs to the sametransaction, they are controlled by the same user; i.e., for any trans-actiont, allpk∈inputs(t)are controlled by the same user.
HEURISTIC2.The one-time change address is controlled bythe same user as the input addresses; i.e., for any transactiont, thecontroller ofinputs(t)also controls the one-time change addresspk∈outputs(t)(if such an address exists).