Guides → Annual site health check — SGEN documentation

Run an annual site health check

How to run an annual SGEN site health check

Once a year, block two to three hours and walk your SGEN site through eight maintenance areas. This annual site health check is not a crisis response — it is a scheduled sweep that catches the slow drift most sites accumulate over twelve months: a handful of redirects no one visits anymore, a user account that should have been disabled six months ago, a Custom Code snippet for a tracker that was replaced last quarter. Doing this sweep once a year takes roughly two hours and thirty minutes. Skipping it for two or three years creates a backlog that takes a full day to untangle.

your business (yourdomain.com) runs this sweep every January, before the peak spring season. The screenshots and examples in each step use their site.

What is this for?

This walkthrough is for SGEN site admins who want to keep their site clean, fast, and compliant without reactive scrambling. It is not a troubleshooting guide — it assumes everything is working. It is a preventive maintenance schedule for the eight areas of SGEN that accumulate technical debt quietly. You run it once a year, ideally at the same time each year so the rhythm is easy to remember.

Good use cases

Example 1: The January sweep before peak season. your business does their health check every January. They exported their SEO table, found four blog posts with no meta description, fixed them inline in ten minutes, archived a redirects list from a 2023 site restructure, confirmed their most recent backup, disabled two former contractor accounts, reviewed six Custom Codes and disabled a Facebook Pixel snippet replaced by a newer tag manager setup, pruned three Custom CSS snippets tied to a retired homepage theme, checked their blacklist for stale IPs, and pulled a consent-rate snapshot for their compliance file. Total time logged: 2h 15min.

Example 2: The mid-year spot-check after a redesign. A redesign ships in July. Run the redirects and Custom CSS steps immediately after — any old page slugs now need redirects and old theme CSS is almost certainly stale. The other six steps can wait until the next annual sweep.

Example 3: The offboarding trigger. A team member leaves. Run the users step immediately — disable their account, audit their role assignments, and note any content they owned. The rest of the sweep can wait until the next scheduled annual.

What NOT to use this for

Daily or weekly monitoring

These are annual pass/fail checks, not dashboards. Use your analytics platform and consent log regularly for real-time signals.

Emergency incident response

If your site is under active attack or a redirect loop is live, go directly to the relevant panel — do not start from this checklist.

Replacing per-change hygiene

Every redirect should be added the moment a page moves. Every user should be disabled the day they leave. This annual sweep catches anything that slipped through — it is not a substitute for doing those things at the right time.

How this connects to other features

Each step in this guide links out to a dedicated pile doc for the full step-by-step. This workflow is the scheduling layer — it tells you what to check and in what order.

Redirects audit → Manage site redirects

Backup verification → Manage site backups

User roster cleanup → Manage every user on your site

Custom Codes review → Create and manage Custom Codes

Custom CSS review → Manage Custom CSS snippets

Blacklist review → Block abusive IPs

Consent log review → Review consent sessions

Before you start

  • Confirm you are signed in as an Admin-role account. Viewer and Editor roles cannot access several panels in this sweep (Blacklist, Custom Codes, Custom CSS).
  • Block two to three hours of uninterrupted time. The work is low-risk but requires judgment at each step — do not rush.
  • Open a notes document. You will record findings as you go: IP addresses to prune, users to disable, snippets to retire.
  • If your site has a staging instance, run the Custom Codes and Custom CSS steps against staging first to confirm nothing breaks before you disable a live snippet.

Where to go

All eight panels are under sg-admin — the main SGEN admin sidebar. You do not need a separate login or tool. The full sweep happens entirely inside your SGEN admin.

StepPanel pathTime estimate
1. SEO auditsg-admin/seo/ → SEO Manager30 min
2. Redirects auditsg-admin/redirects/20 min
3. Backup verificationsg-admin/migration/15 min
4. User roster cleanupsg-admin/users/20 min
5. Stale Custom Codessg-admin/custom_codes/25 min
6. Stale Custom CSSsg-admin/custom_css/20 min
7. Blacklist reviewsg-admin/blacklist/15 min
8. Consent log reviewsg-admin/tracking-consent/ → Logs15 min

