Content audit: step-by-step update plan, templates and decision matrix

TL;DR
A content audit is a systematic inventory and evaluation of content to decide: keep, update, merge or delete. This article gives a step-by-step plan, a decision matrix, templates and checklists, and shows how to roll out changes safely and measure impact on traffic and conversions.
Content audit is a systematic review of content that helps decide which pages to leave as-is, which need content updates, which to merge, and which to delete. Below is a practical guide: checklists, a content-audit decision matrix, a working spreadsheet template, a 30/60/90 day plan and safe redirects.
What a content audit is and why you need it
In short: a content audit is an inventory and evaluation of pages using business and search data to increase organic traffic, traffic quality and conversions. It identifies thin content, duplicates, query cannibalization, content gaps and outdated materials that hurt E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness).
What a content audit delivers in B2B and IT:
- Growth of targeted organic traffic by removing duplicates and strengthening winners.
- Improved visibility for important clusters where content gaps exist.
- Higher conversions by refreshing articles, updating offers and CTA blocks.
- Reduced marketing debt: fewer pages means easier management and better crawl budget.
When and how often to run an audit (scenarios and frequency)
- Regularly: every 3–6 months for active blogs/media and every 6–12 months for corporate B2B sites.
- Event-driven: migration/redesign, organic traffic drop, change of content strategy, new product launch, regional expansion.
- Russian context (Yandex): consider regional settings. Check region tags in Yandex.Webmaster, split by city queries (e.g., “outsourcing development Moscow/SPb/Kazan”). Note that recalculation can occur in waves; observation window after a release is 4–8 weeks.
- International context: when working with logs and user data comply with GDPR/CCPA, and consider availability differences (Yandex may be unavailable in some regions).
Preparation: gathering the URL inventory (sitemap, crawler, logs, GSC/Webmaster)
The goal of this stage is to get a complete, clean list of URLs with technical and business fields.
What to collect:
- sitemap.xml: primary list of indexable URLs and lastmod dates.
- Crawl the site: Screaming Frog (or equivalent) — status codes, canonical, H1–H2 headings, meta, depth.
- Server logs: actual bot crawl, crawl frequency, non-indexable sections that consume budget.
- Google Search Console and Yandex.Webmaster: impressions, clicks, CTR, positions, pages with indexing issues.
- GA4 and Yandex.Metrica: sessions, landing pages, micro- and macro-conversions (CV), user flows.
- Backlinks: Ahrefs/Semrush — inbound links and anchor list.
How to avoid traps:
- Deduplication: respect canonical and parameter variants, but do not hide problematic duplicates.
- Split content by roles: blog, service landing pages, help/knowledge base, product sections, local pages.
Which metrics to collect for each URL (traffic, CTR, conversions, inbound links, update date)
Minimal set of columns for analysis and subsequent conversion assessment:
- URL, H1, page type, role (traffic generator, converter, supporting).
- Search metrics: impressions, clicks, CTR, average positions (by main queries and brand queries separately).
- Traffic and behavior: sessions (organic), share of new users, time on page, bounce/return rate.
- Business: conversions (CV), CVR, revenue/cost per lead (if applicable in B2B — equivalent cost per lead/meeting).
- Links: number of referring domains, key anchors.
- Content: publish/last update date, text volume, presence of FAQ/How-to, media content.
- Tech: status code, canonical, noindex, speed, Core Web Vitals.
- E-E-A-T risk: author/expert presence, update date, data sources (without open links), topic coverage completeness.
Tip: split metrics into tabs “Search”, “Behavior”, “Business”, “Links” to avoid overloaded filters.
Decision matrix: keep / update / merge / delete / noindex — criteria and examples
Below is a practical content-audit decision matrix. Choose decisions based on data, not feelings.
Condensed criteria table:
| Decision | When to choose | What to do | Risks |
|---|---|---|---|
| Keep | Stable clicks/conversions, good rankings | Minor fixes: date, micro-updates, internal linking | Don’t break the leader — avoid changing URL or radically altering title |
| Update | Has impressions, low CTR/outdated content, cannibalization | Rewrite the lead, add facts, E-E-A-T, new sections, improve offer | Shift intent, over-optimize |
| Merge | Intent/key duplication, diluted links | Merge articles: pick canonical, move content and links | Loss of relevance if topics actually differ |
| Delete | Thin content, zero metrics, irrelevant | Delete pages with 301 redirect to closest relevant or use noindex | Loss of rare long tails, 404 issues |
| Noindex | Utility/filter pages, low-quality without search value | Add noindex and block crawlers when needed | Nested pages may drop out if overused |

