AI Search Optimisation
Technical SEO,done by an engineer
Technical SEO is an infrastructure problem wearing a marketing hat. Crawl budget, indexation, render behaviour and Core Web Vitals are all engineering questions, and most audits stop at listing symptoms. I find the cause and fix it, working in the codebase rather than sending you a spreadsheet.
- Real crawl and log data
- Fixes, not just findings
- I do the implementation
Sound familiar
What a stuck site sounds like
We got a 200-page audit and no idea what to do first.
Half our pages are not indexed and nobody knows why.
The dev team says it is fine and the SEO says it is not.
Technical SEO is diagnosis, not a checklist
Technical SEO has a bad reputation because most of it is delivered as a tool export: two hundred findings, colour-coded, sorted by a severity score the tool invented. That document tells you what is unusual about your site. It does not tell you what is costing you money.
The job is diagnosis. Which of these issues is actually suppressing performance, in what order, and what is the cheapest fix that removes it. Usually two or three things matter and the rest is noise.
Start where the truth is
I crawl the site the way a search engine would, then compare that to what has actually been indexed, then look at server logs where I can get them. The interesting information is in the gap between those three.
Pages you think exist that were never crawled. Pages crawled repeatedly that generate nothing. Parameter combinations creating thousands of near-identical URLs. Sections behind a redirect chain long enough that crawlers give up. None of that shows in a page-by-page audit, and all of it is expensive.
What I actually look at
Crawl efficiency
Every site has a finite share of crawler attention. Sites waste it on faceted navigation generating combinatorial URLs, on paginated archives with no value, on internal redirect chains, and on pages that return 200 for content that does not exist. Reclaiming that budget is often the single fastest improvement available, because it costs nothing to serve fewer useless URLs.
Indexation gaps
Being crawled and being indexed are different things. Pages get excluded for duplicate content, thin content, canonical conflicts, or because a template emits a directive nobody meant to ship. I work through the exclusion reasons in the search console, in volume, and trace each cluster to the template that caused it. Fixing one template usually fixes hundreds of pages.
Rendering
If content depends on client-side JavaScript, you are relying on a rendering step that is slower and less reliable than the initial fetch. Sometimes that is fine. Often the important content, the internal links, or the structured data never make it in. I check what a crawler sees, not what a browser shows.
Core Web Vitals, at the cause
Most Core Web Vitals advice is a list of symptoms. The causes are usually a handful: render-blocking resources in the head, images without dimensions, fonts loading without a fallback, third-party scripts injected before anything useful, and layout shifted by late-arriving content. Fixing the cause fixes several metrics at once.
I also care about the difference between lab and field data. A perfect lab score with poor field data means real users on real connections are having a worse time than your testing suggests, and the field number is the one that counts.
Structured data as a graph
Covered in more depth in the generative engine work, but it belongs here too: schema should describe an entity, with stable identifiers and explicit relationships, not decorate a page with unconnected blocks.
Internal linking as architecture
Internal links are how importance is distributed and how deep pages get discovered. Sites that publish steadily without ever revisiting architecture end up with orphaned pages, flat hierarchies where nothing signals priority, and navigation that links to everything equally, which signals nothing.
Findings are not the deliverable
The deliverable is a fixed site. I work in the repository, ship the changes, and verify them afterwards. Where a fix belongs with your development team, I write it as a specific ticket with the reason, the change and the acceptance criteria, so it does not sit in a backlog waiting for someone to interpret it.
Then I verify. Recrawl, recheck indexation, recheck field data. A fix that was not verified is a claim.
What you get
Included in every technical engagement
-
Crawl, index and log comparison
What exists, what was crawled, what was indexed. The gaps between those three are where the expensive problems live.
-
Prioritised by impact, not severity score
Two or three things usually matter. You get those first, with the reasoning, rather than two hundred findings sorted by a tool.
-
Implementation, not recommendations
I work in the repository and ship the fixes. Anything that must go to your dev team is written as a ticket with acceptance criteria.
-
Verification after the fact
Recrawl, recheck indexation, recheck field data. A fix that has not been verified is a claim, not a result.
The process
Diagnose, fix, verify
-
Crawl and compare
Full crawl, indexation export and server logs where available, reconciled against each other.
-
Fix the top causes
The two or three issues actually suppressing performance, implemented rather than recommended.
-
Verify and hand over
Recrawl and recheck, then a written record of what changed and what to watch.
Questions
Technical SEO questions
Do you just send an audit, or do you fix things?
I fix things. Audits that end in a spreadsheet are why technical SEO has a reputation for being expensive and inert. I work in the repository and ship the changes. Where something must go through your development team, it goes as a specific ticket with the reason, the change and acceptance criteria attached.
Will you work with our development team?
Happily, and it usually goes well because I can talk to them in their terms. Most friction between SEO and engineering comes from recommendations that arrive without a rationale or a definition of done. Removing that removes the friction.
How long does an engagement take?
Diagnosis is one to two weeks depending on site size. Fixes depend entirely on what is found: some are an afternoon, some are a template rebuild. You get the prioritised list with effort estimates before anything is committed, so you choose what is worth doing.
Our site is huge. Is that a problem?
It usually makes the work more valuable. Large sites are where crawl waste and template-level bugs compound: one bad template can affect fifty thousand URLs, which means one fix can too. The diagnosis takes longer, and the return is generally bigger.
Next step
Send me the domain and your search console access
I will tell you the two or three things actually holding the site back, and roughly what each costs to fix.
- Reply within 24h
- Fixes, not findings