Steps

Work through each step in order. Each one has the admin panel path, the specific checks to run, and a clear pass marker so you know when to move on.

1
SEO audit (30 min)

Open SEO Manager (sg-admin/seo/). The SEO Manager loads every page, post, and event on your site into a single table with 18 SEO signals per row. Once a year, export the full table and audit for gaps.

Checks to run:

  1. Click Issues to filter to rows missing an SEO Title or Meta Description.
  2. Fix each flagged row inline — click the SEO Title or Meta Description cell, type, and press Tab. No separate editor needed.
  3. Scroll the Index Status column. Confirm every content page you want indexed shows the toggle active (green). Confirm any page you want excluded (thank-you pages, admin-facing pages) is toggled off.
  4. Click Export to download the full table as a CSV. File it with today's date as your annual SEO baseline — useful for next year's comparison.
  5. Open Global SEO (left sidebar). Confirm the site-wide title template and meta description are current and accurate.

Pass marker: Issues chip reads zero, or every remaining flagged row is intentional. Export filed.

2
Redirects audit (20 min)

Open the Redirects list (sg-admin/redirects/). Redirects accumulate every time you rename a page, merge sections, or run a seasonal campaign. After twelve months you typically have a mix of necessary live rules, expired campaign rules, and placeholder rules from an old site structure.

Checks to run:

  1. Sort or scan for rules older than twelve months.
  2. For each old rule, ask: Is the original URL still linked anywhere? If the source URL gets zero traffic and no external site links to it, the rule is a candidate for deletion.
  3. Look for redirect chains — where rule A points to rule B. Collapse chains into a single direct rule where possible.
  4. Delete rules with no traffic and no external links using the Delete row action, or select multiples and use Bulk action → Delete.
  5. Note any rules you delete in case you need to reinstate one within the next few weeks.

Pass marker: No rules older than 12 months with confirmed zero traffic remain. Chains resolved.

3
Backup verification (15 min)

Open the Backups panel (sg-admin/migration/). A backup you have not verified is a backup you cannot trust. Once a year, confirm that a recent backup exists and that it is restorable.

Checks to run:

  1. Confirm a backup taken within the last 30 days appears in the list. If none exists, create one now before continuing.
  2. Note the file name and size. A significantly smaller-than-usual backup (roughly half the normal size) can indicate an incomplete snapshot — worth investigating before you rely on it.
  3. If your plan allows it, run a test restore on a staging instance. Restore the most recent backup to staging, confirm the site loads, and confirm one or two pages render correctly. A backup that cannot be restored is not a backup.
  4. Archive the backup file name and creation date in your maintenance notes.

Pass marker: A backup dated within 30 days exists. Test restore on staging confirms the file is valid.

4
User roster cleanup (20 min)

Open the Users panel (sg-admin/users/). Every site accumulates accounts over time — contractors who finished a project, a former staff member, a freelancer who did a one-off content update. Inactive accounts with elevated roles are a security risk.

Checks to run:

  1. Filter by role. Start with Admin and Editor roles — these are the highest-privilege accounts.
  2. For each account, check the last-seen or last-login date. Any account inactive for the past six months should be evaluated for disabling.
  3. Disable (do not delete) accounts you cannot immediately account for. Disabling prevents login but preserves content attribution. You can re-enable if you made a mistake.
  4. Review role assignments. Confirm every Admin-role account is genuinely an admin. Editors who only need to read content should be Viewers.
  5. Check for accounts using personal email addresses (e.g. @gmail.com) that should have been converted to company accounts. Note them for a separate follow-up.

Pass marker: Every active Admin-role account has a known, active owner. All accounts inactive > 6 months are disabled or have a documented reason for staying active.

5
Stale Custom Codes review (25 min)

