Skip to content
ConsultEvo

How to Run an SEO Audit That Turns Findings Into a Fix Plan

Run an SEO audit by defining the business question, setting a measurable scope, collecting dated evidence from Search Console, analytics, your CMS or sitemap, and a crawler, then checking important URLs from crawl access through conversion. The finished audit should be a prioritized remediation plan with an owner, an approved change, and a way to verify it. It is not a tool-generated issue list or a promise of traffic gains.

If organic leads have fallen, first establish whether the decline is concentrated in a market, page type, template, funnel stage, or comparison period. Then check whether the affected pages can be crawled and indexed, whether their search visibility changed, and whether organic visits still convert. That focused investigation is different from a broad site review, so define the question before gathering data.

The operating principle is simple: preserve what was observed, explain what it may mean, and assign only changes that a responsible owner can test. This keeps a crawler alert from being mistaken for a proven cause and keeps a conversion problem from being labelled an SEO defect when the click is already reaching the page.

An actionable audit ends with a decision for each important finding: fix it, retain it intentionally, investigate it further, or route it to another owner.

What an SEO audit should produce

An SEO audit is a structured review of how search engines access a site, which pages can be indexed, how relevant and visible those pages are for searches, and what business outcomes organic visits support. It may surface technical, content, performance, measurement, or user-journey problems, but each finding still needs diagnosis and context.

Start with a question that can guide a decision. Examples include:

  • Are product pages losing impressions in one market or template?
  • Can search engines index the pricing pages that support sales?
  • Are organic landing pages producing qualified leads?
  • Did a release change crawl access, rendering, redirects, or internal links?

Record the affected markets, page types, URL boundaries, comparison period, stakeholders, protected workflows, and success measure. Identify revenue-critical and legally or operationally protected URLs before recommending changes.

Keep evidence and interpretation in separate fields. A crawl report showing a noindex directive is an observation. Deciding that the directive is a defect is a diagnosis. The page may be intentionally excluded, part of a private workflow, or replaced by another URL. A tool alert alone does not establish why rankings or conversions changed.

Set the scope and collect evidence before diagnosing

Map the business objective to the parts of the site that could affect it. Include relevant markets, templates, page types, funnel stages, and business-critical URLs. Save the URL inventory and define the comparison periods before reviewing results. That prevents a later recheck from silently changing the population or date range.

  • Google Search Console: Use search performance and indexing evidence. Record the property, filters, date range, page groups, query groups, device, and country where relevant. Open Search Console.
  • Analytics: Review organic landing-page sessions and conversion context. Confirm that important events, channels, consent settings, and attribution rules are implemented consistently. Open Google Analytics.
  • CMS and sitemap: Establish the intended URL inventory, publication status, template, and business owner. A sitemap is evidence of intended URLs, not proof that every listed URL should be indexed.
  • Crawler: Collect site-level observations such as response codes, links, directives, metadata, canonical references, duplicate URLs, and rendering output. Screaming Frog SEO Spider has a free version limited to 500 URLs. Check its current pricing and feature page for paid options.

For every extract or crawl, retain the source, timestamp, scope, filters, URL normalization rules, and relevant settings. For a JavaScript-heavy site, compare the crawler’s rendered view with the content and links users receive and the content expected to be available to search engines. Escalate material differences for technical review before treating the default crawl as conclusive. The official Screaming Frog quick-start guide can help with basic setup, but it is not a prebuilt audit template.

Use deterministic checks for response codes, redirect chains, missing metadata, directives, canonical mismatches, duplicate URL normalization, required fields, and allowed status values. An AI summary may group similar observations or draft a stakeholder summary, but it should not decide that a directive is wrong or that a finding caused a business decline.

Diagnose in crawl-to-conversion order

For each important URL, follow the chain in sequence:

  1. Can search engines crawl the URL?
  2. Can they see and process its indexability signals?
  3. Is the intended page indexed?
  4. Does it compete for relevant searches?
  5. Does it earn clicks when it appears?
  6. Do those visits complete the intended action?

Stop at the first confirmed failure and investigate it before proposing work further down the chain. A page that cannot be crawled should not receive a content refresh as the first response. A page that receives qualified organic clicks but fails at a form or offer should be routed to the product, design, marketing, or analytics owner rather than treated automatically as an SEO problem.

Robots.txt and noindex do different jobs. Robots.txt controls crawling and is not a reliable way to prevent a URL from appearing in search results. Google must be able to crawl a page to see and process its noindex directive. A robots.txt block can therefore prevent Google from seeing that directive. See Google’s guidance on robots.txt and robots meta tags.

Before changing a directive, canonical, redirect, or page status, check whether the URL belongs to a private, legal, account, checkout, faceted-navigation, or other protected workflow. Record the exclusion reason and obtain approval from the page or business owner.

