Technical SEO MasteryMigrations, auditing workflow and monitoring · Lesson 17 of 18

Auditing workflow, tools and Search Console monitoring

Video lesson · 15 min · 8 min lecture

Video lecture

Auditing workflow, tools and Search Console monitoring

13 chapters · about 8 min · full transcript

Coming soon

Chapter 1 of 13

Auditing workflow and monitoring

  • A repeatable audit sequence
  • Search Console reports that matter
  • Monitoring that catches problems in days

The narrated lecture is in production

Every chapter is scripted and ready. Browse the chapters and read the full transcript now — the video will appear here when it’s published.

Chapters

A repeatable audit workflow

Senior technical SEOs work from a consistent sequence so nothing important is skipped and findings are comparable over time.

  1. Context — business goals, priority templates, recent releases, known incidents, markets, CMS and hosting stack.
  2. Access — Search Console (Domain property), Bing Webmaster Tools, analytics, logs or CDN logs, CMS read access, staging.
  3. Crawl — a full crawl with JavaScript rendering where relevant, mobile user agent, and crawl-source integrations (sitemaps, Search Console, analytics).
  4. Indexation review — Page indexing report by sitemap segment; sample URL Inspection.
  5. Template review — for each key template: status, directives, canonical, rendering, content, internal links, structured data, CWV.
  6. Logs — what bots actually crawl.
  7. Prioritise — impact × effort × confidence, tied to business value.
  8. Report and ticket — clear actions, owners, acceptance criteria.
  9. Verify and monitor — recrawl, Search Console validation, alerting.

The tool stack (vendor-neutral)

