---
name: step-13-categorize-post-and-add-tags
description: "Put a post in the right topic group. Reuse clear tags so readers can find related work."
category: Content Factory — Post
stage: Post
definitive_article: https://localservicespotlight.com/article-guidelines/
status: complete
---

# Step 13: Categorize post and add tags

Good labels help people find more useful work on your site. This guide helps you choose the right topic group and tags for a post. Start with the site’s own list, so you do not create two names for the same thing.

**The path:** Page purpose → Existing labels → Saved category and tags → Checked grouping.

**Use this when:** A WordPress post needs its category and tag labels set or corrected.

## Inputs
- The exact post, its [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief and its place on the [SEO Tree](https://blitzmetrics.com/seo-tree/).
- The site’s current category/tag list and rules. A category groups related posts; a tag is a reusable label across posts.
- Permission to edit this post’s labels; scope for new terms if the existing list truly lacks a needed one.
- The content inventory, publication state, current canonical URL and permalink policy. Pages may not use post categories/tags unless the site explicitly adds that support.

## First-run prompt

> Use the exact post and current site taxonomy I provide. Select the right existing category and useful tags, save the authorized change, and verify the saved values. Keep draft and public archive checks separate. Do not create duplicate tags or add an internal stage system the site does not use.

## Steps
1. Read the post’s main purpose and current topic map. Identify the existing category that fits. A category archive and a maintained topic guide may be different pages; record both rather than assuming the category is the guide.
2. Open the post settings and Categories panel. Choose the agreed main category. Use a second only where the site policy and content support it. One primary category is a house choice; WordPress itself permits more than one.
3. Remove an accidental default “Uncategorized” assignment when a correct category is now set, within this post’s scope. Do not rename or delete the site’s global default category as part of a one-post task.
4. Open Tags and reuse exact existing terms. Choose only labels that help navigation or an established workflow. Stage tags, format tags, people and company names are not mandatory on every public site; do not invent them from an old template.
5. Review near-duplicates before creating a new tag. For example, “repair quotes” and “repair-quote” may point to the same idea. If the taxonomy needs a new term, follow the already-authorized taxonomy scope or record the specific missing decision.
6. Save the post in its intended state. Reopen its settings and confirm the actual assigned terms. Compare the canonical URL before and after because category-based permalink setups can change a public address; restore the scoped value or hold the result if the URL moved unexpectedly. If a machine lookup is part of the job, test the supported category/tag query with the correct IDs and access; do not assume every custom type exposes them.
7. For a published post, check its intended archive, visible labels and normal canonical URL. For a draft, inspect the archive’s existing siblings and the saved term assignment, but do not expect the unpublished post to appear publicly.
8. Update the inventory with the category/tag names or IDs, URL result and any justified not-applicable fields. Hand the record to [Configure search metadata](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin).

## Definition of done (QA checklist)

- [ ] The category fits the post’s actual topic and the site’s current structure.
- [ ] Tags reuse useful existing terms; no duplicate or invented workflow taxonomy was added.
- [ ] Saved terms match the plan and the supported content type, with no unasked canonical URL change.
- [ ] Published archive behavior and canonical URL are checked only when applicable; draft status is not treated as an archive failure.
- [ ] The inventory records exact labels, URL state and any unresolved term decision.

## Example(s)

**Fictional teaching example — no taxonomy was edited.** Maple Cycle’s sample post answers “Can a photo get me a repair quote?” The site already uses category “Repair quotes” and tag “Planning a visit.”

The publisher selects those terms and rejects a new tag called “repair-quote” because it adds no useful distinction. The draft saves with both term IDs. It does not show in the public archive yet, which is expected for a draft.

After an authorized publish, the same archive should list it among related posts if that archive is part of the site’s design. No `Stage: Post` tag is created because this fictional public site has no such taxonomy.

## Handoff and Content Factory context

The publisher receives the saved terms and actual state, then continues with [Configure Rank Math](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin) where that tool is used.

This task serves **Post** in the [Content Factory](https://blitzmetrics.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.

## When this runs

Run once for a new post or a scoped label correction. Refresh when the site’s accepted taxonomy changes; no recurring relabeling job is assumed.

## First-run setup and continuity

Use the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.

Keep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.

Keep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.

## Write up the real run

For each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.

Keep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.


<!-- factory-layer:start -->

## Factory chain (do not treat this as isolated)

- **Phase:** Post
- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)
- **Suggested previous station:** `set-wordpress-author-to-correct-person`
- **Suggested next station:** `step-14a-configure-rankmath-seo-plugin`
These stations are generated neighbors, not verified prerequisites or handoffs. Follow the task’s actual Inputs and Handoff sections.
- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.

## Model routing (same factory, any engine)

- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.
- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.
- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.
- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.

<!-- factory-layer:end -->
## Definitive article & links

- Canonical article: https://localservicespotlight.com/article-guidelines/
- Exact Task Library record: [Step 13: Categorize post and add tags](https://local-service-spotlight.github.io/task-library/?task=step-13-categorize-post-and-add-tags#task-step-13-categorize-post-and-add-tags)
- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)
- [WordPress post/page settings](https://wordpress.org/documentation/article/page-post-settings-sidebar/)
- [WordPress category behavior](https://wordpress.org/documentation/article/posts-categories-screen/)
- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)

## Review and evidence still needed

The original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.
- The live taxonomy, permalink policy and content-type support must be checked for the actual site.