Speed & SEO Optimization

We performed a complete speed and SEO optimization for Northwell Partners — taking page load time from 7.2s to 1.4s, lifting Google PageSpeed from 24 to 96 (mobile), growing organic traffic 284%, achieving 42 first-page keyword rankings from zero, and transforming a slow, invisible WordPress site into a fast, high-ranking client acquisition machine.

Client NameNorthwell Partners (Showcase Project)
IndustryFinancial Advisory / Wealth Management (Global)
Project Duration5 Weeks
Services DeliveredComprehensive Speed Audit & Optimization, Core Web Vitals Remediation, Server & Hosting Optimization, Image & Asset Optimization Pipeline, Database & Code Cleanup, Technical SEO Audit & Implementation, On-Page SEO Optimization, Schema Markup Implementation, Internal Linking Architecture, Content SEO Strategy, Local SEO (Multi-Office), SEO Monitoring & Reporting System
Tools & Platforms UsedGoogle PageSpeed Insights, GTmetrix, WebPageTest, Chrome DevTools (Lighthouse), Google Search Console, Google Analytics 4, Screaming Frog SEO Spider, Semrush, Ahrefs, Yoast SEO Premium, WP Rocket, ShortPixel, Cloudflare Pro, Perfmatters, Query Monitor, Asset CleanUp Pro, JEBI (Schema), WP-Optimize, Redis Object Cache, Imagify, Google Tag Manager, Google Business Profile, Notion, Slack, Loom
Project Year2025

The Overview

Northwell Partners is a global financial advisory firm with 62 advisors across offices in Boston, London, and Toronto. They provide wealth management, retirement planning, corporate advisory, and estate planning services to high-net-worth individuals and mid-market enterprises. Assets under management: $4.2B. Annual revenue: $38M. Their client base includes C-suite executives, business owners, and multi-generational family offices.

Their WordPress website — redesigned 18 months ago by a premium agency for $85,000 — looked beautiful. Full-screen hero videos, parallax scrolling, animated counters, custom icon sets, interactive service diagrams, and a sophisticated advisor directory. The design won an Awwwards Honorable Mention.

There was just one problem: it was practically unusable.

The homepage took 7.2 seconds to load. On mobile (54% of traffic), it was worse — 9.8 seconds. Google PageSpeed scored it 24/100 (mobile) and 41/100 (desktop). All three Core Web Vitals were “Poor.” The hero video alone was 18MB. The page loaded 4.2MB of JavaScript — more than most entire websites. Every page had 142 HTTP requests. The beautiful animated counters used a JavaScript library that was 380KB. For counting to 4.

And the SEO? The $85,000 agency had apparently never heard of it. No meta descriptions on 67 of 84 pages. No schema markup. No XML sitemap optimization. A robots.txt file that accidentally blocked Google from crawling the advisor directory (their most important section). H1 tags used for styling rather than content hierarchy — the homepage had 7 H1 tags. Internal linking was random. Image alt text was either missing or auto-generated (“IMG_4872.jpg”). The site ranked for exactly 12 keywords — all branded (the firm’s name).

For a financial advisory firm where trust and credibility are everything, a slow website signals the opposite: “We don’t have our act together.” And for a firm spending $180K/year on Google Ads driving traffic to pages that took 7+ seconds to load, speed wasn’t just a user experience issue — it was burning money. Google’s own data shows 53% of mobile visitors leave if a page takes more than 3 seconds to load. Northwell was losing more than half their visitors before the page even appeared.

We performed a complete speed and SEO optimization — from server-level performance overhaul and asset optimization to technical SEO remediation, on-page optimization, schema markup, internal linking architecture, and local SEO for three offices — transforming their slow, invisible website into a fast, high-ranking client acquisition machine.


The Challenge

  • Speed Performance (Before):
MetricHomepageAdvisor DirectoryService PagesTarget
Page Load Time7.2 seconds6.8 seconds5.4 seconds< 2.0 seconds
Google PageSpeed (Mobile)24/10028/10032/10090+
Google PageSpeed (Desktop)41/10044/10048/10095+
Largest Contentful Paint (LCP)6.4 seconds (Poor)5.8 seconds (Poor)4.2 seconds (Poor)< 2.5 seconds
First Input Delay (FID/INP)380ms (Poor)320ms (Poor)280ms (Poor)< 200ms
Cumulative Layout Shift (CLS)0.42 (Poor)0.28 (Poor)0.18 (Poor)< 0.1
Total Page Size12.4 MB8.6 MB6.2 MB< 2.0 MB
HTTP Requests14211896< 40
JavaScript Size4.2 MB3.8 MB2.9 MB< 500 KB
Time to First Byte (TTFB)1.8 seconds1.6 seconds1.4 seconds< 0.4 seconds
  • Root Causes Identified:
ProblemSize/ImpactCause
Hero video (unoptimized)18MB MP4, auto-playing on all devices including mobileAgency used raw camera footage, no compression, no mobile fallback
JavaScript bloat4.2MB across 28 JS files, 18 render-blockingAnimation libraries (GSAP, ScrollMagic, Anime.js, CountUp.js, Particles.js) — most used for one small element each
CSS bloat1.8MB across 12 CSS filesElementor’s generated CSS + theme CSS + 6 plugin CSS files, 82% unused on any given page
Unoptimized images68 images averaging 1.2MB each (should be ~100KB)Full-resolution photos uploaded without compression, no WebP, no responsive srcset
No cachingEvery visit regenerated the page from scratchNo page caching, no browser caching, no CDN configured
Shared hostingTTFB: 1.8 secondsBudget shared hosting ($12/month) for an $85,000 website — server shared with 200+ other sites
Google Fonts (external)4 font families, 12 weights, loaded from Google APIRender-blocking external requests, loading fonts never used on the page
No lazy loadingAll 68 images + 3 videos loaded immediately on page loadBelow-fold content loading before visitor scrolls to it
Unused plugins loading assets globally8 plugins loading CSS/JS on every page even when not used on that pageContact Form 7 loading on pages with no forms, Slider Revolution loading on pages with no sliders
  • SEO Performance (Before):
MetricCurrentWhere It Should BeGap
Keywords Ranking (Page 1)12 (all branded)50-80+ (branded + service + location)No non-branded visibility
Monthly Organic Traffic2,800 visitors10,000-15,000 (for a firm this size with this content)72-81% below potential
Organic Traffic as % of Total18%40-55%Over-reliant on paid traffic
Monthly Google Ads Spend$15,000Could reduce significantly with organic rankingPaying for traffic that should be free
Pages with Meta Descriptions17 of 84 (20%)100%67 pages with auto-generated or missing snippets
Pages with Optimized H18 of 84 (10%)100%7 H1 tags on homepage alone
Schema MarkupNoneOrganization, LocalBusiness, Person, FAQPage, BreadcrumbList, ServiceZero structured data for search engines
Internal Links (Avg per Page)2.48-12Weak internal linking = poor page authority distribution
Image Alt Text Coverage24%100%76% of images invisible to search + accessibility failure
Crawl Errors (Search Console)480Broken links, blocked resources, redirect chains
robots.txtBlocking /advisors/ directoryShould be fully crawlableMost important section hidden from Google
XML SitemapDefault (includes noindex pages, drafts, attachment pages)Clean, only indexable contentDiluted crawl budget
  • Business Impact of Speed + SEO Problems:
Impact AreaEstimated Cost
Google Ads wasted on slow-loading pages (53%+ bounce)~$7,950/month (53% of $15K spend bouncing before page loads)
Lost organic traffic (ranking for 0 non-branded keywords)~$12,000/month equivalent traffic value (if ranking organically)
Client trust erosion (slow site = unprofessional perception)Unquantifiable — but devastating for wealth management
Mobile visitors lost (9.8s load on mobile, 54% of traffic)~62% of mobile visitors leaving before page appears

Our Approach & Strategy

Phase 1: Speed Audit & Server-Level Optimization (Week 1)
  • Hosting Migration:
ElementBeforeAfterImpact
HostingShared hosting ($12/month) — 200+ sites per server, HDD storage, PHP 7.4, ApacheManaged WordPress hosting (Cloudways Vultr HF) — dedicated resources, NVMe SSD, PHP 8.2, LiteSpeedTTFB: 1.8s → 0.28s
Server LocationSingle US server (Dallas)Primary: US-East (closest to Boston HQ), CDN edges globallyReduced latency for London/Toronto offices and clients
PHP Version7.4 (end of life, no security updates)8.2 (latest stable — 15-25% faster execution)Faster PHP processing + security patches
Server TypeApache (shared)LiteSpeed (optimized for WordPress)Native caching, HTTP/3, faster static asset serving
SSLBasic shared SSLCloudflare managed SSL + full strict modeProper SSL chain, faster TLS handshake
  • CDN & Edge Optimization (Cloudflare Pro):
