Four jobs, one invoice

SEO is sold as one thing and consists of four, usually done by four different people. Worth separating before you buy: two of the four may already be covered on your side.

  1. The site itself

    Whether a search engine can crawl the pages, index the ones that matter and spend no budget on the rest. Templates, addresses, canonical tags, redirects, schema markup, language versions, speed. This is code and configuration — the half that is done here.

  2. What the pages say

    Which page answers which query, how the category tree is built and whether the text is worth landing on. The structure, the rules and the briefs are set here; writing at volume is a profession of its own.

  3. Who links to the site

    Links and mentions from elsewhere. The part everyone wants to buy — and the part not sold here. The reason is below, under Boundaries.

  4. What gets measured

    Search Console, analytics and rank data, set up not to contradict each other and read before the conclusions rather than after.

Most proposals fold all four into one monthly line. Split apart, it is visible what the money buys — and that two of the four your own team may already be doing.

Why the list is not the work

  1. Half a fix is a new problem

    A canonical tag added to the product template but not to the pagination. A redirect map done for the first hundred addresses and abandoned. An hreflang set in the head with no return declarations. To a crawler each of these is worse than the original fault: now it looks deliberate.

  2. The limit is usually the template

    What holds a category page back is rarely its text. It is faceted filters generating hundreds of thousands of addresses, a heading in the wrong element, a product grid that only appears on scroll. None of that is edited in a content field.

  3. Nobody re-checks

    An item is closed not when it is reported done, but when the page has been fetched again and the change is visible in the server response. Those are different events, and on most projects only the first one happens.

What gets checked

A crawl of the site, its own reports about itself, and one competitor compared on structure. The result is a written list, ordered by the cost of the fault, with each fix described so a developer can do it without the list's author.

  1. Crawl, indexation and the files that disagree

    Every reachable address is crawled, then set against the index, the sitemap and the robots.txt rules. Those four sources rarely say the same thing; where they disagree is where pages go missing.

  2. Duplicates and one address per page

    Filter and parameter addresses, pagination, print views, tag archives, one product reachable by three paths, www against the bare domain. Each case divides the page's signals against itself.

  3. Faceted navigation

    Five filters with ten values each is a hundred thousand addresses, none worth indexing. Which combinations deserve a page, which are blocked, which are left uncrawlable — decided, not left to the theme.

  4. Structure, internal links, orphans

    The category tree against real demand, how far the important pages sit from the front page, and the pages nothing links to. An orphan is found by nobody, the crawler included.

  5. Titles, descriptions, headings, structured data

    Where they are generated, whether the result still reads at the thousandth product, and whether the markup validates. Schema that fails validation is markup nobody will see.

  6. Speed on your site, not on a demo

    Field data where there is enough traffic, lab measurements where there is not — with a date on every figure. What is actually slow — the server, the images, the third-party scripts, the fonts — and which of those is worth the money to fix.

  7. Language versions

    Whether every version declares the others, whether every page answers for its own declaration, and whether a visitor is served the wrong version on a guess about them. One-way hreflang is the usual finding, and it is silently ignored.

  8. What the site already reports about itself

    Search Console coverage, the queries at the edge of visibility, the pages that lost impressions and the dates they did. The diagnosis is usually already written — it only has to be opened.

  9. One competitor, on structure

    Not a league table. One site that is beating you, taken apart for what it does structurally that you do not: how its catalogue is built, what it lets into the index, how its templates are assembled.

The part after the list

  1. Templates first, pages second

    Titles, descriptions, headings, canonical tags, alt text and structured data generated from data the page already holds: product, category, brand, price, language. By hand only where a page has earned it. Not four hundred strings typed once and left to age.

  2. One redirect map, one hop

    Every old address that earned anything points to exactly one new one. Permanent, direct, no chains — and no dumping on the home page because a product is gone and no decision was made about it.

  3. Indexation decided, not inherited

    What enters the index and what does not, agreed between robots.txt, the canonical tags, the robots meta tag and the sitemap. Most sites hold four different opinions there, and the crawler picks the wrong one.

  4. HTML without running the scripts

    Anything that has to rank is served by the server. For a React or Next front end that means server rendering or pre-rendering, not a bet that the crawler reaches the page with the budget to execute it.

  5. Re-checked after deployment

    An item is closed by fetching the page and seeing the change in the response. Structural fixes go to a copy of the site first and reach production the ordinary way, not by editing a live file.

