Skip to content
Academy
Marketing Academy · Field Work●SEO
MiniTeardown· 30 minutes

The Thin-Page Teardown: Auditing a Programmatic Directory Before It Gets Penalized

Zomato

Objective: Given three synthetic-realistic specimens pulled from a proposed 'Restaurants in [City]' and '[Job Title] Salary in [City]' programmatic directory, correctly separate the pages that will trigger Google's scaled-content-abuse enforcement from the ones that are genuinely fine, without over-flagging cosmetic non-issues as defects.

You're the SEO analyst at Zomato reviewing a batch of programmatic city-directory pages an agency built before they go live. Your quarterly traffic depends on getting this launch right, one bad batch can wipe out the whole subdomain in a core update.

Read each specimen, decide what's actually wrong with it (if anything), rate severity, and don't flag things that just look unusual but aren't real defects.

Before you start

What you'll need

Free path (everything below is enough to finish)

FreemiumCrawl the batch and flag near-duplicate body content across city pages

Free up to 500 URLs, enough for a pre-launch batch audit

FreeCheck indexing status and crawl stats once a batch goes live

Confirms whether orphaned or thin pages are actually getting crawled

Paid upgrades (optional, faster/deeper)

Ahrefs(optional)
PaidContent similarity scoring across large batches

Faster than manual diffing once you're auditing thousands of rows instead of dozens

The process

Specimens to review

What's wrong with this page, and how severe is it?

Sample output
URL: /restaurants/best-restaurants-in-coimbatore
H1: Best Restaurants in Coimbatore
Body (first 80 words): "Coimbatore is a wonderful city with many great dining options. Whether you're looking for fine dining, casual eats, or quick bites, Coimbatore has something for everyone. Our team has curated the best restaurants in Coimbatore based on quality, service, and value. Browse our list below to find your next favorite spot in Coimbatore."
Listed data: none, no restaurant names, addresses, ratings, or hours are shown on the page.
Note: this exact 80-word paragraph, with only the city name swapped, also appears verbatim on the /best-restaurants-in-chennai and /best-restaurants-in-pune pages.

Specimen: synthetic, realistic

What's wrong with this page, and how severe is it?

Sample output
URL: /salaries/software-engineer-salary-in-nagpur
H1: Software Engineer Salary in Nagpur
Data table shown:
  Average salary: ₹8,20,000/year
  Entry-level: ₹5,10,000/year
  Senior-level: ₹14,30,000/year
Footer note: 'Based on national data.'
Cross-check: the exact same three figures (₹8,20,000 / ₹5,10,000 / ₹14,30,000) appear on the Nagpur, Kanpur, Coimbatore, and 46 other city pages in the export, all unchanged.

Specimen: synthetic, realistic

What's wrong with this page, and how severe is it?

Sample output
URL: /restaurants/best-restaurants-in-kochi
H1: Best Restaurants in Kochi
Listed data: 12 real restaurants with names, addresses, live rating counts, price range, and a 'menu last synced 3 days ago' timestamp.
Inbound links: 0. The page is not linked from the /restaurants hub page, any city-cluster page, or any other page on the site, it was only ever submitted via the XML sitemap.

Specimen: synthetic, realistic

Final deliverable

A defect log for all three specimens with severity ratings, a noindex/fix/ship decision for each, and a one-line justification citing the specific lesson rule violated.

See a reference example
Sample output
DoorDash city-directory pre-launch audit (excerpt)

SPECIMEN: /cities/best-delivery-restaurants-in-fresno
VERDICT: NOINDEX until fixed
  - Critical: body copy identical to 6 other city pages, only city name swapped
  - Moderate: no 'last updated' field despite restaurant list changing weekly

SPECIMEN: /cities/best-delivery-restaurants-in-tulsa
VERDICT: SHIP, add internal link
  - Moderate: 14 real restaurants with live data, but zero inbound internal links, orphaned page
  - Fix: add to the /cities hub page's link list before next crawl

Success criteria

You're done when you can:

  • Correctly identifies all 4 real defects across the 3 specimens with matching severity
  • Does not flag any of the 5 distractors as defects
  • Cites the correct lesson section for each defect found