I've been in this industry for nearly twenty years, so let me bring up a topic without rushing, because I see companies getting stuck at the same point every year.
You have software developed by an agency, you pay for it, and the work is delivered. Who do you think owns the code? Most managers answer, "Mine, I paid for it." If it's not written in the contract, the answer isn't that clear-cut.
I see the consequences too: a company wanting to part ways with the agency can't because they can't get the code. They either pay an exorbitant transfer fee or have it rebuilt from scratch. Both are costs that wouldn't exist if a single sentence had been written upfront.
The same applies to design files, content, and the domain name. Have you ever checked whose name the domain is registered under?