Unverified, or claimed by someone else
An unverified profile loses map pack visibility, and you often cannot tell from the outside. Worse is a profile someone else controls: a previous web designer, an agency you left, or a listing Google generated on its own that you never claimed. You end up competing against your own listing.
The wrong primary category
The primary category does more work than any other field. A plumber filed under "handyman" is invisible for plumbing searches, and the difference between "electrician" and "electrical installation service" is not cosmetic. Categories are also the field most often set once, at setup, by someone guessing.
Service areas set as a radius, not as places
If you travel to customers rather than seeing them at a premises, how the service area is configured changes where you appear. A radius drawn round Swansea city centre will not get you found in Gorseinon.
Hours, holidays and the details Google trusts
Opening hours that go stale, no holiday hours, no services listed, no products, no Q&A, three photographs from 2019. None of these is dramatic on its own. Together they tell Google the listing is neglected, and it ranks accordingly.
NAP that does not match
Name, address and phone number appearing differently across Yell, Checkatrade, Facebook and your own site. Google corroborates your listing against the rest of the web, and inconsistency weakens it.