HomeWhat we fixTechnical SEO

Technical SEO

The problems you can't see are the ones costing you

Your site looks fine. You open it, it loads, everything works. That's the problem — technical SEO issues are invisible from the front. Broken links inside your own navigation, pages competing with themselves in Google's index, a sitemap that hasn't been accurate since 2023, redirects chained three deep. None of it shows up when you look at your site. All of it shows up in what you don't earn.

14 years in SEOUS businessesWe fix it, not just find it

Find what's broken under the hood

We'll crawl your site the way Google does and show you exactly what's holding it back — the problems you can't see in a browser.

Free · About a minute · No account needed

Why scan before buying? Because technical problems are specific. One site has a canonical mess, another has a crawl budget problem, another has neither and just needs content. Until we look, we'd be guessing — and so would you.
What we find

What usually goes wrong under the hood

Every item below is something our scanner genuinely checks. Run it and you'll see which of these are on your site — in your own report, in these exact words. Most sites have four or five. None of them are visible from the front end.

Broken links inside your own site

Pages get deleted. URLs get renamed. Products get discontinued. The links pointing at them don't update themselves, so they sit there pointing at nothing.

Every one of those is a dead end for a crawler and a dead end for a buyer. Google wastes crawl budget following links to pages that don't exist, and a visitor who clicks one usually leaves rather than hunting for what they wanted.

The frustrating part is how invisible it is. You don't click your own internal links — you know where everything is. So these accumulate quietly for years.

What this looks like

A services company had 34 broken internal links, eleven of them in the main navigation footer that appeared on every single page. The pages had been renamed during a redesign eighteen months earlier and nobody updated the links. Every crawl wasted budget on 34 dead ends, site-wide.

Checked by: Broken Internal Links

Your pages are competing with themselves

The same content is reachable at more than one URL. With and without a trailing slash. With and without www. With tracking parameters attached. Through a category path and directly.

Google sees several near-identical pages and has to guess which one you meant. Whatever ranking signals that page has earned get split across the variants instead of concentrating on one. You end up ranking worse than a single version of the same page would have.

Canonical tags exist precisely to solve this, and most sites either don't have them, have them pointing at the wrong version, or have them on some templates and not others.

What this looks like

An e-commerce site had product pages reachable through three routes: directly, through their category, and through a "featured" collection. All three were indexed. Search Console showed Google switching between them for the same query month to month, and none of them ever settled into a stable position.

Checked by: Canonical Tag · Duplicate Content Risk

Your sitemap doesn't reflect reality

The sitemap was generated when the site launched. Since then pages have been added, removed, renamed and merged. The sitemap still lists what existed at launch.

So Google gets told about pages that no longer exist, and never gets told about pages that do. New content sits unindexed for weeks longer than necessary while crawl budget goes to URLs that return 404.

Related: sites that have no sitemap at all, and sites whose sitemap isn't declared in robots.txt so nothing points to it.

What this looks like

A blog with 60 published posts had 22 of them in the sitemap — the ones that existed when the plugin first generated it. The other 38 were discovered only through internal links, and several deep ones weren't indexed at all. The fix took ten minutes.

Checked by: XML Sitemap · Robots.txt Blocking Crawlers

Your site is slower than you think

You load your own site constantly. It's cached, you're on good broadband, and you're often on desktop. It feels fast because for you it is.

Your buyers are on mobile, on a variable connection, arriving cold with nothing cached. That's a different experience, and it's the one Google measures. Every second of delay costs both ranking and conversions — you lose position, and fewer of the people who do arrive stay long enough to act.

The usual culprits are unremarkable: images uploaded at full size and scaled down in the browser, third-party scripts loading before content, and a server that's slow to respond in the first place.

What this looks like

A site felt instant on the owner's machine. On a mid-range phone on 4G it took just under seven seconds to become usable. The biggest single cause was a hero image being served at 4,000 pixels wide to a 390-pixel screen.

Checked by: Page Load Time · Image Optimization

Your headings don't say what the page is about

Headings are how both readers and crawlers understand a page's structure. When they're wrong — no H1, several H1s, H3s with no H2 above them, or headings used because they looked the right size — that structure disappears.

The most common version is a page with no H1 at all. Nothing states, in the place that's meant to state it, what this page is about. Google works it out from context, usually correctly, sometimes not.