JobExamples
Desktop/cloud crawlingScreaming Frog SEO Spider, Sitebulb, Lumar, JetOctopus, Oncrawl
Google dataSearch Console (UI, API, bulk data export to BigQuery)
Bing dataBing Webmaster Tools (also useful because Bing's index feeds several AI assistants)
PerformancePageSpeed Insights, CrUX, Lighthouse, Chrome DevTools, RUM via web-vitals
Structured dataRich Results Test, Schema Markup Validator
LogsLog analysers from crawler vendors, BigQuery, ELK stack, CDN analytics
Change monitoringTools that alert on robots.txt, title, canonical or status changes; custom scripts

The tool matters less than configuration. Always record crawl settings (user agent, rendering, limits, excluded patterns) in the audit so results are reproducible.

Search Console: the reports that matter most

  • Page indexing — why URLs are not indexed; filter by sitemap for segment-level views. Use "Validate fix" after resolving an issue type.
  • URL Inspection — index status, Google-selected canonical, last crawl, crawl user agent, rendered HTML and resources (live test). The API supports bulk inspection within quota.
  • Performance — clicks, impressions, CTR and position by query, page, country, device and search appearance. Use regex filters or the branded queries filter (rolled out to eligible properties in 2025–2026) to segment brand vs non-brand; query groups and custom annotations help organise analysis and mark releases.
  • Generative AI report — impressions of your pages in AI Overviews, AI Mode and AI in Discover (no clicks or queries).
  • Crawl stats (Settings) — requests per day, response codes, file types, average response time, host status (robots.txt fetch, DNS, server connectivity).
  • Sitemaps — submission status and discovered URLs.
  • Core Web Vitals and HTTPS reports.
  • Enhancements — structured data items by type.
  • Manual actions and Security issues — check on every audit.
  • Removals — temporary removals and outdated content requests.
  • robots.txt report — fetched versions and errors per host.

Monitoring: catch problems in days

Set up a lightweight monitoring layer:

  1. Email alerts from Search Console (on by default for verified owners — make sure the right people are verified users).
  2. Scheduled crawls of key templates weekly, compared to the previous run (new noindex, canonical changes, status changes, title changes).
  3. Change monitoring on robots.txt and a set of critical URLs.
  4. Dashboards — Search Console data by page group in a BI tool (Looker Studio, Power BI, or BigQuery with the bulk export), with annotations for releases.
  5. Log alerts — spikes in 5xx to Googlebot, or drops in Googlebot hits.
  6. Release checklist — SEO sign-off for changes affecting templates, routing or robots directives.

A simple regex to split brand and non-brand queries in the Performance report:

^(?!.*(optimize ?all|optimiseall)).*$

Reading Search Console data correctly

  • Performance data is sampled and anonymised queries are omitted, so query totals will not sum to page totals.
  • Average position is an impression-weighted average; mixing many queries hides detail. Analyse by query-page pairs.
  • Report timelines lag by a few days; indexing reports update less frequently than performance data.
  • Compare like-for-like periods (same weekday mix, seasonality such as Ramadan, Eid, Christmas or summer holidays).

Hands-on: a weekly change monitor for critical URLs

# pip install requests beautifulsoup4 ; run weekly via cron/CI and diff against last run
import csv, datetime, hashlib, json, pathlib, requests
from bs4 import BeautifulSoup

URLS = ["https://www.example.com/", "https://www.example.com/robots.txt",
        "https://www.example.com/collections/cushions/", "https://www.example.com/products/brass-lantern/"]
state_file = pathlib.Path("monitor_state.json")
prev = json.loads(state_file.read_text()) if state_file.exists() else {}
now, alerts = {}, []
for u in URLS:
    r = requests.get(u, timeout=20, allow_redirects=False)
    rec = {"status": r.status_code, "x_robots": r.headers.get("X-Robots-Tag", "")}
    if u.endswith("robots.txt"):
        rec["hash"] = hashlib.sha256(r.content).hexdigest()
    else:
        s = BeautifulSoup(r.text, "html.parser")
        rec["title"] = s.title.string.strip() if s.title and s.title.string else ""
        rec["canonical"] = (s.find("link", rel="canonical") or {}).get("href", "")
        rec["robots"] = (s.find("meta", attrs={"name": "robots"}) or {}).get("content", "")
    now[u] = rec
    for k, v in rec.items():
        if u in prev and prev[u].get(k) != v:
            alerts.append(f"{u} {k}: {prev[u].get(k)!r} -> {v!r}")
state_file.write_text(json.dumps(now, indent=2))
print(datetime.date.today(), "changes:" if alerts else "no changes"); print("\n".join(alerts))

Wire the output to email or chat. The Search Console API lesson (7.3) adds automated performance and indexing pulls.

Worked example 2: an agency's monitoring saves a launch

A Manchester agency (illustrative) runs this monitor for a client. On a Tuesday it reports the product template's meta robots changing from empty to noindex, nofollow — a staging flag left on in a CMS release. The fix ships the same afternoon, before Google recrawls most products. Without monitoring, the first sign would have been a traffic drop two weeks later.

Common mistakes

  • Running a crawler with default settings on a JavaScript site and reporting "no content".
  • Delivering a 200-row spreadsheet with no priorities.
  • Auditing once a year instead of monitoring continuously.
  • Only verifying a URL-prefix property and missing subdomains or protocol variants (use a Domain property).

Key takeaways

  • Use a consistent workflow: context, access, crawl, indexation, templates, logs, prioritise, ticket, verify.
  • Page indexing, URL Inspection, Performance and Crawl stats are the core Search Console reports for technical work.
  • Monitor continuously with alerts, scheduled crawls, change detection and release sign-off.
  • Interpret Search Console data carefully: sampling, anonymised queries and weighted average position.

Check your understanding

Quick questions to lock in the lesson. They don’t count towards your certificate.

  1. Which Search Console report shows average server response time for Googlebot and host status?
  2. Why use a Domain property rather than a URL-prefix property?
  3. Why might the sum of query-level clicks be lower than page-level clicks?

Put it into practice

Set up a weekly monitoring routine for a site: list the Search Console reports, crawl comparisons and alerts you will check, and who owns each.

Enrol for free to save your progress

Reading is always free. Enrol to keep your place, take the final assessment and earn a verifiable certificate.