Examples of situations:
- A 2019 blog post with traffic but low CTR — Update: add current data, a diagram, FAQ.
- Two articles “what is X” and “X in simple terms” — Merge: combine articles and set 301 redirect.
- A page “promotion 2021” — Delete: remove and redirect to an evergreen “discounts” section or set noindex.
How to calculate scoring: example formula and weights for blogs/landing pages/product pages
Scoring helps prioritize batches of URLs without debate. General scheme:
Score = w1·Traffic_Potential + w2·Gap_CTR + w3·CVR + w4·Links + w5·Freshness + w6·Cannibalization_Risk (negative)
Suggested weights (0–1) and normalization by page type:
| Type | Traffic potential (impressions) w1 | Gap CTR w2 | CVR w3 | Links w4 | Freshness w5 | Cannibalization w6 |
|---|---|---|---|---|---|---|
| Blog | 0.35 | 0.20 | 0.10 | 0.15 | 0.15 | -0.05 |
| Service landing | 0.25 | 0.20 | 0.30 | 0.10 | 0.10 | -0.05 |
| Product/knowledge | 0.30 | 0.20 | 0.15 | 0.20 | 0.10 | -0.05 |
How to calculate in practice:
- Traffic_Potential = normalized impressions for the main cluster (0–1).
- Gap_CTR = difference between current CTR and industry CTR at the same position (normalize 0–1).
- CVR = conversion rate to lead/target action from GA4/Yandex.Metrica (0–1).
- Links = log-normalized number of referring domains (0–1).
- Freshness = 1 if no updates >12 months; 0.5 if 6–12 months; 0 if <6 months.
- Cannibalization_Risk = 1 when >50% query overlap with another page; otherwise 0.
Enter results in the matrix: example thresholds — Score ≥ 0.6 — Update/Merge; 0.4–0.59 — Update; < 0.4 — Delete/Noindex (unless there is business value).
Step-by-step plan: 30/60/90 days for implementing the audit
The plan helps avoid getting stuck in endless spreadsheets and pushes changes safely to production.
-
Days 1–30: inventory and pilot
- Gather URL inventory, build a working spreadsheet, calculate scoring for 50–100 pages.
- Audit content in a priority topic, choose 10–15 URLs for the pilot.
- Prepare texts: refresh articles, fix structure, add visuals.
- Set up monitoring in GSC/Webmaster + GA4/Yandex.Metrica, create redirects map.
-
Days 31–60: scale
- Launch the pilot, measure initial results for 2–4 weeks.
- Expand to 100–200 high-scoring URLs; improve internal linking.
- For duplicates — perform merges; for noise — delete pages with 301 redirects.
-
Days 61–90: rhythm
- Automate exports, establish an editorial update rhythm.
- Finalize the content-audit decision matrix for your site and hand off roles to the team.
How to safely merge and delete pages (redirects, transfer map, control group)
Main rule — don’t break intent. Start with a control group of 5–10 URLs, then scale.
Step-by-step: merging articles (merge)
- Choose the target page (best rankings/links, relevant URL).
- Compare structures: collect sections to keep; remove duplicates and weak blocks.
- Move strong fragments, diagrams, tables to the target; update date and E-E-A-T (author, facts).
- Set 301 redirects from all sources to the target.
- Update internal links and menus.
- Monitor in GSC/Webmaster: rankings, CTR, errors.
Step-by-step: deleting pages with redirects
- Classify candidates: thin content, outdated promotions, duplicates, filters.
- Find the nearest intent-matching target.
- Apply a 301 redirect (no chains), verify with logs and a crawler.
- If there is no relevant target — use noindex and remove from sitemap.
- Update internal links to point to the target.
Technical nuances:
- canonical is not the same as a redirect; canonical is a soft signal, 301 is a hard transfer.
- Yandex regionality: ensure a redirect does not move users to a different regional section without reason.
- Multi-domains/directories: for ru/site and com/site — use a redirects map and avoid cross 301s.
Example redirects map (snippet):
from_url,to_url,reason
/bitrix-24-obzor,/crm-obzor,merge: дубли тематики
/aktsiya-2021,/skidki,expired: акция завершена
/blog/kak-vybrat-erp,/erp-vybor,merge: каннибализация
Templates and checklists (downloadable files): working spreadsheet, redirects map, pre-release checklist
Below are printable versions of templates. Copy to Google Sheets or export as CSV.
Working spreadsheet template (CSV) — basic structure
URL,H1,Type,Role,Clusters,Impressions,Clicks,CTR,Positions,Sessions_org,Conversions,CVR,Donors,Last_update,Status,Canonical,Noindex,Score,Decision,Priority,Owner,Sprint
https://site.ru/blog/kontent-audit,Контент-аудит,Блог,Трафик,контент-аудит;обновление,12000,600,5.0,12.3,1500,25,1.7,15,2023-05-12,200,https://site.ru/blog/kontent-audit,,0.72,Update,1,Editor,Sp1
https://site.ru/blog/audit-kontenta,Аудит контента,Блог,Трафик,контент-аудит,8000,280,3.5,17.1,900,10,1.1,8,2021-11-07,200,https://site.ru/blog/kontent-audit,,0.65,Merge,2,SEO,Sp2
https://site.ru/aktsii/2021,Акции 2021,Utility,N/A,акции,,0,0,–,0,0,0,0,2021-01-10,200,,,0.10,Delete,3,SEO,Sp3
Pre-release checklist (for Update/Merge/Delete)
- Content: facts and data updated, E-E-A-T blocks added, intent and structure fixed.
- Search: titles/descriptions/headings without over-optimization, duplicate H1 fixed.
- Tech: target returns 200, 301 redirect without chains, canonical is correct.
- Navigation: internal links, breadcrumbs, sitemap updated.
- Indexing: when deleting — removed from sitemap.xml; for utility pages — set noindex.
- Monitoring: annotations in GA4/Yandex.Metrica, segments and reports in GSC/Webmaster configured.
Content-audit daily ops checklist
- Reconcile inventory with sitemap.xml and logs.
- Check cannibalization by keys and intent.
- Review positions/CTR by clusters.
- Assess page conversions via GA4/Yandex.Metrica.
- Update status and priority in the sheet, re-evaluate scoring.
Tools and automation: which tools you need at each stage and script examples
Tool comparison (when to use what):
| Tool | Strengths | When to use | Limitations |
|---|---|---|---|
| Screaming Frog (crawler) | Full URL audit, statuses, meta, canonical | Inventory, checking redirects and noindex, finding duplicates | Paid for large sites, needs configuration |
| Ahrefs/Semrush | Links, visibility, clustering, competitors | Assess link profile, market topics, queries | Data for Runet and regionality may differ |
| Google Search Console | CTR, impressions, clicks, positions | Demand analysis, CTR-gap, cannibalization | Not all traffic is visible; sampling |
| Yandex.Webmaster | Indexing, regions, queries | RU regionality, correctness of regional sections | Logic differs from Google |
| Server logs | Actual crawl events, errors, budget | Verify whether bots hit target URLs | Requires access, handle GDPR/CCPA carefully |
| GA4/Yandex.Metrica | Behavior and conversions | Evaluate business effect, segment sources | Tracking schemes, attribution, privacy |
Automation (no-code ideas):
- Auto-exports from GSC/GA4/Metrica via API into Google Sheets daily.
- Conditional formatting to highlight rows by Score thresholds.
- Partial log collection with IP/UID masking to comply with GDPR/CCPA.
Examples and cases: before/after with numbers and action breakdown
Case 1: B2B services blog (50 URLs)
- Actions: refreshed articles, unified offer and CTA, merged duplicate-topic articles, internal linking.
- Result in 8 weeks: organic traffic +35%, CTR +1.2 pp, leads +28%.
- Contribution: 70% of growth came from 15 URLs in the “data analytics” topic.