ConfigurationSettingImpact
CDN CachingCache everything: static assets (images, CSS, JS, fonts) served from nearest edge server (200+ global PoPs)London clients served from London edge, Toronto from Toronto edge — not from US server
Polish (Image Optimization)Lossy compression + WebP auto-conversion at the edgeImages optimized on-the-fly for every visitor without touching WordPress
MinifyAuto-minify CSS, JS, HTML at edgeSmaller file transfers without modifying source files
Brotli CompressionEnabled (better than GZIP — 15-20% smaller)All text-based assets compressed more efficiently
HTTP/3EnabledFaster connection establishment, better performance on mobile networks
Early Hints (103)EnabledBrowser starts loading critical assets before server finishes processing the page
Auto MinifyCSS + JS + HTMLEdge-level minification — no plugin needed
Rocket LoaderConfigured (with exclusions for critical scripts)Defers all JS loading until after page render — massive LCP improvement
Bot ManagementChallenge mode for suspicious bots, allow verified crawlersReduces server load from bad bots (30-40% of traffic is typically bots)
  • WordPress-Level Caching (WP Rocket):
SettingConfigurationImpact
Page CachingFull-page HTML caching for all public pagesPages served as static HTML — no PHP execution, no database queries per visit
Browser Caching1 year for static assets (images, CSS, JS, fonts)Returning visitors load almost nothing from server
GZIP/BrotliEnabled (Brotli via Cloudflare, GZIP as fallback)70-80% compression on text-based files
CSS OptimizationMinify + combine + remove unused CSS + load CSS asynchronously (non-critical)1.8MB CSS → 320KB (82% reduction)
JavaScript OptimizationMinify + defer non-critical JS + delay third-party scripts (analytics, chat, tracking) until user interaction4.2MB JS → 480KB loaded initially (88% reduction in blocking JS)
Critical CSSAuto-generated per page — above-fold styles loaded inline, rest deferredAbove-fold renders instantly, no flash of unstyled content
PreloadPreload key fonts, LCP image, critical CSSBrowser starts fetching critical resources before discovering them in HTML
Prefetch DNSPrefetch DNS for external services (Google Fonts, analytics, CDN subdomains)DNS resolution happens in background — saves 50-200ms per external resource
Database CleanupWeekly: clean revisions (keep 5), transients, spam, auto-drafts, trashed itemsLean database = faster queries
Heartbeat ControlLimit WordPress heartbeat to every 60s (from 15s) on admin, disable on frontendReduces background AJAX calls that slow admin and compete with visitor requests
Phase 2: Asset Optimization — Images, Video, Fonts & Code (Week 2)
  • Image Optimization:
ActionBeforeAfterSavings
Bulk compression (ShortPixel — lossy, 80% quality)842 images, avg 1.2MB each = ~1,010MB totalAvg 110KB each = ~93MB total91% file size reduction
WebP conversion0% WebP100% auto-converted, served to supporting browsers (96%+ of visitors)25-35% smaller than compressed JPEG
Responsive srcsetAll images served at full resolution regardless of deviceWordPress-generated srcset: 300w, 600w, 1024w, 1600w — device-appropriate sizeMobile loads 300px wide image, not 2400px
Lazy loadingNo lazy loading — all 68 images loaded immediatelyNative lazy loading (below-fold) + WP Rocket enhanced lazy load for backgrounds and iframesOnly above-fold images load initially
Future upload pipelineNo optimization on uploadShortPixel auto-optimizes every new upload: compress + WebP + srcset generated automaticallyEvery future image optimized without thinking about it
  • Video Optimization:
ActionBeforeAfterSavings
Hero video18MB MP4, auto-playing on all devicesCompressed to 2.1MB (H.265), poster image on mobile (no video autoplay on mobile), lazy-loaded on desktop88% reduction, mobile loads poster image (40KB) instead of video
Background videos3 additional videos (8MB, 6MB, 4MB) loading on pageConverted to compressed format, lazy-loaded, poster images for mobile, “play on scroll” trigger instead of auto-playTotal video payload: 36MB → 4.8MB
Video hostingSelf-hosted on WordPress (consuming server bandwidth)Moved to Cloudflare Stream (CDN-delivered, adaptive bitrate)Server bandwidth freed, faster delivery, adaptive quality per connection speed
  • Font Optimization:
