Agency operations guide
Prioritize SEO Maintenance Across a Small Client Portfolio
Put every open SEO issue from every client site in one queue, score it on observed impact, urgency, and confidence, gate it on permission and dependencies, and review what you defer.
On this page
To prioritize SEO maintenance across several client sites, put every open issue into one queue with the same fields, score each on a few stated criteria, and work from the top. Record what you observed, not what you fear the issue might cost. An issue with no client permission or an unresolved dependency waits, whatever its score.
The point is a queue you can explain. When a client asks why their request waited, you can show the evidence, the score, and the rule that ordered it.
Record every issue in the same shape
Issues arrive in different forms: an audit warning on one site, a client email on another, a Search Console alert on a third. Convert each into one row before comparing anything.
| Field | What to write |
|---|---|
| Site | The client site |
| Issue | One sentence, specific: “Service pages have no meta description,” not “SEO problems” |
| Evidence | Where you saw it and when: an audit output, a Search Console report with its date range, a view-source check |
| Pages affected | A count, and whether they include the site’s important pages |
| Observed impact | What the data shows now, such as pages missing from the index or a click decline on those pages |
| Urgency | Is it getting worse, or does it have a deadline? |
| Confidence | How sure are you of the cause? |
| Depends on | Anything that must happen first |
| Client permission | Granted, pending, or not needed (within the agreed plan) |
| Status | Queued, in progress, waiting, deferred, done |
The evidence field keeps the queue honest. An issue with no evidence is a suspicion, and it goes in as a task to investigate, not a fix to schedule.
Collect comparable evidence from each site
Comparable rows need comparable inputs. Run the same checks on every site on the same schedule, and save the outputs with dates.
For sites running WP Visibility, the site audit gives a consistent starting set: wp visibility audit --format=json on each site reports the same five settings checks and four counts (printed as two JSON arrays, checks first, then counts), and wp visibility post-audit <id> checks one post. The site audit documentation lists the checks. WP Visibility does not collect audit results from several sites into one dashboard, so you run the audit per site and collect the outputs yourself, for example into one folder per month.
For search data, use each site’s Search Console property with the same date range and comparison period for every client. Google’s help suggests sorting by the Difference column to find queries or pages with significant change from a previous period. Google’s Performance report common tasks, checked September 27, 2026.
Score each issue with stated assumptions
Use a small scale and write down what each number means. The scale below is one option; the value is in agreeing on it, not in these exact definitions.
| Score | Observed impact | Urgency | Confidence |
|---|---|---|---|
| 3 | Important pages affected, and the data shows it now | Worsening, or a fixed deadline | Cause confirmed |
| 2 | Several pages affected, effect visible | Stable but will need attention | Cause likely |
| 1 | Few or minor pages, no visible effect yet | No deadline | Cause unclear |
Add the three for a priority score from 3 to 9. Then apply two gates before ordering:
- Permission gate. If client permission is pending, the row is “waiting,” regardless of score.
- Dependency gate. If something must happen first, the row waits for it, and the blocking task inherits its priority.
Do not convert scores into revenue. You rarely have the data to say what a missing description costs a client, and a precise-looking figure invites decisions it cannot support. “Important pages affected” is an observation. “This costs the client $400 a month” is a forecast you would need to defend.
One exception overrides the scale. Anything that can remove a site from search, such as search engines being discouraged in Settings → Reading on a live site, or noindex applied to a whole post type, goes to the top immediately. With that Reading setting on, WordPress adds a noindex robots meta tag to the site’s pages (wp_robots_noindex, checked September 27, 2026), and Google drops noindexed pages from its results (Google’s noindex documentation, checked September 27, 2026).
Worked example: an illustrative portfolio worksheet
The worksheet below is synthetic. The three sites (garden.example, bakery.example, and tools.example) and their issues are invented to show how the gates and scores interact. They are not real clients or typical findings.
| Site | Issue | Evidence | Impact | Urgency | Confidence | Score | Gate | Decision |
|---|---|---|---|---|---|---|---|---|
| tools.example | Staging copy left “discourage search engines” on after launch | Audit blog_public fail |
3 | 3 | 3 | 9 | None | Fix today (override) |
| garden.example | Two title tags on each post checked | View source, three posts | 2 | 2 | 3 | 7 | None | This week |
| bakery.example | Clicks down on the catering page | Search Console, 28 days vs previous | 3 | 2 | 1 | 6 | None | Investigate first; no fix yet |
| garden.example | Category archives have no descriptions | Categories screen, checked by hand | 1 | 1 | 3 | 5 | None | Batch next month |
| bakery.example | Rewrite menu page titles | Client request | 2 | 1 | 2 | 5 | Permission pending on wording | Waiting |
| tools.example | Redirect old product URLs | 404s in Search Console | 2 | 2 | 3 | 7 | Depends on client’s product list | Waiting on dependency |
Two rows with a score of 7 do different things: one proceeds, one waits on the client. The bakery traffic issue scores 6 but becomes an investigation because confidence is low. Changing titles before knowing the cause would be guessing.
Review deferred and unresolved items
A queue decays unless you revisit it. Once a month:
- Re-score anything whose evidence changed. A new Search Console period can raise or lower impact.
- Chase every “waiting” row. Permission requests that sit for weeks are a scope conversation, not a task.
- Close rows that no longer apply, with a note saying why.
- Look at the age of deferred items. An issue deferred three times needs a decision: schedule it, quote it as a project, or record that the client accepted it.
Resist changing well-performing pages because they are the easiest items to reach. Google’s traffic-drop guidance recommends avoiding radical changes if a page is already performing well. Google’s guide to debugging Search traffic drops, checked September 27, 2026.
Deciding which work belongs in the retainer at all is a separate question; defining SEO maintenance inside a care plan covers it.
Queue checklist
- Every issue has evidence with a date, or is marked “investigate.”
- Scores use written definitions everyone on the team shares.
- Permission and dependency gates are applied before ordering.
- Deindexing risks jump the queue.
- No row carries an invented revenue figure.
- Deferred and waiting rows are reviewed monthly.
