A moving company sells two businesses that look like one. A two-bedroom apartment going across town and a household going from Austin to Denver share a truck and almost nothing else — not the price, not the sales cycle, not the person doing the searching. The Google Ads account sees one keyword list and one pot of money, and it spends accordingly.
Google Ads works for a mover when local and long-distance are separate campaigns, when the searches that end at a rental truck or a job application are kept out, and when the account is read by lane — where the person is and where they are going — rather than on a blended cost per lead. The rest is upkeep, done often enough that it does not pile up.
This guide is that split and the monthly review that follows it, run from a chat window. If your assistant is connected to the account, the reading takes one message and your time goes on the decisions instead.
Why can a local move and a long-distance move not share a campaign?
Because they are not the same product. A local move is worth a few hundred dollars and closes in days; a long-distance move is worth several thousand and closes in weeks. A shared budget always drifts to whichever one converts faster, which is the cheap one.
Three things are true of this trade that are not true of most local services.
- The money is an order of magnitude apart. A local two-bedroom move is a few hundred dollars to about fifteen hundred. An interstate household move is several thousand. Put them in one campaign and the budget drains into the local job, because the local job converts more often and converts faster — Smart Bidding is doing exactly what it was told.
- The sales cycle is not the same shape. Local moves are quoted and booked days ahead, often on one phone call. A long-distance move is quoted weeks or months ahead, frequently after a video or in-home survey, and almost always against two or three other bids. The second one needs patience and a budget that survives the wait.
- The search itself is different. Movers near me has no destination in it. Austin to Denver movers has one, and that destination is the single most valuable fact in the query. The account has nowhere to put it except the keyword, the ad and the landing page.
Put those together and a mover's account can spend most of the year winning the cheapest half of its own business.
How should a moving company structure its campaigns?
The rule is the one that governs every account. If you would be unhappy to see the budget move from one service to another on its own, they are separate campaigns.
- Local separate from long-distance, always. This single split decides where the year's money goes. Everything else below is a refinement of it.
- Split long-distance by lane when a lane carries the business. If most of your outbound work runs one or two corridors, those corridors deserve their own budgets rather than a share of a campaign called Long Distance. If the work is scattered, keep one long-distance campaign and put the lanes in separate ad groups, so the report still reads by destination.
- Commercial and office moves are not residential work. An office manager scheduling a weekend relocation and a family moving an apartment are two buyers with two sales cycles and two price expectations. If you chase both, that is two campaigns.
- Storage is a product, not a stray keyword. If you rent storage, give it its own campaign and let it be judged on its own. If you do not, every storage search in the account is a leak.
- Specialty work only if you actually do it. Piano, pool table, fine art, safes, vehicle transport. These are good, expensive searches and terrible money if the answer on the phone is no.
- Keep what you do not sell out of the keyword list entirely. Truck rental, freight, international container shipping, junk removal. To a searcher those are separate businesses, and to broad match they are neighbours.
Which searches waste a mover's budget?
Five kinds: rental trucks and DIY, jobs and hiring, storage on its own, boxes and supplies, and destinations or services you do not cover. Together they are the bulk of what a moving account spends on people who will never book anything.
Here is the shape of it on a small residential account over 30 days. The figures are illustrative, not a customer's results.
| Search term | Spent | Conversions |
|---|---|---|
| u haul truck rental prices | $44 | 0 |
| moving company jobs hiring | $28 | 0 |
| storage units near me | $23 | 0 |
| cheap moving boxes | $16 | 0 |
Five categories cover most of it:
- Rental trucks and DIY. The rental brands, truck rental, trailer, hitch, how to pack, moving checklist, and anything beside do it yourself. This is the largest leak in the trade and the least obvious one, because a rental brand sits beside the word moving in everybody's vocabulary, including broad match's.
- Jobs and hiring. Movers hiring, moving company jobs, mover salary, CDL, helper wanted. Every trade that employs crews pays for this one, and the queries are cheap enough to go unnoticed for months.
- Storage on its own. Storage units, self storage, climate controlled, storage near me. If storage is a product you sell, it belongs in a campaign; if it is not, it belongs in the negative list.
- Boxes and supplies. Moving boxes, packing tape, bubble wrap, wardrobe boxes, free boxes. Somebody buying twenty boxes is doing the move themselves.
- Outside your coverage. Destinations you do not run, international or overseas shipping, car transport, freight, junk removal. Add the business-side tail while you are there: moving company for sale, moving leads, dispatch software.
The free Google Ads waste audit runs this filter for you and returns the queries, the cost behind each one, and the negatives it proposes.
The general version of that filter is the spend-over-threshold check, and picking the match type and the level for each negative is its own decision. The same drill reads differently in every trade: in a repair shop the wasted half is a parts catalogue, and here it is a rental truck.
Can you target where a move is going?
No. Google Ads location targeting describes where the searcher is, never where the move is going — the destination exists only in your keywords, your ad and your landing page. What you can read afterwards is the geography twice: the user location, where the person physically was, and the location of interest, the place they were searching about.
For a mover those two columns are the two ends of the job, and no other local trade has a second end.
Three consequences follow, and they are the reason this account is read differently from any other.
- Location targeting only describes the origin. You can target Austin. You cannot target moves to Denver. The destination exists only in your keywords, your ad text and your landing page, so if the long-distance campaign is not built around destination terms, the account has no idea which lanes it is buying.
- "Presence or interest" lets the other end buy your ads. That setting serves people who are in a targeted location or who have shown interest in it, so a person sitting in Chicago searching for Austin movers is inside an Austin-targeted campaign. For a mover that is sometimes exactly right — inbound work is real work — and sometimes it is a quarter of the budget going to people whose move you would never quote. It is a decision, not a default to leave alone.
- The two reports answer two different questions. User locations tell you which origins are paying for themselves, which is a budget question. Locations of interest tell you which destinations people are asking about, which is a sales question — and it is demand data you cannot get anywhere else. A destination that keeps appearing and that you do not run is a negative keyword. One that keeps appearing and that you do run, but never advertise, is a campaign waiting to be built.
Checkpoint 7 of the 30-minute audit is the generic version of this — geo and schedule leakage. A mover runs it twice, once per column.
Read the account from the chat
The waste check and the geography read are one conversation. Fill in the brackets with what you run and what you do not — none of which the account knows.
Review the last 30 days of my Google Ads account for a moving company. We do [local moves within <metro>] and [long-distance moves out of <metro>] to [the lanes we actually run]. We do not do [storage, international shipping, car transport or junk removal]. Show cost, clicks, conversions and cost per conversion by campaign, and separately for local and for long-distance. Show the geographic data both ways — by user location and by location of interest — with cost and conversions for each. List the search terms with spend and no conversions, split into clearly irrelevant and uncertain, and label each one rental truck or DIY, a job seeker, storage, supplies, or a destination we do not serve. Flag any destination that appears often enough to deserve its own campaign, and any we are paying for but do not serve. Recommend negative keywords with match types and the level each belongs at. Do not change anything.
Four clauses are doing the work. Naming the lanes you run turns a fact the account cannot see into a filter it can apply. The both-ways geographic request is the line no generic prompt contains, and it is the one that produces the destination list. Splitting clearly irrelevant from uncertain stops a confident model from blocking queries that were merely unproven. And do not change anything keeps the message a read: nothing reaches the account until you approve it. That is one prompt for one job; the 37-prompt ChatGPT library covers the copy, keyword and reporting work around it.
Approve the changes one at a time
What comes back should be a decision list, not a data dump.
| Campaign | 30-day spend | Conversions | Proposal |
|---|---|---|---|
| Local — residential | $980 | 31 | Hold |
| Long distance — outbound | $740 | 6 | Raise 20% — the quotes cost more and are worth more |
| Storage | $160 | 1 | Pause — we do not sell storage |
| Commercial / office | $220 | 2 | Uncertain — two quotes is not a signal |
The long-distance row is the one worth arguing with. Six conversions at about $123 a quote looks indefensible next to local's $32 until you put the two job values beside them, and then it is the better buy by a distance. A blended cost per lead across local and long-distance is not a number about your business. Read cost per conversion per campaign, never the account average, and judge each campaign against what that lane is worth.
The storage row is the easy one, and it is the most common finding in this trade: a campaign or an ad group quietly buying a product the company does not sell. The uncertain row stays yours — two quotes is a coin toss.
What should a moving company count as a conversion?
Calls from the ad, calls from the website and quote-request forms, counted as three separate conversions, with the lane attached wherever you can attach it — and booked moves rather than quotes wherever the CRM allows it.
None of this means anything if the account cannot see an outcome, and moving sells by phone far more than by form.
- Track calls from the ad, calls from the website and quote-request forms as three separate conversions, so you can tell which one the money is actually buying.
- Put the lane into the conversion where you can. Even a hidden form field carrying the destination, or a separate quote form on the long-distance landing page, makes the whole account readable afterwards. Without it, every report blends the two businesses back together.
- A quote is not a booked move, and movers quote far more than they book. Where your CRM allows it, get the booked value back into the account; until then, cost per quote is the ceiling of what anyone — you or the assistant — can honestly judge.
- Count one meaningful action per enquiry. Counting every page view teaches Smart Bidding to buy browsing.
The half the assistant cannot decide
An assistant reads what the account records. It does not know which trucks are free in three weeks, whether a lane has a return load waiting, or that you have stopped taking a destination because the last two jobs lost money. The judgement stays yours, and the useful thing you can do is hand over the context it is missing:
- Which lanes you will actually take next month, and which you would rather not.
- Whether you want inbound moves — people moving to your city — or only outbound ones.
- What an interstate job is worth against four local ones.
- What capacity looks like in July, when everybody moves at once and your crews do not multiply.
Say those out loud in the same conversation and the next review is better, because the model stops guessing at the economics of a moving company and starts using yours.
How often should you review the account?
Once a month. Lanes and destinations shift over weeks rather than days, and a week of search terms in this trade is noise. Each read is the prompt above with the lane list updated. In ChatGPT you can save it as a scheduled Task and it runs on its own; Claude has no scheduler, so treat the cadence as a habit and connect it the same way — the prompt works unchanged in either one.
Between months, the things that break fast still need a shorter loop: the ten-minute weekly review catches a dead conversion tag or a capped budget long before a monthly read would. The same reports have a profitable half worth reading — the destinations and queries that converted without ever being keywords, which the keyword research walkthrough promotes into the account, and which in this trade is how a new lane announces itself. And once a quarter, the whole account deserves the full 30-minute audit behind it.
