A vague brief does not get a vague price. It gets a high one, because the only honest response to an unclear scope is to price the worst plausible version of it.
What actually changes the number
Page count is the obvious one, but it is the least useful on its own. Twenty pages built from six repeated components is a smaller job than six pages that each need their own layout. Say how much of the site is templated.
Then: how much content already exists in final form, who signs off and how many of them there are, what has to be migrated rather than rewritten, and which integrations are non-negotiable.
Say what is fixed
Deadline, budget, or scope. At least one of the three has to be fixed for an estimate to mean anything, and it is worth deciding internally which one before the conversation starts.
Include the constraints you think are embarrassing
The legacy system nobody wants to touch, the stakeholder who changes their mind, the content that has been almost ready for a year. These surface in week three regardless. Naming them up front moves them from risk premium into plan.
