A useful Upwork proposal for a website is a short plan, not a cover letter. The client already has a pile of bids that start with "I read your post carefully" and then talk about the freelancer. Yours should talk about their site: which pages, what you will and will not build, how long it takes, and what it costs.
Use this for small website jobs: a landing page, a five-page business site, a redesign of an existing brochure site. Do not stretch the same template over a product build with logins, payments, and a mobile app. That job needs a different scope, and pretending it is "just a website" is how fixed-price contracts explode.
Open with their job, not your bio
The first two lines should prove you read the post. Mention the page types they asked for, the tool if they named one, or the problem if they described one ("the current site does not work on a phone"). If you cannot do that, you do not know enough to bid. Close the tab and save the Connects.
Skip the greeting paragraph about how excited you are. Skip the years-of-experience sentence until after the plan. A client with twelve proposals open will not hunt for the price under your autobiography.
The scope you are willing to sign
Write the deliverable as a list the client could paste into a contract.
The pages included, by name
Whether you provide the words and photos or they do
How the site is built (for example a small Next.js site, or a theme on their existing CMS)
What "done" means: responsive layout, basic contact form, deployed to their host
How many revision rounds are included
What is not included: logo design, copywriting, a shop, ongoing edits, SEO retainers
That list is the template. The sentences around it change per client. The boundaries should not. If a post says "and anything else we need," answer with a line that extra pages are a separate milestone. Silence reads as a yes.
Price and time on purpose
Put the price in the proposal. Making them ask is not a negotiation tactic. It is a way to get archived.
For a fixed-price site, give one number tied to the list above, plus a rough duration in weeks, not hours you cannot defend. If the post has a budget that is far under the work, say what their budget covers (often a single landing page) and what the full site would cost. Do not quietly accept a $200 build for eight pages so you can "get a review." The review will describe the rushed site you agreed to build.
Hourly can fit a redesign where the current site is a mess and nobody knows the size yet. Say the rate, a weekly cap, and the first chunk of work you will do so the first invoice is not a surprise. If they want a fixed date and a fixed price, do not force hourly because it feels safer to you.
Proof, once
After the plan, one portfolio link that looks like their job. A sentence on what you did. If you have no client site yet, link the demo that matches, and say it is a demo. Two links is the maximum. Five links is a brochure.
Do not attach a generic PDF of your whole career. Upwork already shows the profile. The proposal is for this project.
Questions that change the price
Ask only what you need before you can keep the number honest.
Do they already have hosting and a domain?
Who writes the text?
Is there a brand color and logo, or is that in scope?
Is the date a launch date or a first-draft date?
Three questions is plenty. A questionnaire of fifteen items feels like homework, and many clients will not answer. If a missing answer would double the work, ask it. If it would not, decide a default and state the default in the scope ("I will use your existing logo; a new logo is extra").
After you send it
Do not refresh the job every ten minutes and rewrite the proposal in place unless you spotted a factual mistake. A second version rarely reaches a client who already opened the first. If they reply with a new page or a lower budget, answer with an updated list and a new price. If they reply with "can you do it today for half," the template's job is to let you say no without writing a new personality.
Save the scope list you used. The next website proposal should start from that list, then change the page names. That is the whole reuse. The client's name and the first two lines stay unique.
A shape you can paste, then edit
Use this order every time:
Two lines that restate their site and the result.
The page list and what "done" includes.
Price, timeline, and revision count.
One relevant link.
One or two questions, or a single next step ("If this matches, send an offer with the page list above and I will start on the funded milestone").
Then delete any line that does not mention their project or the scope. Read it once out loud. If you hear a slogan, cut the slogan.
Send that, and stop editing it for an hour. A perfect proposal sent tomorrow loses to a clear one sent while the client is still in the inbox. The profile can keep doing its job in the background. The proposal only works if it is specific and short enough to finish.







