<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[The Search & Growth Playbook]]></title><description><![CDATA[Practical insights on SEO, GEO, AEO, Google Ads, Meta Ads, and conversion rate optimisation. I share real-world strategies, industry observations, experiments, ]]></description><link>https://mirzausmanghani.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 19:48:17 GMT</lastBuildDate><atom:link href="https://mirzausmanghani.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What Does an SEO Consultant Actually Do? A Developer's Guide to Working With One]]></title><description><![CDATA[What an SEO consultant really does, what they'll ask developers for, and a pre-launch SEO checklist with code examples.]]></description><link>https://mirzausmanghani.hashnode.dev/what-does-an-seo-consultant-actually-do-a-developer-s-guide-to-working-with-one</link><guid isPermaLink="true">https://mirzausmanghani.hashnode.dev/what-does-an-seo-consultant-actually-do-a-developer-s-guide-to-working-with-one</guid><category><![CDATA[seo services]]></category><dc:creator><![CDATA[Usman Ghani]]></dc:creator><pubDate>Tue, 10 Nov 2026 19:02:14 GMT</pubDate><content:encoded><![CDATA[<h1>What Does an SEO Consultant Actually Do? A Developer's Guide to Working With One</h1>
<p>If you build websites, at some point an SEO consultant will send you a list of "technical fixes". Some will look obvious, some will look strange, and at least one will conflict with how your app renders pages.</p>
<p>This guide explains what an SEO consultant actually does, what they'll ask developers for, and how to get the collaboration right, ideally before launch rather than after traffic drops.</p>
<h2>TL;DR</h2>
<ul>
<li>An <strong>SEO consultant</strong> diagnoses why a site isn't getting the search traffic it should, then prioritises and guides the fixes across <strong>technical, on-page and off-page</strong> work.</li>
<li>For developers, the overlap is mostly <strong>technical SEO</strong>: rendering, status codes, canonicals, metadata, sitemaps, structured data, performance and internal linking.</li>
<li>The best results come when SEO requirements are part of the <strong>build spec</strong>, not a post-launch ticket list.</li>
</ul>
<hr />
<h2>What an SEO consultant actually does</h2>
<p>An SEO consultant's job is to answer three questions about a site, in this order:</p>
<ol>
<li><strong>Can search engines access it?</strong> Crawling, rendering, indexing.</li>
<li><strong>Do the pages match what people search for?</strong> Keywords, intent, content, metadata.</li>
<li><strong>Is the site trusted enough to rank?</strong> Links, mentions, reputation.</li>
</ol>
<p>That maps to the three branches of SEO:</p>
<table>
<thead>
<tr>
<th>Area</th>
<th>What it covers</th>
<th>Who usually implements</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Technical SEO</strong></td>
<td>Crawlability, indexing, rendering, status codes, site speed, structured data, sitemaps</td>
<td>Developers</td>
</tr>
<tr>
<td><strong>On-page SEO</strong></td>
<td>Page targeting, titles, headings, content structure, internal links</td>
<td>Content team + developers for templates</td>
</tr>
<tr>
<td><strong>Off-page SEO</strong></td>
<td>Backlinks, brand mentions, digital PR, reviews</td>
<td>Marketing / the consultant</td>
</tr>
</tbody></table>
<p>If you want a deeper explanation of how these fit together, I've written about <a href="https://mirzausmanghani.com/blog/what-is-the-difference-between-seo-on-page-and-seo-off-page/">the difference between on-page and off-page SEO</a> and where technical SEO sits.</p>
<p>A typical engagement looks like this:</p>
<ol>
<li><strong>Audit:</strong> crawl the site, review Search Console, analyse logs and benchmark competitors.</li>
<li><strong>Prioritise:</strong> rank issues by impact and effort. Not everything in an audit tool's "errors" list matters.</li>
<li><strong>Spec the fixes:</strong> write requirements developers can actually implement.</li>
<li><strong>Validate:</strong> check fixes in staging and production.</li>
<li><strong>Measure:</strong> track indexing, rankings, traffic and conversions over the following weeks and months.</li>
</ol>
<hr />
<h2>What an SEO consultant will ask developers for</h2>
<p>These are the requests that come up on almost every project.</p>
<h3>1. Server-rendered or pre-rendered HTML for important content</h3>
<p>Google can render JavaScript, but rendering happens later than crawling, and other crawlers (including many AI crawlers) may not execute JavaScript at all. If your main content, links or metadata only appear after client-side rendering, expect the consultant to ask for <strong>SSR, SSG or pre-rendering</strong> for indexable pages.</p>
<p>Quick test: <code>curl</code> the page and check whether the important content is in the raw HTML.</p>
<pre><code class="language-bash">curl -s https://example.com/pricing | grep -i "&lt;title&gt;\|&lt;h1\|rel=\"canonical\""
</code></pre>
<h3>2. Correct HTTP status codes</h3>
<table>
<thead>
<tr>
<th>Situation</th>
<th>Correct response</th>
</tr>
</thead>
<tbody><tr>
<td>Page exists</td>
<td><code>200</code></td>
</tr>
<tr>
<td>Page moved permanently</td>
<td><code>301</code> (or <code>308</code>) to the new URL</td>
</tr>
<tr>
<td>Page deleted</td>
<td><code>404</code> or <code>410</code></td>
</tr>
<tr>
<td>Temporary maintenance</td>
<td><code>503</code> with a <code>Retry-After</code> header</td>
</tr>
</tbody></table>
<p>The classic problem is the <strong>soft 404</strong>: a "not found" message rendered with a <code>200</code> status, common in SPAs. Search engines treat these as low-quality pages.</p>
<h3>3. One canonical URL per page</h3>
<p>Duplicate URLs split signals: <code>?utm_source=</code>, trailing slash vs no slash, uppercase paths, sort parameters. Expect requests to:</p>
<ul>
<li>Add a self-referencing canonical on every indexable page</li>
<li>301 redirect variants to one format (e.g. always lowercase, consistent trailing slash)</li>
<li>Keep tracking parameters out of internal links</li>
</ul>
<pre><code class="language-html">&lt;link rel="canonical" href="https://example.com/services/technical-seo/" /&gt;
</code></pre>
<h3>4. Editable, unique metadata per page</h3>
<p>Templates should allow a unique <code>&lt;title&gt;</code> and meta description per page, with sensible fallbacks. In Next.js (App Router), for example:</p>
<pre><code class="language-tsx">// app/services/[slug]/page.tsx
import type { Metadata } from "next";

