An extremely valuable point, made by theflyerexpert but lost in the conversation, is before choosing a solution understand your business requirements.
The process is simple, but often forgotten and lost in 'design' and 'technology'.
If small businesses try and think more like big businesses they are less likely to be had over by poor webdesign companies, SEO companies and other snakeoil salesmen.
So the first question is what is your business requirements.
Functional requirement, technical requirements, design and vendor selection all come much further down the line.
Every business is different and will have different requirements for their online systems, some will just want a notional web presence, others will want to generate off line sales through online contacts, others may want to augment offline sales with online sales, others may want to great an online retail presence, others may want to streamline their distribution processes, others may want to manage appointments, others may want to cut the cost of their support staff........ the list is endless.
- Business Requirements.
- Functional & Non functional requirements.
- Solution Selection.
- Implementation partner selection (as to the OP, what do they want from a their webdesign company)
The requirements of the last on the list will depend on the the former, simply put, if for some reason the solution is required NOT to be open source, the webdesign companies selected would have to specialise in bespoke coding not open source implementation.
(Regarding SEO, there are actually many websites / online presences that don't want random traffic from Google )