The second most common is a page where the H1 is the logo or the site name, which tells a crawler that every page on your site is about your company rather than about anything specific.

What this looks like

A service page had no H1. The largest text on the page was styled with a div because the designer wanted a specific size. Google was ranking it for the company name rather than the service it described — the only heading-level signal on the page was in the header.

Checked by: H1 Present · H1 Uniqueness · Heading Hierarchy

Links pass through three hops before landing

A page moves. A redirect gets added. Later it moves again, and a second redirect points at the first. Then the site migrates to HTTPS and a third joins the chain.

Now a link that should reach its destination directly goes through three stops. Each hop is slower, and each one loses a little of whatever authority the original link carried. Crawlers give up after a few hops entirely.

Nobody adds redirect chains deliberately. They accumulate — each one reasonable at the time, nobody ever going back to collapse them.

What this looks like

A site had chains four deep after a migration and two rebrands. External links to their most-linked page were passing through four redirects. Collapsing them to point directly at the final URL took one afternoon.

Checked by: Redirect Chains · HTTPS Enabled

How we fix it

Found is only half the job

Other tools find these and hand you a list. Here's exactly what we do about each one — including the steps, so you can judge whether we know what we're doing.

What we foundHow we fix it

Broken internal links

Dead links inside your own navigation and content, wasting crawl budget and losing visitors.

We find every one and fix it properly

Repointed where the content moved, redirected where it's gone, removed where neither applies.

2–3 daysEvery package
See exactly how
  1. Crawl the entire site and catalogue every internal link returning 404 or 5xx
  2. For each, determine what happened — moved, deleted, renamed, or never existed
  3. Repoint links where the content still exists somewhere
  4. Add 301 redirects where the page is genuinely gone but had value
  5. Remove links to content that shouldn't be replaced, rather than redirecting to something irrelevant
  6. Re-crawl to confirm zero broken internal links remain

We don't redirect everything to the homepage. A 404 is more honest than a redirect that sends someone somewhere unrelated, and Google treats it as a soft 404 anyway.

Duplicate URLs competing

The same content reachable at several addresses, splitting its own ranking signals.

We set canonicals correctly across every template

One canonical version per piece of content, consistently, with parameter handling configured.

2–4 daysEvery package
See exactly how
  1. Crawl for every URL variant serving the same content — protocol, slash, parameters, alternate paths
  2. Decide the canonical version for each, usually the one linked from navigation
  3. Set self-referencing canonicals on canonical pages, pointing variants at them
  4. Configure parameter handling so tracking and filter URLs aren't indexed at all
  5. Fix internal links so they point at the canonical version directly
  6. Rebuild the sitemap with only canonical URLs

Canonicals are a hint, not a directive. If your internal links keep pointing at the non-canonical version, Google will notice the contradiction — which is why step 5 exists.

Sitemap out of date

Listing pages that don't exist, missing pages that do.

We rebuild it and keep it accurate

Only live, indexable, canonical URLs — declared in robots.txt and submitted.

1 dayEvery package
See exactly how
  1. Generate a fresh sitemap from what actually exists and should be indexed
  2. Exclude noindexed pages, redirects, and non-canonical variants — a sitemap listing those sends mixed signals
  3. Split into multiple sitemaps with an index if the site is large enough to need it
  4. Declare it in robots.txt so crawlers find it without being told
  5. Submit through Search Console and confirm it's read without errors
  6. Set up automatic regeneration so it stays accurate as the site changes

The automatic regeneration matters more than the initial fix. A sitemap corrected once goes stale again within months.

Slow pages on mobile

Load times that cost you both rankings and buyers.

We fix what's actually slow, measured not guessed

Images, scripts, and server response — in the order that gives the biggest return.

1 weekGrowth & above
See exactly how
  1. Measure real load performance on mobile, not desktop, and identify the specific bottleneck
  2. Fix image delivery first — correct dimensions, modern formats, lazy loading below the fold. This is usually the largest single win.
  3. Identify render-blocking scripts and defer what doesn't need to load before content
  4. Find third-party scripts that are installed but no longer used — there are almost always some
  5. Address server response time if that's the bottleneck rather than the front end
  6. Re-measure and show you the before and after on the same pages, same conditions

We measure before we change anything. Optimising the wrong thing is common and produces impressive-looking work that changes nothing.

