On-page SEO pricing breaks into three models: per-page optimization, monthly retainers, and project-based audits. A one-time optimization of a single page—title tags, meta descriptions, header structure, internal links, content refinement—runs $500 to $3,000 depending on complexity and content length. E-commerce product pages sit at the lower end, while pillar content or technical pages cost more because they require deeper research and schema markup. Monthly retainers for ongoing on-page work range from $2,000 to $10,000 for small to mid-sized sites (20–100 pages), and $10,000 to $30,000+ for larger properties with hundreds of pages or frequent content updates. These retainers cover continuous optimization as search intent shifts, new competitors emerge, or Google updates its ranking factors. You're paying for monitoring, testing, and iteration, not just one-and-done fixes. Project-based audits and implementation for enterprise sites or major overhauls can hit $15,000 to $50,000 or more. This includes crawling the entire site, mapping keyword-to-page assignments, fixing cannibalization, rewriting thin content, and implementing structured data across templates. The cost scales with page count, technical debt, and how much content needs rewriting versus just tweaking. DIY costs zero dollars but demands your time and a learning curve. Tools like Screaming Frog (free up to 500 URLs), Yoast, or RankMath handle the basics, but you need to understand search intent, topical authority, and how to write for humans first and algorithms second. Most business owners underestimate the time sink. At Ottawa SEO, we typically scope on-page work per site, not per page, because isolated optimizations miss the bigger picture—internal linking strategy, content hierarchy, and how pages support each other. A 50-page site might cost $8,000 to optimize thoroughly, while a 300-page e-commerce site could run $25,000+ if we're also handling product schema, faceted navigation cleanup, and category page rewrites. One-off page tweaks make sense only if the rest of the site is already solid.