Start with a crawler like Screaming Frog or Ahrefs Site Audit to pull every page's title tag, meta description, H1, canonical tag, word count, and status code into a spreadsheet. Look for missing titles, duplicate meta descriptions, pages under 300 words, or multiple H1s. This gives you the structural skeleton in 10 minutes. Then spot-check 10-15 representative pages manually. Open the HTML source and verify the title matches search intent, the H1 isn't just a keyword dump, and H2/H3 tags create a logical outline. Check if the content answers the query in the first 150 words or if it buries the point after fluff. Look at internal links—pages should link to 3-5 related pages with descriptive anchor text, not generic "click here" garbage. Run each page through PageSpeed Insights. Anything under 60 on mobile needs work. Common killers: uncompressed images over 200 KB, render-blocking CSS, or no lazy loading. Check image alt text in the crawler export—20-30% missing alt tags is normal but fixable. Use Google Search Console's Page Indexing report to find pages Google won't index due to noindex tags, soft 404s, or redirect chains. Cross-reference with your sitemap. If important pages aren't indexed, your on-page work is invisible. Finally, compare your top 5 pages against competitors ranking 1-3 for the same keywords. Use Surfer SEO or Clearscope to see if you're missing semantic terms, if your content is too thin (competitor has 1800 words, you have 600), or if their internal linking is tighter. We run this audit quarterly for our portfolio—it catches title tag drift, content decay, and technical rot before rankings drop. Most sites have 40-60 fixable on-page issues in the first pass, then 10-15 per quarter after that.