Programmatic SEO and AI Content at Scale — Without Getting PenalizedAI search visibility, measurement and case walkthroughs · Lesson 12 of 14

Measuring and pruning: keep, improve, merge or remove

Article · 8 min · 8 min lecture

Video lecture

Measuring and pruning: keep, improve, merge or remove

14 chapters · about 8 min · full transcript

Coming soon

Chapter 1 of 14

Measuring and pruning

  • Why gardening matters
  • Cohort measurement
  • The page scorecard
  • Decision framework
  • Safe pruning

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

Page systems need gardening

A page system is never "done". Data changes, demand shifts, some segments underperform and some templates age. Without regular measurement and pruning, weak pages accumulate and can weigh on how search engines perceive the whole site.

Measure at the right level

Individual long-tail pages have noisy data. Measure cohorts:

  • By page type (integrations, city pages, comparisons).
  • By segment (city tier, category, data richness band).
  • By launch wave (pilot vs wave 2).
  • By template version.

The page scorecard

MetricSourceWhy
Indexed?Search Console / URL Inspection APIFirst quality signal
Impressions, clicks, CTR, positionSearch Console APISearch demand captured
AI feature impressionsSearch Console generative AI reportVisibility in AI surfaces
Engaged sessions, conversionsGA4 / BigQueryUser value
Data richnessYour databaseContent quality proxy
FreshnessYour databaseAccuracy
InlinksCrawlerDiscoverability
BacklinksLink toolsAuthority

Hands-on: pulling Search Console data by page type

# pip install google-api-python-client google-auth
import os
from google.oauth2 import service_account
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file(
    os.environ["GSC_SA_KEY_PATH"], scopes=["https://www.googleapis.com/auth/webmasters.readonly"])
gsc = build("searchconsole", "v1", credentials=creds)

def page_rows(site, start, end, url_contains):
    body = {"startDate": start, "endDate": end, "dimensions": ["page"], "rowLimit": 25000,
            "dimensionFilterGroups": [{"filters": [{"dimension": "page", "operator": "contains",
                                                     "expression": url_contains}]}]}
    return gsc.searchanalytics().query(siteUrl=site, body=body).execute().get("rows", [])

rows = page_rows("sc-domain:example.com", "2026-06-01", "2026-08-31", "/tutors/")
print(len(rows), "pages with impressions")

(The service account must be added as a user on the Search Console property.) Join with GA4 (BigQuery export), your database (data richness) and crawl data (inlinks).

The decision framework

For pages or segments with enough time since launch (e.g., 3–6 months):

SituationAction
Indexed, impressions, engagement goodKeep; refresh data
Indexed, impressions, poor engagementImprove template/answer; check intent mismatch
Not indexed, data thinHold back (noindex) or merge into a parent/regional page
Not indexed, data richImprove discovery (links, sitemaps), check duplication
No demand, little value to usersRemove (404/410) or noindex if useful for navigation
Duplicates/cannibalizationMerge with 301 to the strongest page
Outdated entity (closed business, expired job)Update status; remove or redirect as appropriate

Remember pages can be valuable for users even without search traffic (e.g., navigation within a marketplace); keep them but consider noindex.

Pruning safely

  • Make changes in batches, log them, and annotate dates.
  • Redirect only to genuinely equivalent or parent pages; do not redirect everything to the home page.
  • Update internal links and sitemaps to remove pruned URLs.
  • Monitor after each batch: indexing, impressions and conversions for the whole page type.

Worked example: a Pakistani real-estate portal

After a year, "[property type] for sale in [society] [city]" pages were reviewed. Findings: 30% of pages had no listings for 6+ months; many small societies duplicated larger ones in the same area. Actions: pages with zero listings for 90 days switched to noindex with a notify-me module; small societies merged into area pages with 301s; the template gained a price-per-marla trend chart (computed) for societies with enough sales. Over the next months, impressions concentrated on fewer, stronger pages and leads per page rose.

Refreshing instead of pruning

Many underperforming pages need fresher or deeper data rather than removal. Before pruning, ask: would a data refresh (new listings, updated rates), a better answer block, or a computed insight make this page the best result for its query? Schedule refreshes by data volatility — rates daily, listings weekly, statistics when sources publish — and track refreshed cohorts separately so you can see whether refreshing lifts clicks and engagement. Refresh first, prune second.

Pitfalls

  • Judging single long-tail pages on a few weeks of data.
  • Mass deleting pages without redirects or internal link cleanup.
  • Pruning pages users rely on for navigation.
  • Never re-evaluating held-back pages when their data improves.

How to measure success

Share of indexed pages with impressions, clicks and conversions per indexed page, reduced share of zero-value pages, and stable or rising total results after each pruning batch.

Key takeaways

  • Page systems need regular gardening; weak pages accumulate.
  • Measure cohorts (type, segment, wave, template version), not single long-tail pages.
  • Build a scorecard from Search Console, GA4, your database and crawl data.
  • Decide keep / improve / hold back / merge / remove with a clear framework.
  • Prune in logged batches with proper redirects and link/sitemap cleanup, then monitor.

Check your understanding

Quick questions to lock in the lesson. They don’t count towards your certificate.

  1. Why measure long-tail pages in cohorts?
  2. A page is not indexed and has very thin data. What's the best action?
  3. When merging duplicate pages, what should you do?

Put it into practice

Build a scorecard for one page type (at least five metrics), segment it, and apply the decision framework to produce a keep/improve/hold/merge/remove list.

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.