If another team maintains the site, the same work is written up as a specification and the result is checked after deployment. The difference is who types the code, not what gets done — and for the client it is the cheaper arrangement.

This site, checked in public

Instead of a case study with a multiple in the headline — the site you are reading now, taken apart on its own sales page. Three things done right, four not yet. All of it checks from a browser in a minute; that is the only reason the list is printed.

What it gets right

  1. Every page has its own description

    On every published page and every project in the archive the description is written by hand, not assembled from the first paragraph. Titles come from the templates on purpose, with hand-written exceptions where a page has earned one — the reverse of most installations.

  2. The portfolio works without JavaScript

    The archive is served as plain links: the title, the categories and the year as text. With every script switched off it stays in place, whole and in order.

  3. Yoast is plumbing only

    Sitemaps, canonical tags and schema are on; keyword scoring and content analysis are off. A green light in an editor is a plugin agreeing with itself, not a position.

And what it gets wrong

  1. robots.txt argues with the sitemap

    The search page is blocked in one file and submitted in the other. Small in effect, wrong in principle — and exactly the kind of contradiction a crawl surfaces in its first ten minutes.

  2. The language versions are not submitted

    The versions are declared correctly in the head, but the sitemap lists only one of the three. Most of those addresses have never been submitted to anyone.

  3. No robots meta tag anywhere

    The rest of the head is full: title, description, canonical, Open Graph, the card markup, the JSON-LD graph. The robots directive is absent, and nothing tells a search engine how to treat snippets and previews.

  4. And the page weight

    The script bundle on this page is around 110 KB compressed, and a reCAPTCHA loads on every page because of the form in the footer. A page selling speed work answers to the same list as everything above.

Every line here was true on the day this page went up. You are reading them here rather than finding them yourself and wondering what else was left out. If one has been fixed by the time you check — that is what the list is for.

Before launch, and during a move

This work is useful at any time. Two moments are worth more than the rest, and in both of them doing nothing is the most expensive option.

  1. Structure before design

    The category tree and the URL model are decided against real demand — before anyone draws a menu. Navigation drawn first and populated later makes a catalogue unfindable, and it is the one decision that is expensive to unwind.

  2. Templates that carry their own tags

    Titles, descriptions, canonical tags and structured data from product and category data, so a catalogue of three thousand items does not take three thousand decisions. Cheapest built in before launch, tedious to retrofit after.

  3. The inventory before the move

    A new domain, a new platform, a redesign that changes the addresses, a move to another host. Every address that earns anything is gathered from the sitemap, Search Console, the server logs and the links pointing in. What is not on the list cannot be preserved.

  4. A map decided in advance

    Old address to new address, one to one, before anything moves. Whatever has no equivalent gets an explicit decision instead of a redirect to the home page: a search engine reads that as a soft 404, a visitor as a dead end.

  5. Rehearsed, then switched

    The move is performed on a copy first and the map is tested against the inventory; TTL lowered in advance, the switch made at a quiet hour, the old environment kept alive until the new one has proved itself.

  6. Watched afterwards

    Indexation, coverage and the 404 log are read daily while the change settles. A rule that missed a whole template is a three-day problem if somebody is watching and a three-month one if nobody is.

A redesign is a move. The domain stays, but every address changes, every internal link is redistributed, every template is replaced. A small dip is normal even after a clean move; what is not normal is a drop that never recovers.

Six steps

  1. Call

    Half an hour, free. What the site sells, who buys, what has been tried and with whom. At the end — a straight answer on whether an audit makes sense for your site, including the cases where it does not.

  2. Access

    Search Console and analytics as a viewer, the CMS, and the server and repository where they exist. Every account stays in your name: access is added, not handed over, and nothing ends up held hostage.

  3. Audit

    While the check runs, nothing on the site changes. The result is the written list and the crawl exports. Both stay with you whether or not anything follows.

  4. Walkthrough

    An hour on a call, item by item and in order, so the document is understood rather than filed. Questions at this stage are unlimited and free.

  5. Fixes

    Every item is priced as its own line; the unwanted ones are struck out. The rest is implemented — here, by your team against the specification, or between the two.

  6. Re-check

    The same crawl, run the same way, set beside the first. An item is either closed or it is not, and both sides are looking at the same data.

