Start with relevant experience, not the number of logos on the website. Request a couple of engagements that match your domain and your stack, and php development agency then ask who actually wrote that code. A solid partner will put you on a call with the web development tech stack lead. Answers that name nobody at this stage generally mean you are talking to a reseller.
The agreement deserves a slower read than the pitch. A few clauses carry most of the weight: ownership of the code, non-disclosure, and exit terms and handover. All the work product has to transfer to you once invoices are settled, including documentation, pipelines and deployment scripts. Watch for language that leaves framework code in the vendor’s hands, as it is usually the dependency that makes switching painful.
Ask how they estimate. A serious estimate comes with a list of assumptions, a breakdown per feature and a best case and a worst case. A fixed price only makes sense when the requirements are stable and documented; in any other case the supplier pads the number and you pay for it anyway. Hourly billing moves the risk back to the client, so it requires visible weekly reporting and a spending cap.
Process matters more than headcount. Ask what happens when the scope changes, who writes the acceptance criteria and how quality assurance works. A mature team will be able to demonstrate running software rather than status reports. Acceptance criteria in writing stay your only real protection against an argument at delivery time.
Last, consider the day you no longer need this vendor before it becomes urgent. Ask that the source repository sits in your organisation from the first commit, and that a readme and architecture notes are kept current as the code changes. A partner who is comfortable with this will agree quickly; resistance at this point tells you a great deal.
