The Thin-Page Teardown: Auditing a Programmatic Directory Before It Gets Penalized
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)
Free up to 500 URLs, enough for a pre-launch batch audit
Confirms whether orphaned or thin pages are actually getting crawled
Paid upgrades (optional, faster/deeper)
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?
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?
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?
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
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