ActionBeforeAfterSavings
Font audit4 font families, 12 weights loaded from Google Fonts API2 font families (Inter + Cormorant Garamond), 5 weights total — sufficient for all use cases58% fewer font files
Self-hostingExternal Google Fonts API (render-blocking, privacy, extra DNS lookup)Self-hosted from server (WOFF2 format, preloaded, no external API call)Eliminates render-blocking external request + 100-300ms saved
font-display: swapNot set (invisible text until fonts load — FOIT)font-display: swap — text visible immediately in fallback font, swaps to custom font when loadedNo invisible text, no layout shift from font loading
SubsetFull Unicode range for all fontsLatin subset only (covers EN/FR/DE)40-60% smaller font files
  • JavaScript & CSS Cleanup:
ActionToolImpact
Per-page asset loadingPerfmatters + Asset CleanUp Pro: disable plugins’ CSS/JS on pages where they’re not usedContact Form 7 CSS/JS removed from 78 pages that have no forms. Slider Revolution removed from 80 pages with no slider. WooCommerce assets removed from non-shop pages.
Animation library consolidationReplaced 5 separate animation libraries (380KB+ combined) with CSS animations + minimal vanilla JS (12KB total)The counter that counted to 4 no longer needs a 380KB library
Third-party script delayWP Rocket delay JS: Google Analytics, Facebook Pixel, Google Tag Manager, Hotjar, Intercom chat — all delayed until user interaction (scroll, click, touch)These scripts load AFTER the page is interactive — zero impact on initial load
jQuery migration removalRemoved jQuery Migrate (deprecated, only needed for legacy plugins)30KB less JS
Inline critical CSSWP Rocket auto-generates critical CSS per page templateAbove-fold content styled immediately, rest loads asynchronously
  • Speed Results After Phase 1-2:
MetricBeforeAfter Phase 2TargetStatus
Page Load Time (Homepage)7.2 seconds1.4 seconds< 2.0s✅ Achieved
PageSpeed Mobile24/10096/10090+✅ Exceeded
PageSpeed Desktop41/10099/10095+✅ Exceeded
LCP6.4 seconds1.2 seconds< 2.5s✅ Achieved
FID/INP380ms45ms< 200ms✅ Achieved
CLS0.420.03< 0.1✅ Achieved
Total Page Size12.4 MB1.1 MB< 2.0 MB✅ Exceeded
HTTP Requests14234< 40✅ Achieved
JavaScript4.2 MB480 KB (initial load)< 500 KB✅ Achieved
TTFB1.8 seconds0.28 seconds< 0.4s✅ Achieved
Phase 3: Technical SEO Audit & Implementation (Week 3)
  • Technical SEO Fixes:
IssueFixImpact
robots.txt blocking /advisors/Removed disallow rule, added allow for all public content, verified with Search Console “URL Inspection”Most important section now crawlable — Google discovers 62 advisor profiles
XML Sitemap cleanupYoast SEO: excluded noindex pages, drafts, attachment pages, tag archives, author archives. Included only: pages, posts, advisors, services. Submitted clean sitemap to Search ConsoleClean crawl budget — Google crawls what matters
48 crawl errorsFixed: 12 broken links (updated URLs), 8 redirect chains (consolidated to single 301s), 6 soft 404s (proper 404 or redirect), 22 blocked resources (unblocked CSS/JS for rendering)Clean crawl experience, no wasted Google crawl budget
Redirect chains8 chains of 2-4 redirects consolidated into single 301sFaster redirect resolution, less link equity loss
Canonical URLsAdded canonical tags to all pages (self-referencing), fixed 6 pages with incorrect canonicalsPrevents duplicate content issues, consolidates ranking signals
HTTPS mixed contentFixed 14 instances of HTTP resources loaded on HTTPS pages (images, scripts, iframes)Full HTTPS security, no browser warnings
Breadcrumb implementationYoast breadcrumbs enabled + BreadcrumbList schema markupBetter navigation, rich results in search
PaginationAdded proper rel=”next/prev” for paginated advisor listingGoogle understands paginated content as a series
Hreflang tagsImplemented for EN/FR pages (London office has French content)Google serves correct language version to correct audience
404 pageCustom branded 404 page with search bar, popular pages, contact CTACaptures lost visitors instead of dead-ending them
  • Crawl Optimization:
ElementConfiguration
Crawl budget managementNoindex: tag archives, author archives, search results pages, attachment pages, admin pages. Index: all public pages, posts, advisor profiles, service pages
Internal crawl depthMaximum 3 clicks from homepage to any page (verified with Screaming Frog)
Orphan pagesIdentified 8 orphan pages (no internal links pointing to them) — added internal links from relevant parent pages
Page speed for crawlFaster pages = Google crawls more pages per visit. Speed improvement from Phase 1-2 directly improves crawl efficiency
  • Schema Markup Implementation (JEBI/Custom JSON-LD):
Schema TypeApplied ToKey PropertiesRich Result Potential
OrganizationHomepageName, logo, URL, social profiles, founding date, description, contact point (phone, email)Knowledge Panel, brand search enhancement
LocalBusiness (×3)Each office page (Boston, London, Toronto)Name, address, phone, hours, geo coordinates, area served, imageLocal search visibility, Google Maps integration
Person (×62)Every advisor profileName, job title, organization, image, description, alumniOf, knowsAbout, sameAs (LinkedIn)People search, potential Knowledge Panel
FAQPage4 service pages with FAQ sectionsQuestion, accepted answerFAQ rich results in search — expanded SERP presence
BreadcrumbListAll pagesItem list element for each breadcrumb levelBreadcrumb display in search results
Service6 service pagesName, description, provider, area served, categoryService-related searches, potential rich results
ArticleAll blog postsHeadline, author, datePublished, dateModified, image, publisherArticle rich results, author visibility
WebSiteHomepageName, URL, search action (sitelinks search box)Sitelinks search box in branded search
Phase 4: On-Page SEO & Content Optimization (Week 4)
  • On-Page SEO Optimization (All 84 Pages):
ElementBeforeAfterPages Affected
SEO TitlesDefault (Page Title — Site Name) or missingCustom, keyword-optimized: “[Primary Keyword] — [Secondary]Northwell Partners” (55-60 characters)
Meta Descriptions67 pages missing, 17 auto-generatedCustom, compelling, 150-155 characters with keyword + CTA on every pageAll 84 pages
H1 TagsHomepage: 7 H1s. Many pages: H1 used for styling, not content hierarchySingle, keyword-rich H1 per page. Proper H2→H3→H4 hierarchy.All 84 pages
Image Alt Text24% coverage, rest missing or “IMG_4872.jpg”100% descriptive, keyword-relevant alt text: “Northwell Partners Boston office — financial advisory team meeting”842 images
Image Filenames“IMG_4872.jpg,” “screenshot-2024-01-15.png”Descriptive: “northwell-partners-wealth-management-advisor-boston.webp” (renamed + redirected)All key images
Internal Linking2.4 links per page average8-12 contextual internal links per page — connecting services ↔ advisors ↔ blog ↔ case studiesAll 84 pages
URL StructureSome long, some with dates, inconsistentClean: /services/wealth-management/, /advisors/jane-smith/, /insights/retirement-planning-guide/12 URLs restructured (with 301 redirects)
Content LengthService pages: 200-400 words (thin content)Service pages: 1,200-2,000 words (comprehensive, keyword-rich, value-driven)6 core service pages expanded
  • Keyword Strategy & Content Optimization:
Keyword CategoryExample KeywordsTarget PagesMonthly Search Volume (US)
Branded“Northwell Partners,” “Northwell financial advisory”Homepage, AboutAlready ranking — maintain
Service + Location“wealth management Boston,” “financial advisor London,” “retirement planning Toronto”Service pages + location pages500-2,400/keyword
Service (General)“wealth management firm,” “corporate financial advisory,” “estate planning services”Service pages1,000-8,000/keyword
Long-Tail / Informational“how much do I need to retire at 55,” “best retirement planning strategies 2025,” “family office vs wealth manager”Blog content (new + existing)200-3,000/keyword
Competitor Comparison“Northwell Partners vs [competitor],” “[competitor] alternative”Not targeted directly — but brand authority builds indirect rankingVariable
  • Content SEO Strategy:
Content TypeSEO PurposeVolumeTarget
Service Page ExpansionRank for “wealth management + [location],” “financial advisory services”6 pages rewritten and expandedPrimary commercial keywords
Advisor Profile OptimizationRank for “[advisor name] + financial advisor” + contribute to E-E-A-T signals62 profiles optimized (bio, credentials, schema)Personal brand + firm authority
Blog Content OptimizationExisting 34 blog posts optimized: keyword targeting, internal linking, meta data, content expansion where thin34 posts optimizedLong-tail informational keywords
New Pillar Content4 new comprehensive guides (3,000-5,000 words): “Complete Guide to Wealth Management,” “Retirement Planning 2025,” “Estate Planning Essentials,” “Corporate Financial Advisory Guide”4 new pagesHigh-volume informational keywords
FAQ ContentFAQ sections added to 4 key service pages — answering common client questions with schema markup24 FAQ items (6 per page)FAQ rich results + voice search
  • Internal Linking Architecture:
INTERNAL LINKING STRUCTURE
━━━━━━━━━━━━━━━━━━━━━━━━━━

HOMEPAGE
├── Links to all 6 service pages (primary nav + content links)
├── Links to 4 pillar content guides
├── Links to featured advisors (rotating)
└── Links to latest blog posts

SERVICE PAGES (6)
├── Links to related advisors (who specialize in this service)
├── Links to relevant blog posts / case studies
├── Links to FAQ section (same page)
├── Links to contact/consultation page
└── Cross-links to related service pages

ADVISOR PROFILES (62)
├── Links to their practice areas (service pages)
├── Links to articles they've authored (blog)
├── Links to office location page
└── Links to consultation booking

PILLAR CONTENT (4 Guides)
├── Links to relevant service pages (commercial intent)
├── Links to advisors who specialize in topic
├── Links to related blog posts (supporting content)
└── Links to contact/consultation

BLOG POSTS (34 existing + ongoing)
├── Links to parent pillar content
├── Links to relevant service pages
├── Links to advisors mentioned
└── Cross-links to related posts

RESULT: Every page links to 8-12 other relevant pages.
Topic clusters form around service areas with pillar
content at the center. Authority flows throughout the site.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 5: Local SEO, Monitoring & Reporting (Week 5)
  • Local SEO (3 Offices):
ElementImplementation (Per Office)
Google Business ProfileClaimed, verified, and fully optimized: business name, category (Financial Planner), address, phone, hours, website (linked to office-specific landing page), description (250 words, keyword-rich), services listed, photos (exterior, interior, team — 15+ per office), Q&A pre-populated with common questions
Office Landing PagesDedicated page per office: /locations/boston/, /locations/london/, /locations/toronto/ — with unique content (not duplicated), local team profiles, driving directions, embedded Google Map, local testimonials, and LocalBusiness schema
NAP ConsistencyName, Address, Phone verified as identical across: website, Google Business Profile, LinkedIn, Yelp, industry directories, and legal registries
Local Citations30+ quality citations per office: financial industry directories, local business directories, chamber of commerce listings
Review StrategyTemplate request emails for Google reviews post-client engagement, review response protocol (respond to all within 48 hours)
Local ContentBlog posts with local relevance: “Wealth Management in Boston: What High-Net-Worth Individuals Should Know,” “London Financial Advisory Landscape 2025,” “Toronto Estate Planning Guide”
  • SEO Monitoring System:
What We MonitorToolFrequencyAlert Trigger
Keyword RankingsSemrush (42 target keywords tracked)WeeklyAny keyword drops 5+ positions
Organic TrafficGoogle Analytics 4WeeklyTraffic drops 15%+ week-over-week
Core Web VitalsGoogle Search Console + PageSpeed (automated)WeeklyAny metric moves from “Good” to “Needs Improvement”
Crawl ErrorsGoogle Search ConsoleWeeklyAny new crawl errors appear
IndexationGoogle Search Console (“Pages” report)Bi-weeklyPages dropping from index or “Excluded” with unexpected reason
Backlink ProfileAhrefsMonthlyToxic links detected, significant link gains/losses
Local RankingsSemrush Local (per office, per keyword)MonthlyLocal pack ranking changes
Page SpeedGTmetrix (automated tests)MonthlyLoad time increases > 0.5 seconds
Competitor MovementSemrushMonthlyCompetitor ranking gains on target keywords
  • Monthly SEO Report (Delivered to Client):