Broken heading structure

No H1, multiple H1s, or headings chosen for size rather than meaning.

We rebuild the heading structure across the site

One clear H1 per page, logical hierarchy beneath, styled to match your design.

3–5 daysEvery package
See exactly how
  1. Audit every page template for what heading levels it outputs and where
  2. Establish one H1 per page, describing that page rather than the company
  3. Restructure H2s and H3s into a logical order with no skipped levels
  4. Separate styling from semantics — headings can look however you want, they just have to be the right level
  5. Verify on every template type, not just the ones easiest to check

This changes nothing visually if it's done properly. If your H1 needs to look small, that's a CSS question, not a reason to use a div.

Redirect chains

Links passing through multiple hops before reaching their destination.

We collapse every chain to a single hop

Each redirect pointing straight at the final URL, with internal links updated to skip them entirely.

2–3 daysEvery package
See exactly how
  1. Map every redirect on the site and identify chains of two or more
  2. Repoint each redirect directly at the final destination
  3. Update internal links so they point at the final URL and don't hit a redirect at all
  4. Check for and break any redirect loops
  5. Verify externally-linked pages resolve in one hop, since those are where lost authority costs most

Redirects themselves are fine — they're how the web handles moved content. Chains are the problem, and they're entirely avoidable.

Before you try this yourself

Common mistakes

What we usually find when someone has already tried to fix this themselves.

Installing an SEO plugin and assuming it's handled

Plugins manage meta tags and sitemaps competently. They don't find broken links, they don't collapse redirect chains, they don't fix heading structure, and several add scripts that make performance worse. A plugin is a tool, not a technical audit.

Redirecting every 404 to the homepage

It feels tidy — no dead ends. But Google treats a redirect to an irrelevant page as a soft 404 and ignores it, and a visitor who wanted a specific product and lands on your homepage is more annoyed than one who got an honest "this doesn't exist any more."

Chasing a perfect performance score

The score isn't the goal; the experience is. It's entirely possible to score well by deferring things that genuinely need to load, producing a page that scores 98 and feels broken. Optimise the metrics buyers actually feel.

Adding noindex to fix duplicate content

Noindex and canonical solve different problems. Noindex removes a page from the index entirely and it stops passing signals. Canonical consolidates several versions into one and keeps them. Using noindex where you meant canonical throws away the value you were trying to consolidate.

Our Process

Scan. See. Fixed.

01

We find what's broken

We crawl your site the way Google does and find the problems you can't see — errors, blocks, slowdowns, structural mess. Then we tell you what's actually costing you, in plain English, in order of importance.

About a minute

02

You see what's wrong

Every issue ranked by impact and effort. Not forty technical strings — a plan you could hand to a developer, or hand back to us.

Yours to keep, free

03

We fix it ourselves

This is the part that's different. We don't hand you a PDF and wish you luck. We make the fixes. We test before pushing anything live, and we back up first. You don't need a developer, because that's us.

From $50/month

04

We show you what changed

The same checks, run again. A plain summary of what was broken, what we fixed, and what difference it should make. No jargon dump.

Proof, not promises

The first month is the clean-up — we fix what's broken and you keep those improvements whatever happens next. After that we keep watching, because sites break again every time they're published to, redesigned or re-platformed. No bloated retainer, no lock-in: cancel any month and keep the work already done.

What's included

What's included

Packages differ in how much work we do — not in how much of the picture you get.

The full scan

  • Every check across four areas
  • Complete Site Scan
  • Broken link and redirect chain mapping
  • Canonical and duplicate audit
  • Real performance measurement
  • Heading structure and sitemap audit

The work itself

  • Broken links fixed
  • Canonicals set across every template
  • Sitemap rebuilt and automated
  • Performance bottlenecks addressed
  • Heading structure corrected
  • Redirect chains collapsed

The proof

  • Before-and-after score comparison
  • Exactly which issues cleared
  • A plain summary of what changed and why
  • Full dashboard access
  • Every tool unlocked
  • Scan history kept permanently

What does it cost?

It depends on what your site actually needs — which is why we scan first. Plans start at $50/month, and every one includes the full scan above.

FAQ

Before you scan

Find out what's broken under the hood

Every check, your off-page signals, and a plan you can act on. Free, about a minute, no account needed.

Scan My Site Free