export async function generateMetadata(
  { params }: { params: Promise&lt;{ slug: string }&gt; }
): Promise&lt;Metadata&gt; {
  const { slug } = await params;
  const service = await getService(slug); // your data source

  return {
    title: service.seoTitle ?? service.name,
    description: service.seoDescription,
    alternates: { canonical: `https://example.com/services/${slug}/` },
  };
}
</code></pre>
<p>The key requirement: <strong>content editors must be able to change titles and descriptions without a deploy.</strong></p>
<h3>5. XML sitemaps that reflect reality</h3>
<ul>
<li>Only canonical, indexable URLs that return <code>200</code></li>
<li>Generated automatically as pages are added or removed</li>
<li><code>lastmod</code> updated only when content actually changes, not on every build</li>
<li>Referenced in <code>robots.txt</code></li>
</ul>
<pre><code class="language-txt">User-agent: *
Disallow: /search
Disallow: /*?sort=

Sitemap: https://example.com/sitemap.xml
</code></pre>
<h3>6. Structured data</h3>
<p>Consultants will often ask for JSON-LD on key templates: <code>Organization</code>, <code>BreadcrumbList</code>, <code>Article</code>, <code>Product</code>, <code>FAQPage</code>, <code>LocalBusiness</code>. The rule is simple: <strong>only mark up what's visible on the page.</strong></p>
<pre><code class="language-html">&lt;script type="application/ld+json"&gt;
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
    { "@type": "ListItem", "position": 2, "name": "Services", "item": "https://example.com/services/" }
  ]
}
&lt;/script&gt;
</code></pre>
<p>Validate with Google's Rich Results Test and the <a href="http://Schema.org">Schema.org</a> validator.</p>
<h3>7. Performance and Core Web Vitals</h3>
<p>Google's Core Web Vitals thresholds for a "good" experience are:</p>
<ul>
<li><strong>LCP</strong> (largest contentful paint): 2.5 seconds or less</li>
<li><strong>INP</strong> (interaction to next paint): 200 milliseconds or less</li>
<li><strong>CLS</strong> (cumulative layout shift): 0.1 or less</li>
</ul>
<p>Typical asks: compress and size images, set <code>width</code>/<code>height</code> on media, defer non-critical JavaScript, cut third-party scripts and cache aggressively.</p>
<h3>8. Crawlable internal links</h3>
<p>Navigation and in-content links should be real <code>&lt;a href="..."&gt;</code> elements. Links that only work through <code>onClick</code> handlers or JavaScript routing without an <code>href</code> may not be followed by crawlers.</p>
<pre><code class="language-html">&lt;!-- Crawlable --&gt;
&lt;a href="/services/seo/"&gt;SEO services&lt;/a&gt;

&lt;!-- Not reliably crawlable --&gt;
&lt;span onclick="router.push('/services/seo/')"&gt;SEO services&lt;/span&gt;
</code></pre>
<hr />
<h2>The pre-launch SEO checklist for developers</h2>
<p>Most expensive SEO problems are introduced at launch or during a migration. Run this before go-live:</p>
<ul>
<li><input disabled type="checkbox" /> Staging is <strong>blocked from indexing</strong> (auth or <code>noindex</code>), and production is <strong>not</strong></li>
<li><input disabled type="checkbox" /> <code>robots.txt</code> on production doesn't block the whole site (it happens more than you'd think)</li>
<li><input disabled type="checkbox" /> Every indexable page returns <code>200</code> with server-rendered main content</li>
<li><input disabled type="checkbox" /> Unique <code>&lt;title&gt;</code>, meta description, H1 and canonical on every template</li>
<li><input disabled type="checkbox" /> 301 redirect map from old URLs to new URLs (for migrations)</li>
<li><input disabled type="checkbox" /> XML sitemap generated and referenced in <code>robots.txt</code></li>
<li><input disabled type="checkbox" /> Custom 404 page returns a real <code>404</code> status</li>
<li><input disabled type="checkbox" /> Structured data validates</li>
<li><input disabled type="checkbox" /> Core Web Vitals checked on key templates (mobile first)</li>
<li><input disabled type="checkbox" /> Analytics and Search Console set up and verified</li>
</ul>
<hr />
<h2>When does a project actually need an SEO consultant?</h2>
<p>You can handle the basics yourself on small sites. A consultant earns their fee when:</p>
<ul>
<li><strong>You're migrating</strong> a domain, CMS, framework or URL structure. This is where sites lose years of rankings overnight.</li>
<li><strong>Traffic dropped</strong> after an update or a release and nobody knows why.</li>
<li><strong>The site is large</strong>: thousands of pages, faceted navigation, multiple languages.</li>
<li><strong>Search is a major revenue channel</strong>, and you need someone accountable for organic growth.</li>
</ul>
<h3>How developers and SEO consultants work best together</h3>
<ul>
<li><strong>Get involved early.</strong> SEO requirements belong in the technical spec, not a post-launch Jira backlog.</li>
<li><strong>Ask for impact.</strong> A good consultant can explain why a fix matters and what it's expected to change.</li>
<li><strong>Push back on noise.</strong> Audit tools flag hundreds of "issues". Many don't matter. Ask which ones affect indexing or revenue.</li>
<li><strong>Share access.</strong> Search Console, server logs and staging environments make diagnosis far faster.</li>
</ul>
<hr />
<h2>Wrapping up</h2>
<p>An SEO consultant isn't there to sprinkle keywords on pages. The job is diagnosing why a site isn't earning the search visibility it should, prioritising the fixes that matter, and making sure they're implemented correctly. For developers, that mostly means clean rendering, correct status codes, one URL per page, good metadata, accurate sitemaps and fast pages.</p>
<p>Get those right in the build and SEO becomes far cheaper for everyone.</p>
<hr />
<p><em>I'm Mirza Usman Ghani, an SEO and paid media consultant. I work with developers and businesses on technical SEO, site migrations and search growth through my</em> <a href="https://mirzausmanghani.com/digital-marketing-services/seo-consultant-services/"><em>SEO consultant services</em></a><em>. This article was written with AI assistance and reviewed by me for accuracy.</em></p>
]]></content:encoded></item></channel></rss>