Guides

How to scope and price a WordPress rebuild (for agencies)

Scope and price a WordPress rebuild without overruns — discovery questions, phase-by-phase scope, pricing models, per-page migration pricing, and…

7 min readUpdated 10 June 2026

verifiedReviewed by Tommy Smith,Content Director

Scoping and pricing a WordPress rebuild project
boltIn short

Scope a rebuild by phase (discovery, design, blocks, migration, SEO, QA, launch) and price content migration separately per page. Get the real page count from the sitemap, not the client guess. Use a written change-request process.

Most rebuilds overrun for the same reason: they are scoped as a design project when they are really a migration project. The new look gets all the attention in the proposal, while the genuinely time-consuming work — moving hundreds of pages of content into a new block structure — is hand-waved as an afterthought. Here is how to scope and price a rebuild so the numbers actually hold, the client understands where money goes, and your team is not eating margin on page 47 of a copy-paste marathon.

We have seen agencies lose thousands on under-scoped migrations and win retainers on rebuilds quoted with transparent per-page line items. The difference is not talent — it is measurement before the number goes on the slide.

Start with discovery, not a number

You cannot price what you have not measured. Before you quote, get answers to these:

  • arrow_rightHow many pages, really? Pull the sitemap and analytics top-pages — not the client guess.
  • arrow_rightWhat is the current build? Theme, page builder, ACF — it decides how content migrates.
  • arrow_rightWhich pages actually earn? Traffic and conversions, so you prioritise and do not over-scope.
  • arrow_rightWho owns content and sign-off? Bottlenecks here are the number-one cause of overrun.
  • arrow_rightAny integrations? Forms, CRM, e-commerce, memberships — scope each one explicitly.
  • arrow_rightURL structure changing? Redirects and SEO preservation are a fixed line item, not implied.
infoGet the real page count from the sitemap and analytics, not the client estimate. It is the number everything else scales from — and it is almost always higher than they think.

Scope by phase

Break the project into phases you can estimate and bill independently. This also makes it obvious where a delay — usually content — will bite.

  • arrow_rightDiscovery and content inventory — sitemap, analytics, builder audit, URL map.
  • arrow_rightDesign / template system — Figma, component library, responsive breakpoints.
  • arrow_rightACF block library build — register blocks, field groups, local JSON, editor guide.
  • arrow_rightContent migration — crawl, map, review, import per page.
  • arrow_rightSEO — redirects, metadata, structured data, Search Console baseline.
  • arrow_rightQA, accessibility and performance — cross-browser, Lighthouse, forms, checkout.
  • arrow_rightLaunch and post-launch monitoring — cutover, 404 watch, week 1 and week 4 reports.

Estimating effort

Separate the one-time build (templates and blocks) from the per-page migration effort. Your block library is a reusable asset; migration scales with the number of pages. Conflating the two is how estimates go wrong. A 15-block library is built once; 80 pages of content migration is eighty units of work.

The migration line item

Price content migration per page. It is legible to clients, maps cleanly to effort, and maps directly to AIRA credits (1 credit = 1 page) — so your cost and your price move together. Define what one page includes: crawl, classification, review, import, one round of client amends. Exclusions: net-new copywriting, pages added after sign-off, custom post types requiring separate tooling.

Pricing models

ModelBest forWatch out for
Fixed priceTight, known scopeNeeds a firm change-request process
Time and materialsDiscovery-heavy workCap it with a not-to-exceed
Per-page migrationThe content moveDefine what one page includes
Retainer phasesLong client relationshipsClear phase gates and sign-off

A sample estimate

A line-item estimate makes the work — and your margin — legible. Here is the shape of one for a 45-page marketing site leaving Elementor:

Line itemBasisNotes
Discovery and inventoryFixedSitemap, analytics, content audit
Block library (ACF)Per blockReusable across the build
Template buildPer templateHome, landing, post, archive
Content migrationPer page × 45Crawl, map, review, import
SEO and redirectsFixedMetadata plus 301 map
QA and launchFixedCross-browser, performance, go-live
Post-launch monitoringFixedWeeks 1–4 Search Console watch

Builder-specific scope adjustments

Elementor, Divi and WPBakery sites need section-level migration — not theme swap pricing. Add contingency for global templates, popups, and forms. Webflow handovers need crawl-and-map, not export-only. Classic Editor brochure sites are faster. WooCommerce rebuilds split marketing pages (migrate) from products (stay in DB). See page builder exit guide and builder-specific migration posts.