Open the Custom Codes list (sg-admin/custom_codes/). Custom Codes is where third-party scripts live: analytics loaders, tag managers, chat widgets, cookie banners, conversion pixels. Over a year, you might add a new analytics platform and forget the old one is still running, or a vendor's pixel gets replaced by a tag manager equivalent. Duplicate or deprecated trackers inflate page-load time and can conflict with each other.

Checks to run:

  1. Count the total active snippets.
  2. For each active snippet, ask three questions: Is this tracker still in use by your team? Is there a duplicate (two analytics scripts, two chat loaders, two consent banners)? Was this replaced by a tag manager container tag?
  3. Disable any snippet you cannot confirm is needed. Disabling preserves the code so you can re-enable it if someone asks. Deleting is permanent.
  4. For snippets you keep, confirm the placement is still correct (<head>, Body Start, or </body> End) — some vendors update their recommended placement between script versions.

Pass marker: Every active snippet has a confirmed owner and purpose. No duplicates. No tag-manager-replaced remnants still running directly.

6
Stale Custom CSS review (20 min)

Open the Custom CSS list (sg-admin/custom_css/). Custom CSS snippets support your design system, but they accumulate over time. A snippet written for a now-retired homepage hero stays active until someone removes it. Stale CSS adds rules that no selector can reach and occasionally conflicts with new theme changes.

Checks to run:

  1. Read the name and priority of each snippet.
  2. For each snippet, open it and skim the selectors. Ask: Does the selector still match anything on the live site? A selector scoped to a class removed from the theme is dead weight.
  3. Any snippet tied to a specific page or design that no longer exists: disable it. Rename it with a suffix like — RETIRED 2026-01 so future auditors know its history without opening the code.
  4. Check for priority conflicts — two snippets overriding the same class with different values. Resolve by adjusting priorities or merging snippets.
  5. Snippets you are certain are no longer needed can be trashed. Trashed snippets move to a recoverable Trash state before permanent removal.

Pass marker: Every active snippet has selectors that match live site elements. No retired-theme CSS still running. Priority list is clean.

7
Blacklist review (15 min)

Open the Blacklist (sg-admin/blacklist/). The Blacklist blocks specific IP addresses from reaching your site. After twelve months, some blocks may be too aggressive (a shared IP that blocked a legitimate visitor) or stale (a bot that long since moved to a different address).