SectionContents
Executive Summary3-4 sentence overview: traffic, rankings, speed, key wins, action items
Organic TrafficTotal organic sessions, trend vs. previous month and year-over-year, top landing pages from organic, new vs. returning
Keyword RankingsCurrent position for all 42 tracked keywords, changes from last month, new keywords ranking, keywords approaching Page 1
Core Web VitalsLCP, INP, CLS — all green? Any degradation? Speed benchmarks for key pages
Content PerformanceTop 10 organic landing pages by traffic, top blog posts, pages needing content refresh
Local SEOGBP insights: views, clicks, calls, directions per office. Local keyword rankings. Review count and rating.
Technical HealthCrawl errors, indexation status, any new issues detected
RecommendationsNext month priorities: new content to create, pages to optimize, technical improvements, opportunities identified
  • Handover Documentation:
DocumentPurpose
Speed Optimization RecordComplete documentation of every optimization performed: before/after metrics, settings, configurations, tools
SEO Strategy DocumentKeyword strategy, content plan, internal linking architecture, local SEO plan — living document updated quarterly
Schema Markup ReferenceAll schema implemented with code snippets, where applied, and how to add schema to new pages
Content SEO ChecklistFor every new page/post: SEO title format, meta description template, H1 rules, alt text guidelines, internal linking minimum, schema requirements
Speed Maintenance GuideHow to maintain speed: image upload procedures, plugin installation rules, what not to do (no unoptimized videos, no new JS libraries without approval)
Monthly Report TemplatePre-formatted report structure with data sources and interpretation guide
Tool Access & ConfigurationAll tool logins, API keys, Search Console/Analytics access, monitoring configurations

Key Features Delivered

FeatureDescription
Server MigrationShared hosting ($12/mo) → Managed WordPress hosting with NVMe SSD, PHP 8.2, LiteSpeed — reducing TTFB from 1.8s to 0.28s
CDN & Edge OptimizationCloudflare Pro: global CDN, edge image optimization, Brotli compression, HTTP/3, Early Hints, bot management
WordPress Caching SystemWP Rocket: page caching, browser caching, critical CSS, JS defer/delay, database cleanup, DNS prefetch — fully configured and tested
Image Optimization Pipeline842 images compressed (91% reduction), WebP conversion, responsive srcset, lazy loading — plus automated pipeline for future uploads
Video Optimization36MB → 4.8MB total video payload, mobile poster images, lazy loading, Cloudflare Stream hosting
Font Optimization4 families/12 weights → 2 families/5 weights, self-hosted WOFF2, font-display:swap, Latin subsetting
JavaScript/CSS Cleanup4.2MB JS → 480KB initial load (88% reduction), 1.8MB CSS → 320KB (82% reduction), per-page asset loading, animation library consolidation
Technical SEO Remediationrobots.txt fix, sitemap cleanup, 48 crawl errors resolved, redirect chains fixed, canonical tags, HTTPS mixed content, hreflang, custom 404
Schema Markup (8 Types)Organization, LocalBusiness (×3), Person (×62), FAQPage, BreadcrumbList, Service, Article, WebSite — comprehensive structured data
On-Page SEO (84 Pages)Custom SEO titles, meta descriptions, H1 hierarchy, image alt text (842 images), URL restructuring, content expansion
Internal Linking ArchitectureAverage links per page: 2.4 → 10+, topic cluster structure, pillar content hub, cross-linked service/advisor/blog ecosystem
Local SEO (3 Offices)Google Business Profile optimization, dedicated office landing pages, NAP consistency, 30+ citations per office, review strategy
4 Pillar Content Guides3,000-5,000 word comprehensive guides targeting high-volume informational keywords
SEO Monitoring System9 monitoring points with weekly/monthly cadence, defined alert triggers, and automated reporting

Results & Impact (Projected / Showcase Metrics — 6 Months)