Case 2: service landing pages (regional sections)
- Actions: revised regional content, correct regional markup for Yandex, deleted pages with redirects to current clusters, added city anchors and examples.
- Result in 6 weeks: average ranking for “service + city” improved by 6 positions, calls/leads +22%.
Case 3: knowledge base (120 URLs)
- Actions: decision matrix, scoring, cleaned thin content, moved strong sections into 12 evergreen guides, set canonicals on archives.
- Result in 12 weeks: pages in index -18%, organic traffic +19%, demo conversion +15%.
Example before/after (report snippet):
| URL | Before (CTR/position/sessions/conversions) | After (CTR/position/sessions/conversions) | Action |
|---|---|---|---|
| /blog/kontent-audit | 2.9% / 17.2 / 600 / 8 | 4.5% / 12.6 / 910 / 14 | Update |
| /blog/audit-kontenta | 3.1% / 19.0 / 420 / 4 | 4.1% / 13.8 / 720 / 7 | Merge |
| /aktsii/2021 | 0% / – / 0 / 0 | — | Delete (301 → /skidki) |
KPIs and reporting: how to measure audit success (metrics and reporting frequency)
- Global KPI: organic traffic for non-brand clusters, leads/applications, cost per lead, share of targeted traffic.
- Tactical KPI: CTR on target queries, average positions, number of pages in index, crawl speed (from logs), page depth.
- Operational KPI: completed checklist items, share of URLs in Done status, meeting deadlines.
Reporting cadence:
- Weekly: release status, indexing errors, CTR/position dynamics for the pilot.
- Biweekly: contribution by Score (Pareto 20/80), page conversion assessment.
- Monthly: traffic/leads summary, ROI calculation (if revenue-from-organics data is available).
Common mistakes and how to avoid them
- Overfitting to Google while ignoring Yandex: check regionality, mirrors, noindex and canonical.
- Mass redirects without a map: always produce a redirects map, avoid chains and loops.
- Updating for volume’s sake: refreshes must strengthen intent and E-E-A-T, not bloat text.
- Zero result control: without annotations/segments in GA4/Yandex.Metrica it’s hard to prove contribution.
- No scoring: without a numeric priority matrix decisions become subjective and releases random.
FAQ — answers to frequent questions
See the short answers at the top of the article.
-
When should I run a content audit — regularly or after an event? See the periodicity section: regular cycle 3–12 months + event-driven audits after migrations, drops or strategy changes. In Russia consider Yandex update waves and regionality.
-
How to decide: update, merge or delete a page? Use the decision matrix and scoring. Update when there is demand potential and a CTR gap; merge with intent duplicates; delete with 301 for thin content/promotions; noindex for utility pages.
-
Which metrics are mandatory when making a decision? Impressions/clicks/CTR/positions, GA4 and Yandex.Metrica for conversions, backlinks, last update date, cannibalization and tech (status, canonical, noindex).
-
How to set up redirects when deleting/merging to avoid losing traffic? Create a map, set 301s, move strong blocks to the target, fix internal linking, monitor errors and CTR/position dynamics in GSC/Webmaster.
-
Which tools are best for a large-scale audit (500+ pages)? Crawler + logs for technical state; Ahrefs/Semrush for links/topics; webmaster panels for CTR/positions; GA4/Metrica for business metrics. Combine tools and automate exports.
Tips for updating old content at the end:
- Don’t change the URL of well-ranking pages unless absolutely necessary.
- Start with the lead paragraph, structure H2/H3, add concise answers and tables.
- Add an update date and owner (author/editor).
- Recheck intent against the SERP: informational vs commercial.
- Test the new version in staging and use the pre-release checklist.
This guide covers the main queries: content audit, content update, article refresh, content inventory, how to update old content, content-audit decision matrix, deleting pages with redirects, merging articles (merge), content gap, content strategy, content-audit checklist, working spreadsheet template and page conversion assessment.
FAQ
- When should I run a content audit — regularly or after an event?
- There are two modes: regular (every 6–12 months for stable B2B sites and every 3–6 months for active blogs/media) and event-driven — after traffic drops, a new content strategy release, site migration, domain/structure change, or entering new regions. For Russia consider Yandex: updates can be applied in waves, so plan observation windows of 4–8 weeks after major changes.
- How to decide: update, merge or delete a page?
- Use the content-audit decision matrix and scoring. Update if there is traffic/impressions and CTR/conversion potential but the content is outdated. Merge when topics and intent duplicate and links are diluted. Delete with a 301 redirect if the content is thin and has no demand; use noindex for temporary promotions. Always verify decisions on a small control group and monitor CTR, rankings and conversions for 4–8 weeks.
- Which metrics are mandatory when making a decision?
- Minimum set: impressions, clicks, CTR, rankings (from Google Search Console and Yandex.Webmaster), visits and conversions (GA4 and Yandex.Metrica), inbound links/anchors, last update date, behavioral signals (time on page, depth), query cannibalization, technical state (status code, canonical, headers). For B2B track quantifiable leads: CVR, cost per lead and revenue contribution.
- How to set up redirects when deleting/merging to avoid losing traffic?
- Create a redirects map, ensure source and target intent match, use 301 redirects and avoid redirect chains. Preserve H1/key sections on the target, move best fragments and links. For filtering noise use noindex and correct canonical. Test on a control group before scaling, monitor crawl errors, 404s and query drops in GSC/Webmaster.
- Which tools are best for a large-scale audit (500+ pages)?
- Inventory — Screaming Frog (or other crawlers) + server logs. Demand and links — Ahrefs/Semrush. Rankings and CTR — Google Search Console and Yandex.Webmaster. Behavior and page conversion evaluation — GA4 and Yandex.Metrica. Combine: crawler for status, SEO tools for links/semantics, webmaster panels for SERP, analytics for business metrics.