Checks to run:

  1. Count total entries. For sites with fewer than 20 entries, read each one. For larger lists, sort by date and focus on entries older than six months.
  2. For each entry, check the Reason field. If there is no reason recorded, add one before evaluating whether to keep or remove — you cannot safely assess an unexplained block.
  3. Single-IP blocks added for a specific incident: are they still relevant? If your logs show no further traffic from that IP in the past year, the rule is safe to remove.
  4. IP-range blocks (CIDR notation) deserve extra scrutiny — they can cover large subnets with many legitimate users. Confirm the range is still producing abuse before keeping the rule.
  5. Use the Test IP tool in the panel to verify that a specific address (such as your own office IP or a customer's reported IP) is not accidentally blocked.

Pass marker: Every entry has a reason recorded. Stale single-IP blocks from incidents more than 12 months ago with no recent traffic have been removed. No legitimate IP ranges mistakenly blocked. Your own office IP tested as not blocked.

8
Consent log review (15 min)

Open Tracking Consent → Logs (sg-admin/tracking-consent/). The Logs screen captures every visitor who saw your cookie consent banner — whether they accepted or declined, what page they landed on, and a full decision timeline. Once a year, review the aggregate picture to confirm your consent rate looks healthy and no sudden shift has gone unnoticed.

Checks to run:

  1. Note the total session count for the past twelve months.
  2. Scan for any month where the accept rate dropped sharply. A sudden drop may mean a banner change broke the Accept button, a browser extension is pre-dismissing the banner, or a traffic spike from a high-decline source arrived.
  3. Click into one or two recent sessions and confirm the session detail view renders: the Summary card shows consent decision and timestamp; the Timeline shows the banner-seen → decision flow.
  4. Take a screenshot or export the aggregate count for your compliance records.
  5. Confirm your current banner copy and the Accept / Decline button labels still match what your privacy policy describes. If you updated the policy this year, confirm the banner version number in the logs matches the current version.

Pass marker: No unexplained rate drop in the past 12 months. At least one session detail view confirmed rendering correctly. Compliance snapshot filed.

What success looks like

Success looks like

You have completed the annual site health check when all eight pass markers are met. The full sweep should take two to three hours. If it takes longer, the most common cause is the Custom Codes step — unclear snippet names and no documentation of who added them. Start naming snippets on creation and future sweeps will be much faster.

What to do if it does not work

The SEO Manager Issues chip never clears. Some issues are intentional — no-index pages, pages excluded from the sitemap. If you have resolved all unintentional issues and the chip still shows a count, click into the remaining rows to confirm they are pages you want excluded. Filtered-out pages are expected to appear in the Issues view.

A redirect you deleted is now causing a 404 on a page that is still needed. Re-add the redirect immediately with the same source and destination. If you are unsure which redirect was deleted, check your maintenance notes from this session — that is why you write them down before deleting.

A backup restore on staging fails with an error. Do not delete the file. The backup may be incomplete or corrupted. Create a new backup immediately so you have a fresh, verified snapshot. Then contact SGEN support with the original file name and the error message you received.

You disabled a user account and they immediately contact you that they cannot sign in. Re-enable the account from the Users panel — the disable and re-enable cycle is instant. Then confirm with the user whether they still need access and adjust their role accordingly.

A Custom Code snippet you disabled is needed after all. Open Custom Codes, find the snippet (it remains in the list with Inactive status), and re-enable it with one click. Nothing is lost when you disable; only deletion is irreversible.

Your consent accept rate dropped sharply after a recent site change. Check Tracking Consent → Settings and confirm the banner is still enabled and the Accept button label has not been cleared. Then check Custom Codes and confirm the consent banner snippet is still active.


Annual-summary checklist

Copy this checklist into a note, document, or task manager each year. Check off each step as you complete it.

Annual SGEN site health check — [YEAR]
Completed by: ___________________________
Date: ____________________________________
[ ] 1. SEO audit (30 min) Panel: sg-admin/seo/ → SEO Manager Issues chip result: _____ remaining (intentional: _____) Export filed: YES / NO Global SEO reviewed: YES / NO
[ ] 2. Redirects audit (20 min) Panel: sg-admin/redirects/ Rules reviewed: _____ Stale rules deleted: _____ Chains resolved: YES / NO / N/A
[ ] 3. Backup verification (15 min) Panel: sg-admin/migration/ Most recent backup date: ____________ Backup file name + size: ____________ Test restore on staging: PASS / FAIL / SKIPPED Notes: ______________________________
[ ] 4. User roster cleanup (20 min) Panel: sg-admin/users/ Admin accounts reviewed: _____ Editor accounts reviewed: _____ Accounts disabled: _____ Role reassignments made: _____ Notes: ______________________________
[ ] 5. Stale Custom Codes (25 min) Panel: sg-admin/custom_codes/ Active snippets total: _____ Snippets disabled: _____ Snippets deleted: _____ Notes: ______________________________
[ ] 6. Stale Custom CSS (20 min) Panel: sg-admin/custom_css/ Active snippets total: _____ Snippets retired (disabled): _____ Snippets trashed: _____ Notes: ______________________________
[ ] 7. Blacklist review (15 min) Panel: sg-admin/blacklist/ Total entries reviewed: _____ Entries removed: _____ Entries kept (with reason): _____ Own office IP tested — not blocked: YES
[ ] 8. Consent log review (15 min) Panel: sg-admin/tracking-consent/ → Logs Sessions reviewed (past 12 mo): _____ Accept rate (approx): _____% Unexplained rate drop found: YES / NO Session detail view tested: YES / NO Compliance snapshot filed: YES / NO
Total time: ____________
Notes for next year: _____________________
On this page