--dry-run is non-negotiable
-n (or --dry-run) shows exactly what rsync would do without doing it. Use it religiously, especially with anything destructive. The cost is one extra command; the upside is never accidentally deleting your work.
--delete makes destination a mirror
--delete removes files at the destination that don't exist at the source. This makes sync a true mirror operation. It's powerful and dangerous in equal measure — combined with the wrong trailing slash, it can wipe out the wrong directory in seconds.
Backup-and-delete: --backup-dir
If you want delete safety, use --backup --backup-dir=/some/path to move "deleted" files into a backup directory instead of removing them. They stick around long enough to recover from a mistake. Pair it with a dated subdirectory and you have a poor man's snapshot system.