What is safe, stated plainly:
Safe: the package cache, the journal beyond your retention, old kernels other than the running one and one fallback, container images and build caches you can rebuild, thumbnail and browser caches under home directories, files in temporary directories.
Safe with thought: old backups, log archives, anything under /var/lib belonging to software you no longer run.
Not safe: anything under the system binaries and libraries, configuration, or a running service's data directory. If you find yourself considering these, the disk is too small rather than too full, and the answer is more storage or moving the data.
The general rule: delete things that a program will recreate, and never things a program expects to find.