Presenting the quote and protecting scope

  • arrow_rightQuote by phase so the client sees where the money goes.
  • arrow_rightMake the content deadline an explicit dependency — your timeline rests on it.
  • arrow_rightPut a written change-request process in the contract, not just a conversation.
  • arrow_rightOn T&M work, give a not-to-exceed so the client feels safe.
  • arrow_rightShow per-page migration as its own line — not buried in 'development'.
  • arrow_rightInclude post-launch monitoring — prevents 'SEO is broken' panic on day five.

Scope-creep red flags

  • arrow_right'While we are at it' new features mid-build — route them to a change request.
  • arrow_rightContent not ready by the agreed date, stalling migration and QA.
  • arrow_rightDesign changes after templates are signed off.
  • arrow_rightUndisclosed pages, languages or integrations surfacing late.
  • arrow_rightClient adding pages after migration crawl — re-scope per page.
  • arrow_rightSEO treated as free because 'we already have Yoast' — redirects still take hours.

Tooling cost in your margin

If you use AIRA for migration, credit cost is a direct COGS line. Fifty pages at per-credit pricing is predictable — fold it into your per-page migration rate with margin on top. Compare to three dev days of manual copy-paste at £75/hour. See AIRA vs manual migration and pricing. Agencies often standardise block libraries so migration cost drops on project two.

Timeline dependencies

For the timeline side, see how long a WordPress rebuild takes. Migration cannot finish until blocks are registered and content is approved. QA cannot finish until migration is done. Launch cannot happen until redirects are loaded. Draw the dependency chain in the proposal — clients understand why a two-week content delay pushes launch.

What to deliver at each phase gate

  1. 1Discovery: sitemap export, URL map, analytics top-20, signed scope document.
  2. 2Design: approved Figma, template list, block inventory.
  3. 3Build: staging with all blocks registered, editor guide draft.
  4. 4Migration: draft pages imported, review log, redirect map CSV.
  5. 5QA: checklist signed off, Lighthouse before/after, form test results.
  6. 6Launch: go-live confirmation, monitoring spreadsheet, week 1 report.

Discovery questions checklist

QuestionWhy it mattersWhere to look
Exact page count?Scales migration line itemXML sitemap + Screaming Frog
Top 20 traffic pages?Prioritise QA and reviewGA4 landing pages
Current page builder?Migration complexityPlugin list + page editor
URL structure changing?Redirect scopeOld vs new sitemap diff
Who approves content?Timeline riskClient stakeholder map
Multilingual?Per-locale page multiplierWPML / Polylang audit
Forms and integrations?Separate line itemsPlugin + CRM inventory

Margin worked example

45-page rebuild: you quote £120/page migration (£5,400 client revenue). AIRA credits cost ~£35 COGS at agency tier. Dev review time: 6 hours at £75 internal cost (£450). Total migration COGS ~£485 against £5,400 — strong margin if blocks are pre-built. Same project manual: 3 dev days (£1,800 internal) plus re-work risk. The per-page line item makes this maths visible in the proposal spreadsheet.

Contract clauses that protect you

  • arrow_rightContent delivery deadline with automatic timeline extension clause.
  • arrow_rightChange request form required for scope additions — signed before work starts.
  • arrow_rightPage count cap with per-page rate for pages beyond inventory.
  • arrow_rightClient sign-off gates between phases — no migration until design approved.
  • arrow_rightThird-party plugin licence costs excluded unless explicitly included.
  • arrow_rightPost-launch monitoring period defined — not indefinite free SEO support.

Vertical-specific adjustments

Law firms: fewer pages but higher compliance review — add legal sign-off time. E-commerce: split marketing pages from product templates — see WooCommerce rebuild guide. Membership sites: gated content may not crawl publicly — scope manual paths. Healthcare: accessibility audit line item is non-optional. Adjust the template, not just the page count.

Workshop: running a scoping call in 45 minutes

  1. 1Minutes 0–10: pull sitemap live on screen, count pages with client watching.
  2. 2Minutes 10–20: open GA4, show top landing pages — which matter most.
  3. 3Minutes 20–30: identify page builder and plugin inventory.
  4. 4Minutes 30–40: confirm URL changes, integrations, content owner.
  5. 5Minutes 40–45: outline phase structure and ballpark per-page migration rate.

Red flags that mean pad the quote

  • arrow_rightClient says 'about twenty pages' but sitemap shows 80.
  • arrow_right'We might redesign the homepage again' after Figma was approved.
  • arrow_rightUndocumented multilingual setup nobody mentioned in the brief.
  • arrow_rightCustom ERP or CRM integration 'that should just keep working'.
  • arrow_rightPrevious agency used three different builders across page generations.
  • arrow_rightNo access to analytics or old hosting — discovery will take longer.

