Service
Technical SEO
Crawling, indexing, rendering, speed and structured data fixed at template level, so every page you publish is able to compete.

What is technical SEO?
Technical SEO is the behind-the-scenes stuff that lets Google, Bing and AI assistants reach your pages, pull them down, untangle the code and keep them stored in an index. Your visitors? They’ll never notice a thing. They don’t see your URL rules, your redirect setup or the way one template quietly links to another, yet those details decide a lot.
We like a shop analogy. Picture a lovely corner shop whose front door has swollen shut after the monsoon. Lights on, window display spotless, and people stroll right past because nobody can get in. Plenty of websites are that store. Unjam the door and the exact same content finally gets a fair shot.
- How search engines process a page.
- The numbers that matter.
- The 12 areas of technical SEO.
- Symptoms and likely causes.
- Noindex, canonical, 301 or robots.txt?
- Technical SEO for AI search.
- Three worked examples.
- How our audit works.
- How to prioritise fixes.
- A free 40-point checklist.
- Free tools you can use today.
- Myths worth dropping.
- Working with developers.
- Cost and timelines.
- Common questions.
How a search engine actually processes your page
A page has to clear several hurdles before anyone sees it in a result. Each hurdle can trip it up on its own, which is what makes diagnosis interesting. Never crawled? Then it can’t be indexed. Crawled but rendered as an empty shell? Google has nothing to understand. Understood, but surrounded by five near-twins? Then it’s a coin toss which twin Google keeps, and the odds aren’t in your favour.
- Discover. A link, sitemap entry or redirect tips the bot off.
- Crawl. Bot asks your server for the page; HTML and assets come back.
- Render. Scripts execute, roughly like Chrome on a phone.
- Index. It decides if the page deserves a slot, and which version counts as canonical.
- Rank. For each query, it sorts the indexed pages it thinks will help most.
- Serve. It shows a blue link, a rich result or a cited source inside an AI answer.
Most SEO chatter is about ranking and serving, the last two boxes, where keywords and links and content quality get argued over. Our patch is mostly the first four. Less exciting at dinner parties, sure. But if the water stops flowing at box two, nobody cares how shiny the tap is.
Discovery: how a crawler learns your page exists
New URLs reach a crawler three ways. It follows links off pages it already trusts, it reads whatever XML sitemap you’ve submitted, and it chases redirects from retired addresses. Links win that contest easily. When an important page links somewhere, it’s vouching for the destination.
That’s why an orphan page (one nothing links to) gets visited so rarely and ranks so poorly, even if it’s sitting right there in your sitemap. A sitemap entry basically says “this exists.” A link says “this matters.” Google listens harder to the second one.
Crawling: fetching the page
Googlebot knocks; your server had better reply quickly, with an honest status code. A 200 hands the page over. A 301 points to its new home, permanently. 404? Not found. 410 is the deliberate “we deleted it.” Keep throwing 5xx errors and Google politely backs off, visiting less often until things calm down.
There’s a size cap as well, and it surprises people. Google’s own documentation says Googlebot reads the first 2 MB of a supported file like an HTML page; whatever comes after that point simply isn’t used for indexing. Most pages never get near it. Pages stuffed with giant inline scripts, enormous JSON blobs or a few thousand product tiles sometimes do, and if your best paragraph lives at the very bottom of that file, it may never be read at all.
Rendering: turning code into a page
Lots of modern sites are built mostly out of JavaScript. Google can execute it, though rendering is pricier than reading plain HTML, so it often happens in a second wave, occasionally after a lag. Plenty of other crawlers (many AI ones included) don’t run JavaScript whatsoever. So if your prices, descriptions or internal links only show up once scripts fire, some bots are staring at a blank page.
Our JavaScript rendering page digs into this properly, and the trade-offs are laid out side by side in server-side vs client-side rendering.
Indexing: deciding what to keep
A crawl isn’t a promise. Google is picky about storage. Ten URLs showing near-identical stuff usually collapse into one, and the other nine vanish from results. Thin, broken or copied pages can be fetched and then dumped. You’ll see this in Search Console as “Crawled, currently not indexed” or “Duplicate, Google chose different canonical than user.” Honestly, those two lines turn up in nearly every audit we open.
Ranking and serving
Here’s where relevance, content, links and user behaviour take over. Technical work still nudges things, though. Mobile usability, page experience and schema all affect what your listing looks like, and whether it gets bonus bits such as price and stock in product snippets. AI tools quoting sources tend to grab clean, parseable pages first. Messy ones get skipped.
The numbers every site owner should know
Most of SEO is fuzzy. This bit isn’t. Google publishes a few hard thresholds, and we’d suggest pinning them above your desk, because “make the site faster” gives a developer nothing to aim at while “get mobile LCP under 2.5 seconds” does.
- 2.5 sLCP target: biggest above-the-fold element painted by then.
- 200 msINP target: reaction time after a tap or click.
- 0.1CLS target: how far stuff may jump during load.
- 75%share of real visits that must hit each target, phones and desktops judged apart.
- 2 MBHTML Googlebot will read per file; anything beyond is ignored.
Three things trip people up here. The numbers come from real people, for starters, gathered anonymously through the Chrome User Experience Report from Chrome users who opted in. So your shiny Lighthouse 100 on a MacBook in the office tells you very little if your buyers are on ₹12,000 Android phones with one bar of 4G.
Next, that 75th percentile. Three visits in every four have to make the cut. Load in 1.8 seconds for most folks and 6 seconds for the unlucky quarter, and you’ve failed.
And there’s a “poor” line too: LCP slower than 4 seconds, INP over 500 milliseconds, CLS beyond 0.25. Land between good and poor and Google files you under “needs improvement”.
| Metric. | What it measures. | Good. | Needs work. | Poor. |
|---|---|---|---|---|
| LCP. | How fast the biggest visible element loads. | ≤ 2.5 s. | 2.5 to 4 s. | > 4 s. |
| INP. | How quickly the page reacts to input. | ≤ 200 ms. | 200 to 500 ms. | > 500 ms. |
| CLS. | How much the layout jumps around. | ≤ 0.1. | 0.1 to 0.25. | > 0.25. |
So will hitting these push you up the rankings? A little, maybe. Google’s people have said it again and again: a brilliant page on a slowish site can still beat a flimsy one that pops up instantly. Speed nudges close contests. That’s about it, rankings-wise. For revenue it’s a much bigger deal, because people bail on slow pages, and they really bail when a button leaps away just as their thumb lands. In our experience the sales argument for speed beats the SEO argument nearly every time.
The 12 areas of technical SEO, explained simply
People talk about “doing technical SEO” as if it were one job. It’s closer to twelve jobs that keep bumping into each other. For each one below you’ll get a plain definition, the mistakes we keep running into, and a picture of what healthy looks like. Where we’ve got a dedicated page, there’s a link if you want the long version.
1. Crawlability and robots.txt
Type /robots.txt after your domain and you’ll see it: a tiny robots.txt text file naming folders that bots are asked to skip. Think of it as a “staff only” sign on a door, not a lock. Googlebot respects the sign; scrapers walk straight through.
What goes wrong: The horror story everyone in SEO has heard: launch day, somebody copies the staging robots.txt across, and its single line “Disallow: /” tells every bot to stay out of the entire site. Big brands have done it. Quieter blunders are more common, like blocking the folder with your CSS and JS (so Google can’t render anything properly) or blocking a parameter that happens to power your best category pages.
What good looks like: A file you can read in thirty seconds. Junk gets blocked (site search, cart, checkout, runaway filter combos), the sitemap URL sits at the bottom, and a human eyeballs it whenever code ships.
Heads up: a robots.txt block won’t pull a page out of Google. Got backlinks to it? Then the naked URL can still show up in results, minus a description, because Google never read the page. Want it gone? Let bots in and add noindex. Our noindex vs robots disallow guide explains why.
2. Crawl budget and crawl efficiency
Crawl budget is roughly how many of your URLs a search engine can and will fetch over a stretch of time. Running a 50-page brochure site? You can skip this section, honestly. But an online shop with 200,000 products, plus filters spawning millions of URL variants, lives or dies by it.
What goes wrong: Faceted navigation, nearly always. Colour, size, brand, price, sort order: multiply those together and you get an almost endless pile of URLs showing the same shoes in a slightly different order. Meanwhile Googlebot is busy with “red, size 9, cheapest first, page 14” while yesterday’s new collection sits there unvisited.
What good looks like: Filter pages people genuinely search for (“women’s running shoes”, say) get crawled, indexed and linked like proper landing pages. The worthless combinations aren’t linked at all, or they’re tamed with parameter rules or robots.txt. Pull up the server logs and most of Googlebot’s hits land on pages that make money. Our crawl budget optimisation page goes deeper.
3. Indexation control
You decide which URLs deserve a spot in Google, rather than letting the CMS decide for you. The levers are meta robots tags, the X-Robots-Tag header (handy for PDFs), canonical tags and good old redirects.
What goes wrong: Mostly index bloat. WordPress tag archives breed. So do author pages, flimsy city pages, print versions and URLs with session IDs, until half of what Google holds for you is clutter. That drags down quality signals and spreads ranking power thin. The reverse happens as well, where a money page is still carrying a noindex tag some developer added in testing and forgot.
What good looks like: Search Console’s indexed count lands close to the number of pages you’d actually like to rank, and every one of them earns its place. Here’s how we check that on our indexation control page.
4. Site architecture and internal linking
Ever been lost in a badly signposted hospital? Bad site architecture does that to crawlers. Good structure is the opposite: reception points you to cardiology, cardiology has a sign for ward 4, done in three turns.
What goes wrong: Key pages buried six or seven clicks down. Menus built purely in JavaScript that bots struggle to follow. Category pages linking out to every product while no product ever links sideways to its cousins. Then there’s anchor text reading “click here,” which tells Google precisely nothing about where it leads.
What good looks like: Money pages are three clicks from home, tops. Related pages link to one another inside the body copy, rather than only via the footer. Hub pages pull a topic together and point down to each detailed page beneath, and breadcrumbs tell people and bots alike exactly where they’re standing.
Our site architecture service handles URL structure, hub design and the internal link plan. Torn between folders and subdomains? Have a look at subdirectory vs subdomain.
5. JavaScript rendering
Build a site in React, Vue or Angular and the server may ship an almost empty HTML file, leaving the visitor’s browser to assemble everything. That’s client-side rendering. Can it rank? Yes. Is it riskier at every single step? Also yes.
What goes wrong: Content that only appears after someone clicks or scrolls. “Links” that are really buttons with click handlers instead of proper <a href> tags, so crawlers have nowhere to go. Titles and canonicals that switch after load. And the sneaky one: missing pages answering 200 OK because the app does its own routing, which Google then labels as soft 404s.
What good looks like: Copy and links arrive baked into the server’s HTML, thanks to server-side rendering, static generation or pre-rendering. JavaScript then layers interactivity on top (developers call that hydration). Want a two-minute test? Right-click, choose View Page Source rather than Inspect, and Ctrl+F for a sentence from your main copy. No match means some crawlers can’t see it either.
6. Page speed and Core Web Vitals
We covered the three Core Web Vitals in the table above. Improving them almost never comes down to one magic switch; it’s usually a dozen small delays you shave off one by one.
Why LCP is slow, usually: a massive uncompressed hero image, that same image set to lazy-load even though it’s the first thing anyone sees, a sluggish server, or CSS and fonts that are render-blocking.
Why INP is poor, usually: bloated JavaScript clogging the main thread. Every chat bubble, heatmap tool and ad script adds weight, and a tap sets off long tasks that make the screen freeze for half a second.
Why CLS is bad, usually: ad slots and photos with no width or height set. Or a late web font that reflows every line, or that cookie banner shoved in at the top once the page has settled.
Quick wins for LCP
- Serve images in WebP or AVIF.
- Never lazy-load the hero image.
- Use preload for the LCP image.
- Put a CDN and page caching in front of the server.
Quick wins for INP
- Kill tags nobody has looked at in a year.
- Break up long JavaScript tasks.
- Defer non-essential scripts.
- Give instant visual feedback on clicks.
Quick wins for CLS
- Set width and height on all images.
- Reserve space for ads and embeds.
- Use font-display wisely.
- Never push content down after load.
Lab versus field data confuses loads of teams. Our explainer on field data vs Lighthouse shows how a 98 in testing can still fail in Search Console. Want hands-on help? That’s our Core Web Vitals service.
7. Mobile-first indexing
Google crawls and indexes with a smartphone bot now. Put simply, your mobile site is the site Google grades. If the phone version hides copy, drops internal links or leaves out schema that the desktop version has, Google only ever sees the cut-down edition.
What goes wrong: Tabs and accordions whose content only loads via JavaScript when tapped. Separate m-dot sites that never got half the pages. Mobile menus with whole sections chopped out.
What good looks like: One responsive site. Phones and desktops get identical copy, links, metadata and structured data; just the layout shifts around.
8. Structured data
Structured data is a bit of code, usually JSON-LD, that labels what’s on a page. This is a product. Here’s its price. That’s the company behind the site, and this person wrote the article. Search engines and AI models have less guessing to do when it’s there.
A word of warning: half the schema guides online are out of date. Google restricted FAQ rich results to government and health sites in August 2023, then stopped showing them in Search altogether in May 2026. HowTo rich results went in 2023. During 2025 Google retired a fresh batch, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement and Vehicle Listing among them. So if an agency is still promising FAQ dropdowns under your listing, ask them some pointed questions.
Still worth doing, though? Yes. Product, review, organisation, article, breadcrumb, local business and video markup still drive visible features. It also helps search engines tie your brand to a knowledge graph entity, and tidy, accurate markup makes your facts easier for machines to pick up and reuse. More on our schema implementation page and in the schema markup glossary entry.
9. International SEO and hreflang
Selling into several countries or languages? Then Google needs telling which version belongs to whom, and that’s the job of hreflang. It says, in effect, “/en-gb/ is for British readers, /en-in/ is for India, /de/ is German, and they’re all the same page in different clothes.”
What goes wrong: Hreflang breaks if you look at it funny. Tags point at URLs that redirect or 404. Return links go missing, so page A names page B and B never names A back. Codes get mangled (“en-UK” isn’t a thing; it’s “en-GB”). And IP-based auto-redirects can mean Googlebot, which mostly crawls from American addresses, never once lays eyes on your other editions.
What good looks like: Every edition names all its siblings (itself too) and there’s an x-default catching everyone else. We want the CMS spitting those tags out automatically, because hand-editing 4,000 rows in Excel never ends well. As for visitors, offer them a little country picker rather than bouncing them around by IP. Still picking a setup? Read subfolders vs country domains and our international SEO entry.
10. Status codes, redirects and HTTPS
Every URL answers with a status code, and you’d be amazed how often they’re wrong. Chain four redirects together and you waste crawl time while bleeding a little signal on each hop. Create a loop and crawling stops dead. Leave a discontinued product returning 200 with “out of stock” on it and it’ll eat crawl budget for years.
| Code. | Meaning. | When to use it. |
|---|---|---|
| 200. | OK. | The page exists and is working. |
| 301. | Moved permanently. | The page has a new permanent home. Passes signals to the new URL. |
| 302 / 307. | Moved temporarily. | Short-term moves, like a seasonal promotion. Not for migrations. |
| 404. | Not found. | The page does not exist. Fine for genuinely dead URLs. |
| 410. | Gone. | The page was removed on purpose and will not return. Dropped a little faster than 404. |
| 503. | Service unavailable. | Planned maintenance. Tells crawlers to come back later rather than drop pages. |
HTTPS is simply expected now. Ranking-wise it’s a featherweight signal; Chrome’s red “Not secure” label does the real damage. For us the job is boring but strict: one address per page (https, www or not, slash or not), with every other spelling bouncing there in one hop.
Redirect or canonical, which one? We wrote up 301 vs canonical for exactly that headache.
11. Site migrations
We call it a migration whenever something big changes underneath a site: a new domain, a new CMS, HTTP to HTTPS, a fresh URL scheme, a redesign that swaps the templates. It’s the moment technical SEO earns its fee, because one botched launch can erase years of organic growth inside a week.
What goes wrong: There’s no redirect map, or there’s a lazy one that dumps every old URL on the homepage (Google treats that much like a 404). Copy gets trimmed in the redesign because it “looked busy.” Internal links keep pointing at old addresses. The staging noindex sneaks onto production. And somebody, somewhere, picks Black Friday week for go-live.
What good looks like: Before anyone touches a template, we crawl the old site top to bottom. Every URL that has traffic, backlinks or rankings gets matched to its exact new twin, and the staging build gets crawled with that same tool so the two lists can be diffed. Launch lands in a sleepy week. After that we’re checking crawl errors, coverage and rankings every single day for a minimum of six weeks. Our migration planning service runs exactly that playbook.
Rule of thumb: some wobble after a migration is normal, even a flawless one, since Google needs a few weeks to reprocess everything. A slide that’s still going after six to eight weeks isn’t normal. Nine times out of ten it traces back to missing redirects, deleted content or broken internal links.
12. Log file analysis and monitoring
Your server writes down every request it gets, Googlebot, Bingbot and AI crawler visits included. Log file analysis reads those records, which means you see what bots really did instead of what a tool estimates.
Logs answer things nothing else can. Which folders does Googlebot hammer, and which does it ignore? How many hours pass between publishing and the first crawl? What share of hits get wasted on redirects, errors and parameter junk? Has GPTBot or ClaudeBot shown up yet, and which pages did they grab?
Then comes monitoring, which never really ends. Code ships, things snap. We set alerts that fire within 24 hours if robots.txt is edited, a noindex lands on an important template, server errors jump or Core Web Vitals begin to slip.
Symptoms and their likely causes
Clients rarely arrive with a diagnosis. What they bring is a complaint: “our traffic halved in March,” “this page just won’t rank,” “why is Google showing the old URL?” Below is our cheat sheet, symptom on the left, the usual suspects next to it. It’s where we’d start poking, nothing more, though it’s right surprisingly often.
| What you notice. | Most likely causes. | Where to look. |
|---|---|---|
| Organic traffic dropped suddenly. | Noindex or robots.txt change, botched release, migration without redirects, manual action, core update. | Search Console coverage and manual actions, release history, robots.txt. |
| New pages take weeks to get indexed. | Weak internal linking, crawl budget wasted elsewhere, thin or duplicate content. | URL Inspection tool, server logs, internal link counts. |
| “Crawled, currently not indexed” on many pages. | Low-value or near-duplicate pages, thin templates, programmatic pages without unique value. | Page Indexing report, content comparison between pages. |
| Google ranks the wrong URL. | Conflicting canonicals, duplicate content, keyword cannibalisation, internal links pointing to the wrong version. | URL Inspection (Google-selected canonical), internal anchor text. |
| Rankings are fine, conversions poor. | Slow INP, layout shifts, mobile usability problems, broken forms. | Core Web Vitals report, real user monitoring, form analytics. |
| Rich results disappeared. | Markup errors, the rich result type was retired, policy change. | Rich Results Test, Search Console enhancements, Google’s changelog. |
| Site not cited in AI answers. | AI crawlers blocked, content rendered only by JavaScript, weak entity signals. | robots.txt, server logs for AI bots, view-source check. |
Traffic dropped and you can’t explain it? Our answer on why organic traffic drops walks through the triage step by step. Staring at a giant list with no clue where to begin? Try what to fix first.
Noindex, canonical, 301 or robots.txt: which one do you need?
We see these four mixed up constantly, and picking the wrong one can hurt. Each answers its own question. Robots.txt is about crawling. Noindex is about indexing. A canonical tag is a hint about which duplicate you’d prefer, while a redirect physically moves people and signals somewhere new.
| Tool. | What it tells search engines. | Users still see the page? | Passes ranking signals? | Use it when. |
|---|---|---|---|---|
| 301 redirect. | “This moved. Go there instead.”. | No, they are sent to the new URL. | Yes. | A page has a permanent new home, or two pages are merged. |
| Canonical tag. | “This is a copy. Please index that one.”. | Yes. | Mostly, if Google agrees. | Near-duplicates must stay live, such as tracking or sort parameters. |
| Noindex. | “You can read this, but don’t show it in results.”. | Yes. | No, over time. | Pages useful to users but not to searchers, like thank-you pages or filtered internal lists. |
| Robots.txt disallow. | “Don’t request this path.”. | Yes. | No. | Saving crawl budget on endless low-value URLs. |
Here’s a combo we untangle a lot: noindex plus a robots.txt block on one URL. Blocked bots can’t open the page, so they never spot the noindex, and that URL lingers in results for months. Just as messy: a canonical aimed at a page that’s noindexed, or one that redirects elsewhere. Send signals that contradict each other and Google shrugs, ignores your hints and makes its own call.
Technical SEO for AI search and answer engines
Remember when a results page was just ten blue links? Now there are AI Overviews sitting on top, and people ask ChatGPT, Perplexity, Gemini, Copilot or Claude directly, getting an answer with a couple of cited sources. We do a lot of generative engine optimisation and answer engine optimisation, mostly content and reputation work. Without sound plumbing, though, that effort goes nowhere.
Can AI crawlers reach you?
Every AI company runs its own bots under their own user-agent names. OpenAI has GPTBot for training and OAI-SearchBot for search features. Anthropic sends ClaudeBot, Perplexity sends PerplexityBot, and Google offers Google-Extended as a separate opt-out token for AI training that doesn’t touch normal Googlebot. Loads of sites block some of these without knowing, usually thanks to a security plugin or a CDN’s bot-fighting toggle someone switched on years ago.
Should you let them in? That’s a business decision, not a technical one. Shutting out training bots might protect your content. Shutting out search-style AI bots might mean you’re never cited. We’ve laid out both sides in should we block AI crawlers and in the AI crawler glossary entry. Our part is making sure the choice is deliberate and that your settings actually do what you decided.
Can they read you?
Plenty of AI crawlers grab the raw HTML and never execute JavaScript like Googlebot does. A browser-rendered site can look like a blank sheet to them. Server-rendered pages with sensible headings and plain facts near the top are far easier to read, and easier to quote.
Can they trust and connect you?
AI systems lean hard on entities: who you are, what you do, where, and who’ll vouch for you. Organisation markup with sameAs links to your real profiles helps. So does using one consistent name everywhere, having proper author pages, and keeping your facts accurate. Our entity and semantic SEO service takes this further.
What about llms.txt?
llms.txt is a proposed file that gives language models a short markdown map of your best content. Cheap to add, can’t hurt. Let’s be straight about it, though: it’s a proposal, not an agreed standard, and none of the big AI search products has publicly confirmed using it to pick sources. Nice extra. Not a substitute for crawlable, well-built pages.
Three worked examples
Advice in the abstract only gets you so far. So here are three situations, written as composite scenarios stitched together from patterns that show up in audit after audit. Names are invented. The problems, and the fixes, are real and depressingly common.
Example 1: an online store drowning in filter pages
The situation. A fashion retailer carries about 8,000 products, yet Search Console lists more than 1.2 million discovered URLs, most marked “Discovered, currently not indexed.” New collections take three or four weeks to appear in Google.
What the audit finds. Each filter on each category page spits out a crawlable link, and colour, size, brand, material, price band plus four sort orders can all stack. Server logs show more than 70% of Googlebot’s requests going to combinations no human ever searches. Product pages, meanwhile, get crawled about once a month.
The fix. The team finds roughly 300 filter combos that match real demand, things like “black leather boots” or “linen shirts for men”, and turns them into proper landing pages with their own titles, intros and internal links. Every other combination stops being a normal anchor link. Sort parameters get blocked in robots.txt, canonicals mop up the rest, and the XML sitemap is rebuilt to list indexable URLs only.
What changes. Over the next two months the discovered-URL count drops hard, Googlebot drifts back towards products, and new collections start appearing within days rather than weeks. Those fresh filter pages begin pulling in long-tail traffic the shop never had. Our ecommerce SEO page covers this in more depth, and the faceted navigation entry explains the core idea.
Example 2: a SaaS company whose blog was invisible
The situation. A software firm rebuilds its marketing site in a JavaScript framework. It looks fantastic. Six months on, though, the blog that used to feed a steady trickle of sign-ups has lost most of its organic traffic, and nobody on the team can say why.
What the audit finds. Everything renders in the browser. Fetch the raw HTML of any post and you get a title tag, one empty div and a fat script bundle. Googlebot renders the pages eventually, slowly and not every time. Links inside the articles are buttons wired to click events rather than real links, which leaves related posts stranded from each other, and several AI crawlers see nothing whatsoever.
The fix. Developers flip the blog and the main landing pages over to server-side rendering, using an option the framework already shipped with. Body links become proper anchor tags again. Canonical and meta tags move into the server response so they exist before a single script runs.
What changes. Raw and rendered HTML finally match. Indexing recovers over the following weeks and the blog creeps back for its old terms. Bonus: Largest Contentful Paint gets quicker too, since the browser isn’t waiting on a giant script to assemble the page. Sound familiar? Have a look at SEO for SaaS and technology companies.
Example 3: a publisher’s redesign that went wrong
The situation. A regional news-and-guides site ships a redesign with new URLs, dropping dates from the paths and renaming categories. A fortnight later organic traffic is down by nearly half.
What the audit finds. Redirects exist for the top 500 articles only. The remaining 14,000 old URLs now throw 404s, and plenty of them had backlinks from other sites. Older articles still link internally to the old addresses, so the site is marching its own readers, and crawlers, into dead ends.
The fix. Every old URL gets pulled together from a pre-launch crawl, analytics, Search Console and backlink tools. From that list the team writes a rule-based redirect map pairing each old address with its new match. Internal links get rewritten in bulk inside the database to point straight at new URLs, and the handful of articles with no new home get a deliberate 410.
What changes. It isn’t instant, since Google has thousands of URLs to recrawl. But the slide stops within days, and over the next couple of months most of the lost traffic finds its way back. The moral? A redirect map isn’t a nice extra. It basically is the migration. Our migration planning service exists so you never have to learn this one the hard way.
How our technical SEO audit works
An audit ought to end with a short list your developers can actually ship, ranked by what each item is worth. A 200-page PDF of tool warnings helps nobody. Here’s how we run ours, week by week, so you know what you’re paying for before you pay.
- Week 1
Access and context
We ask for read access to Search Console, Bing Webmaster Tools, analytics and, if you can get them, server logs. Then we learn which pages bring in money, what’s changed lately and what your team is (and isn’t) able to change. A fix your platform won’t allow is worth zero, so we’d rather know up front.
- Week 1 to 2
Full crawl and render comparison
Two full crawls: plain HTML first, then with JavaScript switched on. Laying them side by side shows exactly what leans on scripts. We crawl as a smartphone too, because that’s how Google indexes you.
- Week 2
Index and log analysis
Three lists get compared. URLs you want indexed, URLs Google has indexed, and URLs Googlebot really crawls. The gaps between those lists are where most of the trouble hides.
- Week 2 to 3
Performance and templates
Core Web Vitals get reviewed per template rather than per page. If the product template fails INP, every product fails, and one fix repairs thousands of URLs at once.
- Week 3
Prioritised findings
Each issue turns into a ticket: problem, evidence, fix, expected impact and a rough effort guess. Tickets are ranked so your developers start where it counts.
- Week 4 onward
Implementation support and checks
We field developer questions, review changes on staging before launch, then confirm in Search Console and the logs that each fix took. Nothing’s marked done until the data says so.
What a finding looks like
Below is a sample ticket of the sort your developers would get. You’ll notice it explains the why, and not only the what.
Issue: Product pages load the main product image with loading=”lazy”.
Evidence: Field LCP on product pages is 3.9 seconds at the 75th percentile on mobile. The lazy-loaded image is the LCP element on 94% of tested product URLs.
Fix: Remove lazy loading from the first product image only, add fetchpriority=”high” and preload it. Keep lazy loading on gallery thumbnails below the fold.
Expected impact: High. Affects every product page. Likely to move LCP into “good” or close to it.
Effort: Small. One template change.
Curious about our general approach? It’s on how we work, and the full scope of an audit is spelled out in what does a technical SEO audit check.
How to prioritise technical fixes
Run any crawler over a real site and it’ll throw up 400 “issues.” Your developers have maybe four days this sprint. Most of those warnings are noise anyway, so we sort everything with two blunt questions. What will fixing it do for traffic or revenue? And how painful is it to build?
Our running order rarely changes. Blockers first, anything stopping crawling or indexing, since those cap every other gain. Template problems next, where one change mends hundreds of URLs. Fiddly page-by-page polish? That waits.
Context matters too. A missing canonical on a five-page site is trivial. The same issue on a 100,000-page store can be the biggest problem on the list. Treat tool severity labels as suggestions and always ask, “How many pages, and how much revenue, does this touch?”
A free 40-point technical SEO checklist
Truth is, you don’t need us for the basics. Grab Search Console, a free crawler and a cup of chai, and go down this list. Tick everything and you’re ahead of most sites we look at. Can’t tick a few? Good, now you know where to dig.
Crawling and access
- yourdomain.com/robots.txt opens with a 200 status.
- No Disallow rule covers your CSS, JS or image folders.
- Nothing you hope to rank sits behind a Disallow.
- A “Sitemap:” line points to your XML sitemap.
- The XML sitemap lists only indexable, 200-status, canonical URLs.
- The sitemap is submitted in Search Console and Bing Webmaster Tools.
- No important page returns a 4xx or 5xx error.
- Server response time is consistently fast (aim for under 600 ms).
Indexing and duplicates
- Indexed page count in Search Console roughly matches your real page count.
- No key page carries a noindex tag by mistake.
- Every indexable page has a self-referencing canonical tag.
- Only one version of the site resolves (https, www or non-www, slash rule).
- Other versions 301 redirect in a single hop.
- Tag, archive and internal search pages are noindexed or controlled.
- No large groups of near-identical pages.
- Google-selected canonical matches yours on key pages.
Architecture and links
- Key pages are within three clicks of the homepage.
- No orphan pages among those you want to rank.
- Navigation links are real HTML links.
- Body content links to related pages with descriptive anchor text.
- Breadcrumbs appear on deep pages.
- No internal links point to redirects or 404s.
- URLs are short, readable and lowercase.
- Pagination is crawlable with normal links.
Rendering and mobile
- Main content appears in the raw HTML source.
- Title, meta description and canonical are in the raw HTML.
- Mobile and desktop show the same content and links.
- No content hidden behind clicks that only load via JavaScript.
- Text is readable on mobile without zooming.
- Tap targets are not crammed together.
Speed and stability
- LCP is under 2.5 s for 75% of mobile visits.
- INP is under 200 ms for 75% of mobile visits.
- CLS is under 0.1 for 75% of mobile visits.
- Images are compressed and served in WebP or AVIF.
- All images and embeds have set width and height.
- Third-party scripts are audited at least twice a year.
Structured data and extras
- Organisation markup with logo and sameAs profiles on the homepage.
- Product, article, breadcrumb or local business markup where relevant.
- No markup errors in the Rich Results Test.
- Markup matches what users actually see on the page.
- hreflang is correct and reciprocal, if you run multiple languages.
- AI crawler access in robots.txt matches your deliberate decision.
Stuck on one? The free tools in the next section cover nearly all of them. Still stuck, drop us your URL and we’ll tell you which boxes you’re missing. No pushy follow-up calls, promise.
Free tools you can use today
A surprising amount can be diagnosed without spending a rupee. These are the free tools we’d point a friend towards, along with what each is genuinely good at and where it’ll mislead you.
| Tool. | Best for. | Watch out for. |
|---|---|---|
| Google Search Console. | Index coverage, URL inspection, Core Web Vitals field data, manual actions, sitemaps. | Data is sampled and delayed by a few days. |
| Bing Webmaster Tools. | Bing indexing, a free site scan, backlink data, IndexNow submissions. | Often ignored, but Bing data also feeds some AI products. |
| PageSpeed Insights. | Real-user Core Web Vitals plus a lab test, side by side. | Field data only shows if the page has enough traffic. |
| Chrome DevTools and Lighthouse. | Finding exactly which script, image or font is slow. | Lab results on a fast machine flatter your site. |
| Rich Results Test and Schema.org validator. | Checking structured data for errors. | A valid schema does not guarantee a rich result. |
| Screaming Frog (free version). | Free crawl of 500 URLs: broken links, redirect chains, missing titles. | Paid licence needed for larger sites and JavaScript rendering. |
Tools report symptoms, though. Screaming Frog will happily tell you 3,000 pages share a title; it can’t tell you those 3,000 pages shouldn’t exist in the first place. That call needs a person who understands your business, and it’s usually where the real value is.
Technical SEO myths worth dropping
Old advice has a long half-life in SEO. These are the ones that come up in nearly every first call, next to what’s actually the case.
Working with your developers
Here’s the uncomfortable truth: technical SEO lives or dies in the dev backlog. An audit nobody builds is an expensive PDF. A few habits decide whether an audit ships or gathers dust.
Speak their language. “Google wants this” means nothing to an engineer. What they need is the problem, evidence they can reproduce, the exact change and a way to test it. We write tickets that drop straight into Jira, Linear or whatever board you use.
Respect the platform. Shopify forces every product under /products/ and every category under /collections/, Webflow has its quirks, and headless setups have a whole different set. So a recommendation your stack can’t take is pointless; we hunt for the next-best route instead. Haven’t picked a platform yet? Our WordPress vs Shopify breakdown might help, as might site builder vs CMS.
Fix templates, not pages. Nearly every technical issue sits in a template. Change the product template once and every product benefits, so we group findings by template and your team touches as few files as possible.
Add guard rails. The best fix is one nobody can undo by accident. A couple of automated checks in your deploy pipeline can block any release that slaps noindex on the homepage, edits robots.txt or breaks canonicals. It’s an afternoon’s work. It can save you months.
If a rebuild is coming regardless, bake SEO in from the first sprint. Retrofitting it later costs a small fortune by comparison. Our website design and development team builds with these rules baked in.
What technical SEO costs and how long it takes
Price mostly tracks site size, platform complexity and how much hands-on build help you want. A 30-page WordPress site and a headless store with half a million URLs are different animals. Our pricing page shows how we scope, and how much SEO should cost explains what moves prices across the industry. Weighing a one-off project against monthly support? See retainer vs project.
Typical timelines
A few fixes work almost overnight. Delete a rogue noindex, say, and pages often reappear a few days after Googlebot’s next visit. Bigger jobs crawl along slower (new navigation, a move to server-side rendering) since developers need weeks to build them and Google then needs to recrawl everything. How long SEO takes goes into the detail.
When you probably don’t need a technical SEO project
Not every site needs a big technical engagement. Small site, solid platform, no indexing warnings in Search Console, Core Web Vitals passing? Then put the money into content and authority building instead. We’d rather say so than sell you an audit you don’t need.
When you definitely do
- A migration, redesign, domain change or platform switch is on the calendar.
- Traffic fell and nobody can say why.
- Your site is big: thousands of products, listings, locations or articles.
- It’s built on a JavaScript framework.
- New pages take weeks to show up in Google.
- You trade in several countries or languages.
We often run technical work alongside local SEO for multi-branch businesses, with analytics and measurement to prove the impact, and with conversion rate optimisation, so quicker pages actually turn into more sales.
Common questions about technical SEO
What is the difference between technical SEO and on-page SEO?
Think of a newspaper. The reporting (headline, story, whether it answers the reader) is on-page. The printing press and the delivery van are technical. Our lazy test: copywriter can fix it? On-page. Needs somebody with server or repo access? Technical.
Can technical fixes alone improve rankings?
They can, provided technical trouble was what held decent content back. Rankings can leap after nothing more than lifting an index block, sorting out rendering or merging duplicate content, with zero copy changes. On a site that’s already clean, though, piling on more technical work won’t rescue weak pages. Content and authority become the levers then.
How often should a technical audit be done?
Yearly works for most firms, with a mini check right before and right after any redesign or big release. A 50,000-SKU shop deploying every week is different; it wants alerts humming 24/7, or the broken canonical shows up in some quarterly deck long after the damage.
Does site speed really affect rankings?
Yes, a bit. Core Web Vitals feed Google’s page experience signals, and those behave like a tie-breaker. Where speed really bites is with humans. Shoppers ditch laggy pages mid-checkout. That lost revenue is the real argument.
Is HTTPS still a ranking factor?
Back in 2014 Google announced HTTPS as a small ranking boost. Nowadays nearly every serious site runs on it, so it won’t set you apart. Skip it, though, and Chrome slaps a “Not secure” warning on your pages, and visitors leave. Call it table stakes.
Do I need an XML sitemap for a small site?
Not strictly. A tidy 20-page site with good links gets found anyway. WordPress, Shopify and Wix all spit one out automatically though, and it nudges Google towards fresh or edited pages faster. Zero cost, zero downside if it’s clean. Keep it.
What is crawl budget and should I worry about it?
It’s how many of your URLs a search engine is prepared to fetch in a given window. Below a few thousand pages, forget about it. Big shops, marketplaces, classifieds and news publishers are another story, particularly once filters and URL parameters start multiplying pages.
Does Google penalise duplicate content?
Not with a penalty, no. Google filters duplicates out and shows one version. The trouble is it might pick the version you didn’t want, and the ranking signals get split across the copies. Scraping or copying content to game rankings is a separate matter that can draw action. Ordinary duplication from parameters or print pages just needs tidying.
Will moving to a new CMS hurt my SEO?
It might. It doesn’t have to. Blame usually lands on the new platform unfairly. Look closer at any post-switch crash and you’ll typically find redirects nobody set up, pages quietly dropped, and internal links still aimed at old URLs. Map every redirect properly and the dip is usually short.
Is AI-generated content a technical SEO problem?
Not on its own. Google says it judges content by quality, whoever or whatever wrote it. Where it becomes a technical headache is scale: churn out thousands of thin AI pages and you’ve built yourself index bloat and a quality problem in one go. We go into more detail in does Google penalise AI-written content.
What does a technical SEO specialist actually deliver?
You should get a ranked list of problems with evidence and exact fixes, hands-on help getting them built, and proof afterwards that they worked. You should also come away understanding your site’s health well enough for your own team to keep it that way. If all that lands in your inbox is an automated report, you’ve paid for a tool export.
Can you work with our in-house developers?
Absolutely, and most of our technical projects run exactly like that. We write tickets, answer questions, review staging builds and check the results, while your team keeps hold of the code. Wondering whether to keep SEO in-house or bring someone in? Our take is in in-house vs agency.
Inside Technical SEO
The specific pieces of work this service is made of, each scoped separately.
Crawl budget and log analysis
Find out what search engines actually spend their crawl on, which on large sites is rarely your important pages.
Crawl budget and log analysisCore Web Vitals remediation
LCP, INP and CLS sorted on real phones in real hands, not just inside a Lighthouse run.
Core Web Vitals remediationJavaScript rendering audit
Make sure the content you think you published is actually in what search engines and models receive.
JavaScript rendering auditSite architecture and internal linking
URLs, hubs and internal links planned so link equity flows where you need it.
Site architecture and internal linkingIndexation control
Pick what belongs in Google, then make noindex, canonicals and sitemaps agree with you.
Indexation controlStructured data implementation
Describe your pages in the vocabulary machines read, correctly and in sync with what is visible.
Structured data implementationMigration and replatform planning
New domain, new CMS, new URLs, and your years of rankings come along for the ride.
Migration and replatform planningTechnical SEO by industry
The same discipline, with each sector’s own buyers, rules and measures.
Technical SEO by location
Local market notes for the places this comes up most.
Other services
- Generative Engine Optimization
- Answer Engine Optimization
- Entity and Semantic SEO
- Local SEO
- Ecommerce SEO
- Digital PR and Link Building
- Google Ads Management
- Paid Social and Meta Ads
- Conversion Rate Optimization
- Website Design and Development
- AI Automation and Workflows
- AI Platform Optimization
- Agentic Commerce
- App Store Optimization
- Marketplace Marketing
- Content and Editorial
- Lifecycle and Email
- Analytics and Measurement
- Brand and Creative
Ask us to look at your Technical SEO setup
We dig into your site first. So when we talk, it’s about what we found, not small talk.
Diagnosis first. Sales pitch never.
If something simpler would fix it, we will say so. That is usually the most useful thing we can tell you.