Route the finding to the right next check

Access and indexability

Blocked or excluded valuable page

Check crawl access, response status, directives, canonical signals, Search Console evidence, and the page’s intended purpose. The next owner is SEO, with technical support if implementation must change.

Visibility and clicks

Indexed page with weak visibility or click rate

Check query relevance, competing pages, internal links, content intent, title, snippet, device, position, and result features. Route the action to SEO or content.

Post-click outcome

Clicks but few conversions

Inspect analytics events, the offer, form, CTA, mobile experience, page friction, and measurement implementation. Route the work to product, design, marketing, or analytics as appropriate.

A crawler finding is a lead for investigation. Confirm high-impact URLs against additional sources and the business owner before scheduling a change.

Prioritize findings without confusing severity with value

Keep business value, technical severity, diagnosis confidence, effort, and dependency visible instead of hiding them in one unexplained score. A confirmed indexing defect on a revenue-critical page is different from a low-confidence content idea. Consider commercial importance, strategic value, conversions, assisted outcomes, technical risk, and implementation capacity together. A low-traffic pricing page can deserve attention before a popular informational page.

Useful confidence labels include:

  • Confirmed technical defect: A reproducible response, directive, rendering, link, or markup fault that is wrong for the page.
  • Strong indication: Multiple sources point to the same likely cause, but a final check remains.
  • Hypothesis: A plausible explanation that needs investigation or testing.
  • Strategic opportunity: No defect is proven, but the proposed work has commercial or editorial value.
  • Vendor heuristic: A tool-generated suggestion awaiting human review.

Before recommending deletion or a change to indexability, check the page’s purpose, organic traffic, links, conversions, assisted conversions, replacement content, redirect destination, and owner approval. The safe action may be to retain, refresh, consolidate, redirect, or intentionally exclude the page. Choose only after those checks.

Turn each finding into an owned, testable task

A backlog record should connect evidence to a proposed action without presenting the proposed cause as proven. At minimum, keep the finding ID, URL or template, issue type, evidence source and timestamp, observed state, suspected cause, business priority, confidence, recommended action, owner, dependency, status, exception reason, deployment date, and validation method.

The following record is illustrative. It is a proposed data contract, not a schema published by Google, HubSpot, Semrush, or Screaming Frog.

{
  "finding_id": "SEO-104",
  "site_id": "site-01",
  "url_or_template": "https://example.com/products/widget/",
  "issue_type": "possible_unintended_exclusion",
  "evidence": {
    "observed_status": 200,
    "meta_robots": "noindex",
    "evidence_source": "site_crawl",
    "evidence_timestamp_utc": "2026-10-11T10:30:00Z"
  },
  "interpretation": {
    "confidence": "hypothesis",
    "suspected_cause": "Confirm whether exclusion is intentional"
  },
  "action": {
    "owner": "SEO owner",
    "status": "needs_review",
    "validation_method": "Re-crawl and inspect indexability after approved change"
  }
}

The record should not move directly to implementation. First confirm the URL’s purpose, Search Console evidence, canonical and robots.txt behaviour, traffic and conversion value, and whether the exclusion is approved. If the URL is blocked from crawling, the absence of a visible noindex signal does not prove that no exclusion exists.

Use a task or project system as the destination for approved work while retaining a clear source of truth for evidence and exceptions. If you use ClickUp setup and automation as a workflow destination, use it to organize owned work, not as an SEO auditing product.

AI can summarize repeated findings, group similar URLs, or draft a stakeholder brief. It should not independently delete pages, change indexability, alter canonicals, publish content, change redirects, or close a finding. Validate drafted records against required fields and allowed values before they enter the backlog.

Make repeated processing safe. Give each finding a stable ID and update an existing record when a crawl rediscovers it. If concurrent processes can write to the same repository, enforce a database-level unique key or use a transactional upsert. A lookup followed by create is not sufficient duplicate prevention when two workers can act at the same time.

Run the remediation cycle

The audit becomes operational when each accepted finding moves through an approved change and a verification step. Preserve the original evidence, record the deployment date, and make the completion test explicit before implementation.

01Scope and assignThe SEO lead records the business question, URL population, baseline, protected pages, decision owner, and intended outcome.
02Gather and preserveSEO, analytics, or technical owners save dated Search Console, analytics, CMS or sitemap, and crawl evidence with filters and scope.
03Confirm diagnosis and exceptionsSEO checks the evidence chain, while the page or business owner approves intentional exclusions before any change is scheduled.
04Assign the change and completion testSEO, content, development, product, design, or analytics receives a defined action, dependency, expected state, and test result to record.
05Deploy, recheck, and close or returnAfter release, re-crawl or re-measure the affected population, save deployment and validation dates, then close the task or return it to a named owner.