MetricBeforeAfter (Month 6)Change
Page Load Time (Homepage)7.2 seconds1.4 seconds⬇ 81%
Google PageSpeed (Mobile)24/10096/100⬆ 300%
Google PageSpeed (Desktop)41/10099/100⬆ 141%
LCP6.4 seconds (Poor)1.2 seconds (Good)⬇ 81%
FID/INP380ms (Poor)45ms (Good)⬇ 88%
CLS0.42 (Poor)0.03 (Good)⬇ 93%
Total Page Size12.4 MB1.1 MB⬇ 91%
HTTP Requests14234⬇ 76%
TTFB1.8 seconds0.28 seconds⬇ 84%
Bounce Rate (All Traffic)64%32%⬇ 50%
Mobile Bounce Rate72%34%⬇ 53%
Average Session Duration1:083:42⬆ 226%
Pages Per Session1.64.2⬆ 163%
Monthly Organic Traffic2,80010,750⬆ 284%
Keywords Ranking Page 112 (all branded)54 (12 branded + 42 non-branded)⬆ 350%
Keywords Ranking Page 2-30 non-branded86 (approaching Page 1, building momentum)
Organic Traffic as % of Total18%42%⬆ 133%
Google Ads Spend$15,000/month$8,500/month (reduced as organic captures paid keywords)⬇ 43%
Estimated Monthly Value of Organic Traffic~$4,200$18,600 (based on equivalent CPC)⬆ 343%
Advisor Profile Page Views840/month4,200/month (no longer blocked from Google)⬆ 400%
Local Pack Appearances (3 Offices)03 offices appearing in local pack for key service + location queries
Google Business Profile Views (Monthly, All 3)1,200 (unoptimized)8,400⬆ 600%
GBP-Driven Calls (Monthly)1862⬆ 244%
Blog Post Traffic (Monthly)680 (thin content, no SEO)3,400 (optimized + pillar content)⬆ 400%
Consultation Requests (Organic Traffic)8/month34/month⬆ 325%
New Client Revenue Attributed to Organic~$120K/year (estimated)$680K/year (estimated from organic-driven consultations)⬆ 467%
Rich Results (Schema-Driven)0FAQ snippets on 4 pages + breadcrumbs on all pages + Knowledge Panel enhanced

📋 Case Study Summary

Challenge: Northwell Partners — a global financial advisory firm with $4.2B AUM and 62 advisors across Boston, London, and Toronto — had a beautifully designed but catastrophically slow WordPress website (7.2s load time, 24/100 PageSpeed mobile) and zero SEO visibility (12 branded keywords only, 67/84 pages missing meta descriptions, robots.txt blocking the advisor directory from Google). The $85,000 design agency delivered visual awards but no performance or SEO foundation. An 18MB hero video, 4.2MB of JavaScript, 142 HTTP requests per page, no caching, shared hosting, and no schema markup. The firm was spending $15,000/month on Google Ads driving traffic to pages where 53%+ of visitors left before the page loaded. For a wealth management firm where trust is everything, a slow website was an expensive credibility problem.

Solution: We performed a complete speed and SEO optimization — migrating to managed hosting (TTFB: 1.8s → 0.28s); deploying Cloudflare Pro CDN with edge optimization; configuring WP Rocket caching with critical CSS and deferred JS; compressing 842 images (91% reduction) with WebP and lazy loading; optimizing videos (36MB → 4.8MB); self-hosting fonts; cleaning JavaScript (4.2MB → 480KB) and CSS (1.8MB → 320KB) through per-page asset loading; fixing robots.txt, 48 crawl errors, redirect chains, and canonical tags; implementing 8 schema types across 84 pages including Person schema for 62 advisors; writing custom SEO titles and meta descriptions for all pages; adding alt text to 842 images; building internal linking architecture (2.4 → 10+ links per page); expanding 6 service pages and creating 4 pillar content guides; optimizing Google Business Profiles for 3 offices with 30+ citations each; and building a 9-point SEO monitoring system.

Result: Page load dropped from 7.2s to 1.4s. PageSpeed went from 24 to 96 (mobile). All Core Web Vitals reached “Good.” Page size shrank from 12.4MB to 1.1MB. Organic traffic grew 284% (2,800 → 10,750/month). Page 1 keywords grew from 12 to 54. Google Ads spend decreased 43% as organic captured paid keywords. Bounce rate dropped 50%. Session duration grew 226%. Advisor profile views grew 400% (directory no longer blocked from Google). Local pack appearances achieved for all 3 offices. GBP-driven calls grew 244%. Organic consultation requests grew 325%. Estimated organic-attributed new client revenue grew from $120K to $680K annually. Speed and SEO aren’t separate — together, they’re the foundation everything else stands on.

A Beautiful Website Nobody Can Find Is Just Expensive Art

We optimize WordPress speed and SEO so your website loads in under 2 seconds, ranks on Page 1 for the keywords that matter, and converts the traffic you’re already paying for — turning your website from a digital brochure into a client acquisition engine.
Profile Picture
Available for 1:1 Consulting
Availability: Anytime
Quick Connect