Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user wants to optimize brand search for a company with multiple domains (e.g. parent company.com vs product.ai). Ensure the parent/company domain ranks first for brand queries. Also use when the user mentions "brand search," "multi-domain SEO," "company domain first," "parent vs product domain," "hub-spoke domain," "brand SERP control," or "differentiate company and product domains." For domain structure, use domain-architecture.
.claude/skills/kostja94-multi-domain-brand-seo/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 34% | 0% |
When a company has multiple domains (e.g., company.com and product.ai), ensure the company/main site ranks first for brand queries. Product sites focus on product keywords and do not compete for brand position. See domain-architecture for structure decisions; rebranding-strategy for domain change and migration.
When invoking: On first use, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On subsequent use or when the user asks to skip, go directly to the main output.
| Scenario | Description | |----------|-------------| | Multiple domains | Company main site (company.com), product site (product.ai / product.io) | | Brand query competition | Product site or third-party (Crunchbase, LinkedIn, reviews) may outrank main site for brand | | Entity confusion | Legacy brands, sub-brands, directories dilute brand perception | | Goal | Brand queries → company.com first; product.ai → product keywords only |
| Role | Domain | Responsibility | |------|--------|----------------| | Hub | company.com | Brand #1; About, Research, ecosystem, product matrix | | Spoke | product.ai | Product keywords, features, pricing; visible "by Company]" and link back to company.com |
| Dimension | Hub (company.com) | Spoke (product.ai) | |-----------|--------------------|---------------------| | Audience | Investors, partners, media, developers | Product users, prospects | | Keywords | Brand name, company name, industry | Product features, use cases | | Content | Mission, About, Research, Events, product matrix | Features, Use Cases, Pricing, Sign up | | Conversion | Contact, Waitlist, Early Access | Sign up, Try free, Pricing |
| Item | Recommendation | |------|----------------| | Title | Company full name + positioning, e.g. [Company] — [Slogan] \| AI Research & Products | | Meta Description | Company name, core business, partners; 150–160 chars | | H1 | Company name or main slogan | | URL | Canonicalize www vs non-www (301) |
| Item | Recommendation | |------|----------------| | About | Company intro, founders, founding date, positioning; link to product sites | | Products | Product matrix; each product links to its site | | Research / News | Papers, events, partnerships; increase brand mentions | | FAQ | "What is Company]?" "What is Product]?"; FAQ schema |
| Item | Recommendation | |------|----------------| | Title | Product name + product description, e.g. [Product] — [Core function] or [Product keyword] \| [Product]; avoid brand-only | | About | "A product of Company" | | Footer | "© Company]" or "A Company] Product" + link to company.com | | Schema | SoftwareApplication with author or publisher pointing to Company |
Use Organization schema with subOrganization to define product relationships:
json{ "@context": "https://schema.org", "@type": "Organization", "name": "[Company Name]", "url": "https://www.company.com", "description": "[Company description]", "sameAs": ["https://linkedin.com/company/...", "https://github.com/..."], "subOrganization": [ { "@type": "SoftwareApplication", "name": "[Product Name]", "url": "https://product.ai", "applicationCategory": "[Category]" } ] }
See entity-seo for full entity optimization. Key for multi-domain:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 20,472 | 15,228 | -26% | 1 | 1 | 0% | 3,804 | 4,188 | +10% | 0 | 0 | — |
case-02 | fail→pass | 22,700 | 18,241 | -20% | 1 | 1 | 0% | 4,099 | 4,636 | +13% | 0 | 0 | — |
case-03 | pass→pass | 19,707 | 14,511 | -26% | 1 | 1 | 0% | 2,964 | 3,545 | +20% | 0 | 0 | — |
case-04 | pass→pass | 17,629 | 14,264 | -19% | 1 | 1 | 0% | 3,167 | 3,691 | +17% | 0 | 0 | — |
case-05 | pass→pass | 9,079 | 7,973 | -12% | 1 | 1 | 0% | 1,855 | 2,741 | +48% | 0 | 0 | — |
case-06 | fail→pass | 9,163 | 10,285 | +12% | 1 | 1 | 0% | 1,576 | 3,060 | +94% | 0 | 0 | — |
case-07 | pass→pass | 10,434 | 9,708 | -7% | 1 | 1 | 0% | 1,922 | 3,119 | +62% | 0 | 0 | — |
case-08 | pass→pass | 17,396 | 15,285 | -12% | 1 | 1 | 0% | 2,729 | 3,912 | +43% | 0 | 0 | — |
case-09 | pass→fail | 9,556 | 11,288 | +18% | 1 | 1 | 0% | 1,689 | 3,162 | +87% | 0 | 0 | — |
case-10 | pass→pass | 8,276 | 7,305 | -12% | 1 | 1 | 0% | 1,398 | 2,323 | +66% | 0 | 0 | — |
case-11 | pass→pass | 10,854 | 8,978 | -17% | 1 | 1 | 0% | 1,751 | 2,744 | +57% | 0 | 0 | — |
case-12 | pass→pass | 12,172 | 10,964 | -10% | 1 | 1 | 0% | 1,829 | 3,073 | +68% | 0 | 0 | — |
case-13 | fail→pass | 14,774 | 10,460 | -29% | 1 | 1 | 0% | 2,678 | 3,222 | +20% | 0 | 0 | — |
case-14 | fail→pass | 14,242 | 11,739 | -18% | 1 | 1 | 0% | 2,561 | 3,424 | +34% | 0 | 0 | — |
case-15 | fail→pass | 15,343 | 11,606 | -24% | 1 | 1 | 0% | 2,496 | 3,084 | +24% | 0 | 0 | — |
case-16 | fail→fail | 15,095 | 10,992 | -27% | 1 | 1 | 0% | 2,717 | 3,102 | +14% | 0 | 0 | — |
case-17 | pass→pass | 17,379 | 16,088 | -7% | 1 | 1 | 0% | 2,934 | 4,068 | +39% | 0 | 0 | — |
case-18 | pass→pass | 12,486 | 12,603 | +1% | 1 | 1 | 0% | 2,318 | 3,441 | +48% | 0 | 0 | — |
case-19 | fail→pass | 15,595 | 13,456 | -14% | 1 | 1 | 0% | 2,834 | 3,380 | +19% | 0 | 0 | — |
case-20 | fail→fail | 10,769 | 13,432 | +25% | 1 | 1 | 0% | 1,802 | 3,414 | +89% | 0 | 0 | — |
case-21 | pass→pass | 11,659 | 7,631 | -35% | 1 | 1 | 0% | 1,954 | 2,555 | +31% | 0 | 0 | — |
case-22 | fail→fail | 7,283 | 7,656 | +5% | 1 | 1 | 0% | 1,231 | 2,534 | +106% | 0 | 0 | — |
case-23 | pass→pass | 14,249 | 12,786 | -10% | 1 | 1 | 0% | 2,222 | 3,360 | +51% | 0 | 0 | — |
case-24 | pass→pass | 9,793 | 8,026 | -18% | 1 | 1 | 0% | 1,533 | 2,598 | +69% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +25 percentage points is the difference between those two pass rates over the 24 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.