Completion tests should match the change. Examples include a re-crawl showing the intended response and directive, a rendered page containing expected content and links, a redirect test confirming the destination, or a post-release comparison using equivalent periods. Keep pre-change evidence so a recurring issue can be distinguished from a newly introduced one.

Developer support is often useful for template changes, rendering, JavaScript, infrastructure performance, deployment-controlled markup, and routing. It is not automatically required for every finding. CMS permissions, implementation details, and the release process determine who can make the change.

Validate structured data and performance changes

For structured data, test representative URLs and templates, compare the markup with visible page content, and use Google’s Rich Results Test for supported features. Follow Google’s structured data policies. Accurate, policy-compliant markup can make a page eligible for a rich result, but it does not guarantee that the feature will appear. Record eligibility separately from display.

For performance, review field data where available and keep it distinct from lab diagnostics. Google identifies Core Web Vitals as LCP, INP, and CLS, with current good targets of LCP within 2.5 seconds, INP below 200 milliseconds, and CLS below 0.1. Treat these as diagnostic targets, not guaranteed ranking thresholds. Segment by template and device, compare equivalent periods, and use PageSpeed Insights as a diagnostic tool rather than treating one lab run as representative of every user.

For either type of change, record the affected template or URL sample, implementation date, validation date, test method, expected state, observed state, and any remaining exception. A technically valid change may still require follow-up measurement to determine whether it affected the business outcome.

Treat answer-engine visibility as a separate measurement

An SEO audit can optionally record how a brand appears in AI-generated answers, but this is a separate measurement from Google rankings, clicks, and conversions. HubSpot describes AI Search Grader as a one-time diagnostic and HubSpot AEO as an ongoing product for prompt tracking, competitor comparison, and citation analysis across supported engines. These are vendor product descriptions, not universal industry measurement standards.

Public product information reviewed here does not establish a general-purpose API or export path for arbitrary observations. Do not promise a direct integration. If the measurement is collected, retain the exact prompt, engine, model where available, geography, language, timestamp, collection method, response or permitted excerpt, mentioned brands, cited URLs, and classifier version if a classifier is used.

Store one answer run as one observation and each cited URL as a separate citation record linked to that observation. Keep period summaries, such as share of voice, separate from run-level records and define the prompt set, engine and model scope, date range, and calculation version.

Measurement grain matters

One prompt run is one observation, not a trend. A site-and-date key can collide when several prompts, engines, models, runs, or citations occur on the same day. Use a run identifier or a key that distinguishes those records, enforce uniqueness at the database level, and use a transactional upsert when concurrent collection is possible.

A proposed observation model might use observation_id for each run, then store citation rows keyed by observation_id and citation position. A period summary should instead include the site, metric, engine and model scope, period boundaries, prompt-set version, and calculation version. These are implementation recommendations, not a vendor-published HubSpot schema.

Do not compare observations from different prompts, engines, models, geographies, or collection methods as if they were equivalent. Keep the original response distinct from any human or versioned classifier that extracts mentions and citations. Authority, third-party references, and business-name consistency may be reasonable signals to examine, but no universal rule was verified that they determine citations across answer engines.

Choose tools and set a practical audit cadence

A basic audit can start with Search Console, analytics, CMS or sitemap access, and a crawler. Add tools only when a specific question requires them, such as JavaScript rendering, backlink analysis, or repeatable answer-engine observations. Screaming Frog’s free crawl is limited to 500 URLs. Its paid annual pricing is shown on the official pricing page and varies by currency.

Semrush and HubSpot products are optional vendor tools. Pricing, packaging, plan entitlements, usage limits, onboarding fees, and regional displays can change. Check the current Semrush pricing and HubSpot pricing pages before budgeting. Do not treat a remembered price or a product-page feature as a permanent contract entitlement.

Set the full-audit cadence according to site complexity, release frequency, search risk, and available data. Run focused checks after a migration, major template release, traffic loss, or indexing incident. Audit duration depends on URL volume, templates, data access, stakeholder availability, and required depth. Small sites may take days, while complex enterprise audits may take weeks. There is no universal timetable for every site.

Before calling the audit actionable
  • The business question, baseline, URL scope, comparison period, and protected pages are recorded.
  • Evidence sources, timestamps, filters, rendered views, and intentional exclusions are saved.
  • Findings are ranked by business value, severity, confidence, effort, and dependency.
  • Each approved task has an owner, exception decision, expected state, and completion test.
  • A re-crawl, re-measurement, or outcome review has a scheduled validation date.

When those conditions are in place, the audit is ready to move from analysis into owned work. Its value lies in making a reasoned decision for each finding and checking what happened after the change, not in maximizing the number of issues reported.