Reporting does not live in someone else's portal. Positions, impressions, clicks and coverage come from your Search Console and your analytics under your login: any figure in a report can be checked by you in a minute.

What is not sold here

Every item below is sold elsewhere, usually cheaply. Below is why not here.

  1. Guaranteed positions

    Nobody controls the ranking, so nobody can promise a position. What is guaranteed is the work: the list is written before the start and checked in the page's own response after.

  2. Bought links

    No paid placements, no networks, no forum posts written to carry a link. They work until they stop, and the penalty reaches the domain after the invoice is paid. Where a site genuinely needs off-site work, that will be said directly — with the price of the real thing.

  3. Writing at volume

    The brief — which page answers which query and what has to be on it — is written here. The texts themselves are written by a copywriter; the authors are credited on the project pages in the archive.

  4. Development beyond the template

    The template, the theme, the CMS and the server configuration are part of the work. Anything larger goes to the project's developer. The point of this page is that the finding and the change stay in one conversation — not that one person does everything.

  5. Content pipelines and listings

    No twenty-articles-a-month plan and no monthly tending of listings and reviews. A Google Business Profile is set up once and made to agree with the site's markup; a part-time employee inside an SEO retainer is not sold here.

The line is drawn here because the technical half is the one half that cannot be bought from anyone already on the project. Many people can write the text; the fix in the template is made only by whoever is in the codebase.

Priced in three parts

  • For finding out where you stand

    Audit

    from$900one-off

    A written list of what is wrong, ordered by the cost of the fault, with the fix each item needs. The figure is fixed before the work starts.

    • A full crawl, with the exports handed over
    • Indexation, canonicals, duplicates and redirects
    • Structure, internal links and orphan pages
    • Titles, descriptions, headings and structured data
    • Language versions, where there is more than one
    • Speed measured on your production site, with the date on it
    • Search Console and analytics checked against reality
    • One competitor compared on structure and coverage
    • An hour's walkthrough on a call
    Start with an audit
  • For a site that keeps changing

    Ongoing

    from$650per month

    Only worth it if the site genuinely keeps changing. If it does not, take the audit and the fixes and stop there.

    • A monthly crawl compared against the last one
    • Search Console read, and acted on
    • The next items on the list, implemented and verified
    • Redirect maps for anything that moves
    • Content briefs for your copywriter
    • One written report, drawn from your own accounts
    • Billed monthly, no minimum term
    Start with an audit

The audit fee follows the number of templates, not pages: a catalogue of four thousand products built from eight templates is less work than forty hand-built pages that are all different. Beyond a dozen templates, or with several language trees, the figure is quoted individually — before the start either way. Writing and off-site work are not included and are priced separately.

Before you write in

It depends on the kind of item, and the audit says which kind it is. An indexation fault clears within days of a re-crawl. A structural change takes a crawl cycle plus the re-evaluation. Anything that depends on new texts and links takes months. A single deadline for all three is quoted without looking at the site.

No. Positions belong to Google. A guarantee of first place usually means a query nobody searches for. What is guaranteed is the scope of work: listed before the start and checked in the page's response after.

The technical half — the audit, the templates, the CMS and the server — is done here. Texts and off-site work go to specialists; the authors are credited on the project pages. Who does what is known before the start.

No: the fix list is what the audit produces; without it there are only guesses about someone else's site. A recent audit from another contractor can be sent over: reading it is free, and if it is good, the quote follows it without repeating the work.

That is the usual arrangement, and the cheaper one for you. The report is written so your team can implement it; what stays here is specifying the work and re-checking the result.

The archive here runs to 88 projects: WordPress the most common by a distance, with Shop-Script, WooCommerce, OpenCart, Laravel and React among the rest. The audit is the same work on any platform. The limit is closed site builders: there only what the platform exposes can be changed, and that will be said before any payment.

Then the report says so in writing, and the budget is better spent on content or advertising. It happens with carefully built sites that have barely been touched since; on sites more than a few years old it is a rare outcome.

The audit is a fixed figure, by the number of templates. Implementation is priced against the findings, line by line. The monthly arrangement is optional: many take the fixes and stop there.

Get a free consultation

The address of the site, what it sells, and the one thing about its search traffic that worries you most — that is enough. If there is a Search Console property, say so: most of what the quote needs is already in it. A report from the previous contractor helps too — reading it costs nothing and shortens the conversation.

    What has been tried already

    What you can give access to