Most WordPress sites that go down do not go down because of an external attack. They go down because a plugin updated to a version that conflicts with another plugin, the WordPress core auto-updated overnight, a theme update silently broke a custom field, or the hosting account ran out of disk because backups were piling up and nobody noticed. The common thread is: no one was watching, and nothing was tested before it hit production.
Proper WordPress maintenance is unglamorous and continuous. Weekly updates handled on staging first (so production never sees the break). Daily backups with quarterly tested restores (so you know recovery works). Security patches as CVEs land (so the window between disclosure and patch is minimised). Uptime monitoring on 60-second intervals (so you find out from us, not from a customer). None of this is exciting. It is what stops your business from finding out about a problem at 11pm on a Sunday.
The other failure mode is the cheap maintenance retainer that nobody actually does the work on: a cut-rate fee, plugins updated when the developer remembers, no staging, no backup verification, no security scanning. It looks like you have maintenance until something breaks, and then it turns out the last backup was three months old, the staging environment never existed, and the developer is on holiday. We do not run that retainer. Real maintenance work costs real money; we are direct about scope and what is included.