The standard pitch is that SEO takes time, so you need to commit for a year. The time part is true. The commitment part does not follow. Nothing about a twelve month contract makes the work better. What it does is guarantee revenue whether or not the agency performs, which removes the only pressure that reliably gets small clients serviced. Agencies with a lot of accounts and thin staffing need those contracts. You do not.
If you do sign one, make it earn its length. Put a deliverable schedule in the contract: how many pages per month, how much content, what profile work, what reporting and when. Add a performance out, something like thirty days notice after month four if deliverables are missed. Make sure you own the domain, the site, the content and every account. And cap what happens on cancellation, because exit fees and withheld logins are where this gets ugly.
What should make you walk: a contract you cannot cancel for any reason, auto renewal buried in the terms, no deliverables listed, ownership of your site or profile sitting with them, or a salesperson who gets uncomfortable when you ask to start on a shorter term. Heights publishes month to month with no contract on purpose. Whoever you hire, the question to ask is simple: if this is not working in month five, what exactly can I do about it?
Send the site over. We will tell you what is broken, what you could rank for, and whether AI search knows you exist. No charge and no pitch deck.