Technical SEO MasteryMigrations, auditing workflow and monitoring · Lesson 17 of 18
Auditing workflow, tools and Search Console monitoring
Video lecture
Auditing workflow, tools and Search Console monitoring
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
Transcript of the narration, chapter by chapter.
0:00 Auditing workflow and monitoring
Most technical SEO disasters aren't discovered by audits. They're discovered by traffic graphs, weeks too late. A noindex left on a template. A robots.txt copied from staging. A canonical that suddenly points at the home page. In this lecture you'll learn a repeatable audit workflow, the Search Console reports that matter most in twenty twenty-six, how to read the data without fooling yourself, and how to build a lightweight monitoring layer that catches problems in days.
0:33 The audit sequence
Senior technical SEOs work from a consistent sequence, so nothing important is skipped and findings are comparable over time. Context: business goals, priority templates, recent releases, markets and stack. Access: a Search Console Domain property, Bing Webmaster Tools, analytics, logs and staging. Crawl: with JavaScript rendering where relevant, a mobile user agent, and sitemap and Search Console integrations. Indexation review by sitemap segment. Template review. Logs. Prioritise by impact, effort and confidence. Report and ticket. Then verify and monitor.
1:07 The tool stack
The tool stack, vendor-neutral. Crawling: Screaming Frog, Sitebulb, Lumar, JetOctopus or Oncrawl. Google data: Search Console's interface, API and bulk export to BigQuery. Bing data: Bing Webmaster Tools, which now includes AI citation reporting. Performance: PageSpeed Insights, CrUX, Lighthouse, DevTools and web-vitals RUM. Structured data: the Rich Results Test and Schema Markup Validator. Logs: log analysers, BigQuery or your CDN's analytics. The tool matters less than the configuration, so record your crawl settings in every audit.
1:40 Core Search Console reports
Search Console reports that matter most. Page indexing, filtered by sitemap for segment views, with Validate fix after you resolve an issue. URL Inspection, for index status, Google-selected canonical, last crawl and rendered HTML. Performance, for clicks, impressions, CTR and position by query, page, country, device and appearance. Crawl stats, hidden under Settings, for response codes, response times and host status. Plus Sitemaps, Core Web Vitals, HTTPS, Enhancements, Manual actions, Security issues, Removals and the robots.txt report.
2:13 New in Search Console
And what's new in twenty twenty-five and twenty twenty-six? A branded queries filter in Performance, which splits branded and non-branded queries using Google's own classification, rolled out to eligible properties. Query groups, for organising queries into custom categories. Custom annotations, so you can mark releases and incidents directly on charts. And the generative AI performance report, showing impressions in AI Overviews, AI Mode and AI Overviews in Discover, without clicks or queries. Use regex filters too, for example to exclude brand terms in a way you control.
2:51 Reading the data
Reading Search Console data correctly. Performance data omits anonymised queries, so query totals won't sum to page totals. Average position is an impression-weighted average, and mixing many queries hides detail, so analyse query and page pairs. Report timelines lag by a few days, and indexing reports update less often than performance data. And compare like with like: same weekday mix, and seasonality such as Ramadan, Eid, Christmas or summer holidays.
3:21 The monitoring layer
Now monitoring. Make sure the right people are verified users and receive Search Console emails. Schedule weekly crawls of key templates and compare with the previous run for new noindex, canonical, status or title changes. Monitor robots.txt and a set of critical URLs for changes. Build dashboards by page group, with release annotations. Alert on spikes of five hundreds to Googlebot, or drops in Googlebot hits, in your logs. And add an SEO check to every release that touches templates, routing or robots directives.
3:58 Hands-on: change monitor
Hands-on. The lesson text includes a small Python change monitor. It fetches a list of critical URLs, including robots.txt, records the status, X-Robots-Tag header, title, canonical and meta robots, and hashes robots.txt. It saves the state, and on the next run compares and prints every change. Run it weekly, or daily, from cron or your CI system, and send the output to email or chat. It's deliberately simple, and that's the point: it will catch the expensive mistakes.
4:32 Example 1: the forgotten subdomain
Worked example one, simple. A Liverpool e-commerce store only verified a URL-prefix property for https www. Its old blog lives on a subdomain, and nobody noticed that subdomain had thousands of spam pages injected after a plugin was compromised. A Domain property would have shown it. The fix: verify the Domain property through DNS, review Security issues, clean the subdomain, close the vulnerability, and request a review.
5:01 Example 2: the Tuesday noindex (illustrative)
Worked example two, with illustrative details. A Manchester agency runs the change monitor for a client. On a Tuesday, it reports the product template's meta robots changing from empty to noindex, nofollow. A staging flag was 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, and weeks more to recover.
5:32 Watch me do it: weekly change monitor
Watch me do it. I'll set up the weekly change monitor for a client in fifteen minutes. Step one: I pick ten critical URLs: robots.txt, the home page, two category pages, three product pages, the main guide, the contact page and the sitemap index. Step two: I paste them into the monitor script and run it once to create the baseline state file. Step three: I schedule it. On a small server, that's one cron line to run Monday at seven a.m. In CI, it's a scheduled workflow. Step four: I pipe the output to a chat channel the marketing and development leads both read. Step five: I test it. On staging, I ask the developer to add a noindex to one product template and run the monitor against staging. The alert appears: product robots, empty to noindex. Good. Step six: in Search Console, I check that both leads are verified users with email notifications on, and I add a custom annotation for today: monitoring started. Step seven: I add the branded queries filter to the default Performance view, so the Monday review shows non-brand trends straight away. Fifteen minutes now saves weeks of silent damage later.
6:58 Mistakes and measures
Common mistakes. Running a crawler with default settings on a JavaScript site and reporting no content. Delivering a two-hundred-row spreadsheet with no priorities. Auditing once a year instead of monitoring continuously. And only verifying a URL-prefix property, missing subdomains and protocol variants. Measure success with time to detect, which should be days, and the number of issues caught before they affected traffic.
7:25 Recap and try this now
Recap. Work from a repeatable sequence. Master the core Search Console reports, including the new branded filter, annotations and AI report. Read the data carefully. And build a monitoring layer so problems are cheap to fix. Try this now. Set up the change monitor for ten critical URLs, including robots.txt, schedule it weekly, and send its output somewhere your team actually reads.
A repeatable audit workflow
Senior technical SEOs work from a consistent sequence so nothing important is skipped and findings are comparable over time.
- Context — business goals, priority templates, recent releases, known incidents, markets, CMS and hosting stack.
- Access — Search Console (Domain property), Bing Webmaster Tools, analytics, logs or CDN logs, CMS read access, staging.
- Crawl — a full crawl with JavaScript rendering where relevant, mobile user agent, and crawl-source integrations (sitemaps, Search Console, analytics).
- Indexation review — Page indexing report by sitemap segment; sample URL Inspection.
- Template review — for each key template: status, directives, canonical, rendering, content, internal links, structured data, CWV.
- Logs — what bots actually crawl.
- Prioritise — impact × effort × confidence, tied to business value.
- Report and ticket — clear actions, owners, acceptance criteria.
- Verify and monitor — recrawl, Search Console validation, alerting.
The tool stack (vendor-neutral)
| Job | Examples |
|---|---|
| Desktop/cloud crawling | Screaming Frog SEO Spider, Sitebulb, Lumar, JetOctopus, Oncrawl |
| Google data | Search Console (UI, API, bulk data export to BigQuery) |
| Bing data | Bing Webmaster Tools (also useful because Bing's index feeds several AI assistants) |
| Performance | PageSpeed Insights, CrUX, Lighthouse, Chrome DevTools, RUM via web-vitals |
| Structured data | Rich Results Test, Schema Markup Validator |
| Logs | Log analysers from crawler vendors, BigQuery, ELK stack, CDN analytics |
| Change monitoring | Tools 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:
- Email alerts from Search Console (on by default for verified owners — make sure the right people are verified users).
- Scheduled crawls of key templates weekly, compared to the previous run (new noindex, canonical changes, status changes, title changes).
- Change monitoring on robots.txt and a set of critical URLs.
- 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.
- Log alerts — spikes in 5xx to Googlebot, or drops in Googlebot hits.
- 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.
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.