Digital Marketing (Growth and Analytics) · Projects

Project 3: A technical SEO audit, with the fixes

Marking guide version 1 · Lessons: DM1 lessons 1–5, DM2 lessons 1–5, DM3 lessons 1–5, DM10 lesson 4

The problem and who it's for

MittiMart's robots.txt was copied from a staging site and blocks every product page. Most pages share one title, few have descriptions, none has a canonical link, and an old copy of the kulhad set page competes with the real one. The sitemap uses relative addresses, lists the cart and checkout, and leaves out products. Images have no alt text or size, product pages have no structured data, and a 500 KB slider script in the head blocks the home page. The owners want people searching for clay kitchenware to find their products, and want to know honestly whether the fixes helped.

Scope

Not included

Before you start

Starter files

Download everything at once: starter/digital-marketing-starter.zip.

Milestones

  1. Run npm run test:seo, then crawl the site by hand with JavaScript turned off, listing every issue you find with its pages.
  2. Fix robots.txt, noindex, canonicals and the sitemap (tests 3, 4 and 5).
  3. Fix titles, descriptions, headings, language and viewport (tests 1 and 2).
  4. Fix links and images, and add Product structured data (tests 6, 7 and 8).
  5. Make the home page light and remove blocking scripts (test 9).
  6. Write seo/audit.md from your list and the Search Console data (test 10), then run all 10 tests twice in a row.

Expected outputs

Acceptance tests

# Input Expected result
1 npm run test:seo 10 of 10 pass, twice in a row
2 Every page, read with JavaScript off Indexable pages have their own title and description, one h1, a language and a viewport; canonicals are full addresses, and the copy points to the kulhad set page (tests 1 to 3)
3 robots.txt and sitemap.xml /product/ is reachable and the sitemap is named; cart, checkout and thank-you are noindex; the sitemap lists exactly the indexable pages (tests 4 and 5)
4 Links, images and product pages No broken links or images; alt text and sizes on images; one valid Product JSON-LD block per product whose name matches the h1 and whose price matches the page, in INR (tests 6 to 8)
5 The home page 250 KB or less in total, and no script in the head without defer (test 9)
6 seo/audit.md At least 8 issues with a fix and a status; clicks 993 before and 1,841 after (85.4%); impressions before and after; limits that mention the season and say the fixes aren't proven to be the only cause (test 10)

Failure and recovery exercises

  1. Put Disallow: /product/ back in robots.txt and run test 4. Explain what would happen to the shop's product listings in search over the following weeks, then restore your fix.
  2. Change one product's price on the page but not in its JSON-LD, and run test 8. Explain why a price in search results that doesn't match the page is a problem for shoppers and for the shop, then fix it.
  3. Load the slider script in the head again without defer and measure the home page in your browser's Network tab. Write the before and after weights, then restore your fix.

Evidence to submit

Marking guide and self-check

Pass rule: every Safety-critical (S) and Mandatory (M) item must be met. A single unmet safety item means the project is not complete, whatever else is done. Quality items are for your own improvement.

Your answers are saved in this browser on this device. Self-checked means you checked your own work against this guide; it is not a reviewer's approval. Never paste passwords, keys, tokens or real customer data here.

Checklist (marking guide version 1)
Evidence

← PreviousAn A/B test reported honestly
ProLearners Assist