Reports Blog

Lessons Learned Optimizing the SEO on Our Web Pages

Written by Gui Costin, Founder, CEO | Jun 3, 2026 5:41:37 PM

Most companies treat the website like a brochure. Build it, launch it, forget it. We did exactly that for years.

Six months ago, that stopped. What follows is the whole story — in the order it happened, with the specifics named — because too many companies are sitting on these same problems and nobody publishes the details. Read this once. Then go look at your own site. I promise you will find something.

01 — The Foundation: Get the Technical SEO Right First

Decide one thing before anything else: your site must be indexed cleanly. When search engines cannot tell which version of a page to crawl, every later effort is wasted motion. You are pouring water into a bucket with a hole in it.

We had a hole. URL variants were throwing 404 errors instead of redirecting to the right canonical page. Lost traffic. Broken links. Crawl budget burned. And nobody knew.

Here is what we fixed, and how:

WWW redirect. Every non-www request was erroring instead of forwarding. We wrote 301 rules in Cloudflare to push every variant of dakota.com to www.dakota.com. One rule. The redirect-rules panel. Minutes.

Trailing-slash consistency. Some pages carried a trailing slash, some did not. We chose one policy — no trailing slash — and enforced it in HubSpot under Settings > Website > Domains & URLs. Every page now 301s to its canonical form.

Canonical tags. With the first two fixed, we verified the rel=canonical tags on every template: HTTPS, www, no trailing slash. HubSpot corrects these once the domain settings are right — but you have to check. Trust nothing you have not verified.

The payoff: clean crawl paths, no duplicate indexing, not one wasted byte of budget.

02 — The Hidden Layer: Clean Up What Lives in Your HTML

This one stopped me cold. A full audit of our live HTML turned up developer notes sitting in the DOM on production pages. Placeholder text — "insert numbers here," "eventually" — on pages real visitors had been reading for months.

Here is why it matters. Users never saw it. Crawlers and AI systems did. It was surfacing in cached copies of our pages. So we stripped it out of the underlying HubSpot modules — not merely hidden from the visual layer, removed at the source.

If you run HubSpot, search your page source for any placeholder string your team may have left behind. Check the DOM, not just what renders.

03 — The Real Work: Make the Page Fast

Mobile PageSpeed sat at 50 out of 100. Largest Contentful Paint clocked 13.2 seconds. That is not a number you can live with. Nobody waits thirteen seconds.

We worked straight in the HubSpot template file — 2021/Templates/Website2025.html — and made each change non-breaking, each one verified live:

  • Trimmed preconnect tags from seven to four. One of the seven pointed, by typo, at a domain that did not exist.

  • Removed all seven dns-prefetch tags, redundant with the preconnects.

  • Switched fresco.min.js from defer:false to defer:true.

  • Switched fresco.css from async:false to async:true.

  • Added defer to the Font Awesome kit script.

  • Converted jQuery 1.12.4 to load deferred in the head.

  • Added defer to passetto.min.js in the Site Header HTML.

  • Added loading="lazy" plus explicit width and height to six below-the-fold client logos. They had been loading eagerly, at full natural size. A five-minute fix.

LCP in lab testing: 13.2s → 4.2s. Real-User Core Web Vitals (CrUX): Passing.

The score is still not where I want it. One bottleneck remains: LCP now pins at 10-12 seconds in lab because the cookie-consent banner is the largest paintable element above the fold, and it renders only after HubSpot's consent scripts finish. A late render. We are fixing it with our developer now — changing how the banner loads, static HTML instead of script-injected DOM. When that lands, we expect to break 70 on mobile.

There is almost always something holding your score back. It is almost always specific, and almost always fixable. You just have to go find it.

04 — Trust Your Data: Fix Tracking Before You Scale

We found three tracking problems during this work. Not one was visible from the surface.

Duplicate pixels. Google Ads, LinkedIn Insight, and Marketo Munchkin were each firing twice on the homepage — once from HubSpot's native ad integrations, once from our GTM container. The result is inflated counts and corrupted attribution. We traced every source and are clearing the duplication by disabling HubSpot's pixel injection while keeping the CRM sync alive.

GA4 aimed at the wrong domain. The data stream was set to dakota.co, not dakota.com. Roughly 21,000 users were still landing in GA4, so something was reporting — but the configuration was wrong. Fixed.

Google Ads not linked to GA4. The product link was empty. Conversion data never reached our reports. We had zero visibility into which campaigns actually converted. Now being fixed.

None of this needed a developer. All of it should have been caught far earlier. Measure what you cannot yet trust, and trust nothing you have not measured.

05 — The Multiplier: Build Content at Scale With Claude

With the foundation solid, we turned to content. The site was not telling our story well enough. Bounce rates ran too high — people landed and left before we could connect. The old fix — hire an agency, write briefs, wait months — was off the table.

So we used Claude to build 75 new pages in 72 hours. About five minutes a page. We fed it our audience profiles, our data, our value propositions, the message for every segment we serve. Back came audience-specific copy, conversion-focused structure, and content built around the questions our customers actually ask.

Our CMO, Catherine, then built the workflow to publish all of it cleanly and at scale. Claude handled the content. Catherine handled the execution. In under a week the site went from liability to asset.

06 — The New Front Door: Build for AI, Not Only Google

Search has changed. A growing share of people now get answers straight from AI tools — not a list of blue links. If your content is not structured to appear in those answers, you are invisible to that audience. Simply gone.

We built the 75 pages for exactly this: question-and-answer structure, clear headers, content that answers what a person would actually ask an AI assistant about our product. Traditional SEO and AI discoverability are not the same discipline — but they are not in conflict either. Structure the content right and you build for both at once.

07 — What We Learned: Six Truths for Any Operator

Most technical SEO needs no developer. Redirects, canonical tags, script deferral, image lazy-loading — all of it is within reach of a marketer willing to read the documentation and work carefully.

Duplicate tracking is everywhere, and almost nobody catches it. Run a network-request audit on your homepage. Watch what fires. You will be surprised.

The content-volume problem is solved. Seventy-five pages in seventy-two hours is no gimmick. Give Claude the right inputs and the quality is real. The bottleneck is now your own clarity about what each page must say.

Page-speed work is iterative. Fix the biggest problem, the score climbs, a new bottleneck surfaces. Today ours is the cookie banner. A month ago it was deferred scripts.

The work does not end. But the gains compound. That is the whole point — start now, and every fix builds on the last.

We will keep sharing what we learn. If you are working through any of this on your own site, reach out. Happy to go deeper on any piece of it.