Information Architecture SEO
Use this skill after semantic-core-architect and before internal linking, schema, or LLM-readable layers.
Read references/url-architecture.md before producing a full URL map.
Owns
- URL strategy;
- page taxonomy;
- page roles and content ownership;
- canonical model;
- hreflang groups;
- index/noindex policy;
- pillar/topic/news/article/blog/project role separation;
- duplicate-content prevention.
Does Not Own
- semantic core creation;
- final page copy;
- internal link graph details;
- JSON-LD implementation;
- rendered UI design;
- external backlinks.
Workflow
- Read the semantic core, entity-topic map, site constraints, languages, and content model.
- Identify the canonical page role for each cluster/entity/topic.
- Define route patterns before individual URLs.
- Set canonical policy per page role.
- Define hreflang groups for localized equivalents.
- Mark page status:
planned, draft, published, noindex, or deferred.
- Record duplicate-content risks and ownership boundaries.
- Produce
url-map.yaml using assets/url-map.template.yaml.
- Hand off to
internal-link-graph-architect and technical-seo-schema-engineer.
Canonical Rules
- A page can be self-canonical when it has a distinct user/search role and visible content.
- A short news brief and one expanded longform article can both be self-canonical when the brief is the fast news surface and the longform is the durable explanation surface.
- Do not canonicalize a standalone brief to its longform by default.
- Do not create extra public story variants beyond the declared model.
- Topic and pillar pages must summarize and organize; they must not duplicate article bodies.
- Locale alternates use
hreflang; they do not replace canonical self-reference.
Multilingual Rules
- Default language owns
x-default unless the site has a separate language selector page.
- Every localized page must declare its own canonical URL.
- Hreflang groups must contain only true equivalents, not loosely related pages.
- If translation quality is unknown, mark the localized page as
draft or deferred, not published.
Safety And Privacy Boundaries
- Do not expose admin, API, private dashboards, raw analytics, raw IP logs, secret files, or staging URLs as public indexable pages.
- Use
noindex or blocked internal routing for low-value utility pages; do not rely on public navigation hiding.
- Do not weaken authentication, access control, or security headers for crawlability.
- Do not place private source URLs, credentials, tokens, unpublished drafts, or internal notes in
url-map.yaml, sitemap plans, or public LLM-facing artifacts.
Validation
Before marking work complete:
- every page has URL, page type, locale, canonical, index policy, and rationale;
- every language alternate has a coherent hreflang group;
- every story has at most one brief and one longform per language;
- topic pages do not duplicate article bodies;
- final link graph details are left for
internal-link-graph-architect;
- schema implementation is left for
technical-seo-schema-engineer.
Validate skill edits with:
python3 $CODEX_HOME/skills/senior-skill-architect/scripts/lint_production_skill.py $HOME/SKILL/skills/information-architecture-seo
python3 $HOME/SKILL/plans/seo-llm-skill-cluster/scripts/lint_skill_cluster.py $HOME/SKILL
Forward tests live in evals.json.
Output Shape
Return:
- URL strategy summary.
- Page role table.
- Canonical and hreflang policy.
- Duplicate-content risks.
- Handoff notes for internal linking and technical SEO/schema.
1---2name: information-architecture-seo3description: Convert a semantic core into crawlable SEO and LLM-friendly information architecture. Use this skill when the user asks for URL structure, page taxonomy, canonical rules, hreflang groups, page roles, pillar/topic/news/article/blog/project separation, multilingual route strategy, or a durable content model such as one short brief plus one longform article. It prevents duplicate public content bodies and hands link-graph work to internal-link-graph-architect.4---56# Information Architecture SEO78Use this skill after `semantic-core-architect` and before internal linking, schema, or LLM-readable layers.910Read [references/url-architecture.md](references/url-architecture.md) before producing a full URL map.1112## Owns1314- URL strategy;15- page taxonomy;16- page roles and content ownership;17- canonical model;18- hreflang groups;19- index/noindex policy;20- pillar/topic/news/article/blog/project role separation;21- duplicate-content prevention.2223## Does Not Own2425- semantic core creation;26- final page copy;27- internal link graph details;28- JSON-LD implementation;29- rendered UI design;30- external backlinks.3132## Workflow33341. Read the semantic core, entity-topic map, site constraints, languages, and content model.352. Identify the canonical page role for each cluster/entity/topic.363. Define route patterns before individual URLs.374. Set canonical policy per page role.385. Define hreflang groups for localized equivalents.396. Mark page status: `planned`, `draft`, `published`, `noindex`, or `deferred`.407. Record duplicate-content risks and ownership boundaries.418. Produce `url-map.yaml` using [assets/url-map.template.yaml](assets/url-map.template.yaml).429. Hand off to `internal-link-graph-architect` and `technical-seo-schema-engineer`.4344## Canonical Rules4546- A page can be self-canonical when it has a distinct user/search role and visible content.47- A short news brief and one expanded longform article can both be self-canonical when the brief is the fast news surface and the longform is the durable explanation surface.48- Do not canonicalize a standalone brief to its longform by default.49- Do not create extra public story variants beyond the declared model.50- Topic and pillar pages must summarize and organize; they must not duplicate article bodies.51- Locale alternates use `hreflang`; they do not replace canonical self-reference.5253## Multilingual Rules5455- Default language owns `x-default` unless the site has a separate language selector page.56- Every localized page must declare its own canonical URL.57- Hreflang groups must contain only true equivalents, not loosely related pages.58- If translation quality is unknown, mark the localized page as `draft` or `deferred`, not published.5960## Safety And Privacy Boundaries6162- Do not expose admin, API, private dashboards, raw analytics, raw IP logs, secret files, or staging URLs as public indexable pages.63- Use `noindex` or blocked internal routing for low-value utility pages; do not rely on public navigation hiding.64- Do not weaken authentication, access control, or security headers for crawlability.65- Do not place private source URLs, credentials, tokens, unpublished drafts, or internal notes in `url-map.yaml`, sitemap plans, or public LLM-facing artifacts.6667## Validation6869Before marking work complete:7071- every page has URL, page type, locale, canonical, index policy, and rationale;72- every language alternate has a coherent hreflang group;73- every story has at most one brief and one longform per language;74- topic pages do not duplicate article bodies;75- final link graph details are left for `internal-link-graph-architect`;76- schema implementation is left for `technical-seo-schema-engineer`.7778Validate skill edits with:7980```bash81python3 $CODEX_HOME/skills/senior-skill-architect/scripts/lint_production_skill.py $HOME/SKILL/skills/information-architecture-seo82python3 $HOME/SKILL/plans/seo-llm-skill-cluster/scripts/lint_skill_cluster.py $HOME/SKILL83```8485Forward tests live in [evals.json](evals.json).8687## Output Shape8889Return:90911. URL strategy summary.922. Page role table.933. Canonical and hreflang policy.944. Duplicate-content risks.955. Handoff notes for internal linking and technical SEO/schema.