Presenting migration as value, not cost

Clients see migration as invisible work — they want the new design. Frame per-page migration as 'every page of your existing content preserved in an editable format on the new site'. That is tangible value. Pair with before/after editor screenshots: Elementor backend vs clean ACF fields. The line item stops feeling like padding and starts feeling like insurance against content loss.

AIRA credits in your COGS spreadsheet

Add a row: pages migrated × credit cost = tooling COGS. Compare to estimated manual hours × internal rate. The delta is your margin story in the project retrospective. Share it with the team so the next rebuild quote gets sharper — not padded, not undercut.

The proposal that hides migration cost is the project that hides overrun until month two.

Protect rankings with the SEO checklist and post-launch monitoring.

Attach the right deep-dive to client SOWs so discovery surprises become line items. Builder exits: page builder migration hub. CPTs and portfolios: CPT migration — often under-scoped. Platform moves: Webflow, WordPress.com. Timeline framing: how long a rebuild takes.

Free download

The WordPress Rebuild Scoping & Pricing Kit

The discovery questions, phase-by-phase scope, pricing models and a sample line-item estimate we use to quote a rebuild without surprises.

  • check_circleDiscovery questions to ask first
  • check_circleA phase-by-phase scope checklist
  • check_circleThree pricing models compared
  • check_circleA sample line-item estimate

We’ll email you the occasional migration tip. Unsubscribe any time. See our privacy policy.

Frequently asked questions

How much does a WordPress rebuild cost?expand_more

It depends almost entirely on page count and how much is bespoke. Split it: a one-time cost for templates and the ACF block library, plus a per-page cost for content migration. That structure scales predictably instead of guessing a single number.

Should I price content migration separately?expand_more

Yes. Pricing migration per page makes the largest, most variable part of the project legible to the client and keeps your margin predictable — and it maps directly to per-credit tooling costs.

How do I stop scope creep on a rebuild?expand_more

Scope by phase, make the content deadline a contractual dependency, and route every mid-build addition through a written change request. Most overruns are content delays and unscoped extras, not build complexity.

How do I get an accurate page count?expand_more

Export the XML sitemap, cross-reference with Google Analytics landing pages, and tag builder-built vs standard posts. Exclude tag and author archives unless the client explicitly wants them migrated.

Should SEO and redirects be a separate line item?expand_more

Yes. Metadata migration, redirect map creation, Search Console baseline, and post-launch monitoring are real work — often 8–16 hours on a medium site. Price them explicitly.

Fixed price or time and materials for rebuilds?expand_more

Fixed price works when discovery is thorough and change requests are contractually defined. T&M with a not-to-exceed suits exploratory rebuilds. Never fixed-price a project you have not inventoried.

How do I price ACF block development?expand_more

Per block or as a fixed library fee. Blocks are reusable — price them as an asset, not per page. A 12-block library built once serves every page on the site.

What if the client adds pages mid-project?expand_more

Change request: per-page migration rate × new pages, plus timeline impact. Run a new crawl if pages were not in the original inventory.

How do I estimate migration time per page?expand_more

Manual: 1–3 hours per complex builder page. AIRA with review: 5–15 minutes per page after blocks are built. Use these ranges to sanity-check your per-page rate.

Should I include post-launch monitoring in the quote?expand_more

Yes — at least weeks 1–4 Search Console and 404 monitoring. It prevents emergency firefighting and demonstrates SEO stewardship. See the post-launch monitoring guide.

How do agencies improve margin on rebuilds?expand_more

Standardise block libraries across clients, automate migration with tooling, price per page with COGS built in, and protect scope with phase gates. Second project on the same library is significantly more profitable.

Ryan Hale
Written by

Ryan Hale

Head of Front End Development

Ryan Hale is Head of Front End Development at AIRA, where he leads the team building the engine that migrates WordPress sites into native ACF blocks. He has spent more than a decade building and rebuilding WordPress sites for agencies, with deep, hands-on expertise in Advanced Custom Fields, Gutenberg block development, and large-scale content migrations that protect search rankings. He writes about ACF, moving off page builders like Elementor and Divi, and the practical craft of shipping fast, maintainable WordPress rebuilds.

Reviewed to our editorial guidelines.

Migrate your next rebuild with AIRA

Crawl and preview any site free. 10 credits on signup — pay only when you commit.