DM3: Site speed, Core Web Vitals and the technical audit
Running a technical SEO audit
🎯You'll be able to
Check a site systematically, record each issue with its pages and severity, rank fixes by impact and effort, and report them so a team acts.
🏠The everyday picture
A building inspector walks through every floor with a checklist, notes each problem with its room and how serious it is, and gives the owner a list in order: fix the wiring before the paint.
📘What it really is
- A checklist covering DM1 to DM3:
- crawling:
robots.txt, status codes, broken links, redirects; - indexing:
noindex, canonicals, duplicates, the sitemap; - page signals: titles, descriptions, headings,
lang, viewport, alt text; - structured data: valid, matching the page;
-
speed and stability: page weight, blocking scripts, image sizes, field Core Web Vitals.
-
How to check: read the HTML as sent (with JavaScript off, as a crawler first sees it), crawl the site with a tool or a script, and read the search console's indexing report.
-
Record each issue: an ID, what's wrong, which pages, severity, the fix, and its status.
-
Severity: critical (pages can't be found: blocked,
noindexby mistake), high (wrong pages listed, duplicates, all titles the same, very slow pages), medium (missing alt text, structured data errors), low (small wording issues). -
Prioritise by impact and effort: a one-line
robots.txtfix comes before rewriting 500 descriptions. - Verify each fix (re-run the check) and report the results honestly: what changed in search traffic and what else might explain it (DM1 Lesson 5).
📝A worked example
Input: MittiMart's starter site.
| ID | Issue | Pages | Severity | Fix |
|---|---|---|---|---|
| S1 | robots.txt blocks /product/ |
robots.txt | critical | Allow; add the Sitemap line |
| S2 | Planter page says noindex |
product/planter.html | critical | Remove the tag |
| S3 | Same title everywhere, few descriptions | all | high | Unique titles and descriptions |
| S11 | 500 KB blocking slider library | all | high | Remove it; defer other scripts |
Expected output: a table of at least eight issues (the reference audit has eleven), each with a fix and a status, followed by the search
traffic figures and their limits, in the format in seo/README.md.
🌍Where it's used
- Before and after site migrations, when most SEO damage happens.
- Quarterly checks in large shops and publishers.
- Agency onboarding, as the first piece of work for a new client.
📝Case scenario
An audit for a jewellery shop listed 140 issues in one long spreadsheet with no order. Nothing was fixed for two months. A second version
grouped them into 12 issues with severity and effort, and the three critical ones (a blocked folder, a staging noindex, a redirect loop)
were fixed in a day.
🖱️Try it
Pick a small website you know (a local business, a school, a friend's portfolio) and check five items from the checklist by viewing its
source and /robots.txt. Success: a table with at least three findings, each with a severity and a fix.
⚠️Common mistakes
- A list without priorities. Sign: 140 rows in random order. Fix: group, rate severity and effort, and order the list.
- Fixing without checking again. Sign: "Done" with no re-test. Fix: re-run the check and record the status.
- Claiming every traffic change. Sign: "Our audit raised traffic 85%." Fix: report the change and the other possible causes.
🛠️For your project
Project 3's test 10 reads seo/audit.md: at least eight issues with fixes and statuses, the search traffic figures from the export, and
honest limits.
✅Quick check
Which comes first: a robots.txt block or missing alt text?
Show the answer
The robots.txt block: it stops pages being found at all.
What should each audit issue record?
Show the answer
An ID, what's wrong, the pages, the severity, the fix and its status.
