Metadata is an element of a Cardano transaction that can be inputed by the user or automatically generated. It is stored on the blockchain with the transaction that it was sent with. This means that, just like the transactions themselves, metadata is immutable, i.e. unchangeable, and stored forever on the Cardano blockchain.
Anyone can add metadata into a transaction and that metadata is then stored on the blockchain. Many wallets allow you to add custom metadata to a transaction.
Metadata can only be made up of characters i.e. numbers, letters and punctuation, and cannot be a file type, i.e. you cannot unload files like PDFs or MP3s to the blockchain. The size of the metadata you can add to a transactions is limited to 16KB, and a character is, typically, 1 Byte, so that means you can add up to 1600 characters as metadata with any transaction.
Metadata can be used for many purposes the most common is to give some form of context to the transaction. Metadata has been used to store supply chain data, to send arbitrary message to be stored on the blockchain, and to store the hash of a document (allowing the blockchain to be used for proof-of-existence). People have used metadata, on the testnet, to immortalize the Cardano whitepaper, by writing it onto the blockchain as transactions across multiple transactions.
Many block explorers allow users to view and search transaction metadata. Remember, anything you add as metadata to a transaction will always be publicly available on the blockchain.