| name | sitelinks |
| description | Generate Google Ads sitelink extensions. Use when the user asks to create, write, or generate sitelinks, ad extensions, or site links for a Google Ads campaign. |
| allowed-tools | Read, Write, Bash |
/sitelinks — Generate Google Ads Sitelink Extensions
Sitelink Specifications (Google Ads Requirements)
| Element | Max Characters | Required |
|---|
| Sitelink title | 25 | Yes |
| Description 1 | 35 | No (but strongly recommended) |
| Description 2 | 35 | No (but strongly recommended) |
| Final URL | 2048 | Yes |
- Minimum: 2 sitelinks per campaign (Google recommendation: 4–8)
- Maximum: 20 sitelinks per campaign (Google rotates and tests)
- Sitelinks can be set at account, campaign, or ad group level
- Each sitelink must point to a different page than the ad's Final URL
- Each sitelink must point to a different page than other sitelinks (no duplicate URLs)
Input Required
Ask the user for the following (skip any already provided):
- Campaign / Ad group — where to apply sitelinks
- Landing page registry key or ad group context — to understand what pages are available
(load
.claude/skills/landing-pages/SKILL.md to see registered URLs)
- Language — EN / DE / FR / ES / AR / PL (default: infer from campaign)
- Number of sitelinks — default: 8 (gives Google more options to rotate)
- Scope — campaign-level (shared across ad groups) or ad-group-level (specific)
- Current sitelinks (optional) — if refreshing existing ones
Execution Steps
Step 1: Analyze Available Pages
- Load landing pages registry from
.claude/skills/landing-pages/SKILL.md
- Identify pages that would make good sitelinks (pricing, features, demo, case studies, etc.)
- Load brand voice from
.claude/skills/brand-voice/SKILL.md
- Load ICP from
.claude/skills/icp/SKILL.md to align sitelinks with buyer journey
- Load cached page analyses where available
Step 2: Map Sitelinks to Buyer Journey
Aim for a mix that covers the funnel:
| Journey Stage | Sitelink Example | Typical Page |
|---|
| Awareness | "How It Works" | /features |
| Consideration | "Customer Stories" | /case-studies |
| Consideration | "Compare Plans" | /pricing |
| Decision | "Start Free Trial" | /signup |
| Decision | "Book a Demo" | /demo |
| Support | "Help Center" | /support |
| Trust | "About Us" | /about |
| Specifics | "[Feature Name]" | /features/[name] |
Don't just list pages — each sitelink title should be a compelling micro-CTA.
Step 3: Generate Sitelinks
For each sitelink, create:
- Title (≤25 chars) — action-oriented, specific, no generic filler
- Description 1 (≤35 chars) — expand on the title's promise
- Description 2 (≤35 chars) — add a proof point or secondary benefit
- Final URL — resolve from landing pages registry (language-aware)
Output format:
Sitelink 1:
[XX ch] Title: "See Pricing & Plans"
[XX ch] Desc 1: "Transparent plans from $99/mo"
[XX ch] Desc 2: "No hidden fees. Cancel anytime."
URL: https://example.com/pricing
Step 4: Validate
- All titles ≤25 chars
- All descriptions ≤35 chars each
- No duplicate URLs across sitelinks
- No sitelink URL matches the ad's main Final URL
- Each sitelink points to a distinct, relevant page
- Titles are unique — no two say the same thing
Step 5: Export CSV
Save to output/sitelinks_[campaign]_[date].csv in Google Ads Editor format.
CRITICAL: Write CSV as UTF-8 with BOM (encoding="utf-8-sig" in Python).
Campaign,Ad Group,Sitelink text,Description 1,Description 2,Final URL
If campaign-level (no ad group specified):
Campaign,Sitelink text,Description 1,Description 2,Final URL
Step 6: Present and Suggest
Show the sitelinks with character counts, then suggest:
- Which sitelinks to pin (if any should always show)
- Mobile vs. desktop considerations (mobile shows fewer — prioritize top 4)
- Seasonal rotations (e.g., "Holiday Offer" sitelink for Q4)
Quality Rules
- No generic titles — "Learn More" or "Click Here" waste the sitelink
- Unique value per sitelink — each must offer a distinct reason to click
- Descriptions matter — sitelinks with descriptions take more ad real estate
- Complement the RSA — sitelinks should cover angles the headlines don't
- CTA-oriented titles — verbs outperform nouns ("See Plans" > "Pricing Page")
- Brand consistency — tone must match brand voice
Language-Specific Tips
English (EN)
- Shortest titles — plenty of room in 25 chars
- CTA conventions: "Get", "See", "Try", "Compare", "Read"
German (DE)
- Compound nouns are a challenge even at 25 chars
- "Preise vergleichen" (18 ch) > "Preisvergleich ansehen" (22 ch)
- CTA conventions: "Jetzt", "Mehr erfahren", "Ansehen"
French (FR)
- Articles consume chars: "Voir les tarifs" (15 ch)
- CTA conventions: "Découvrir", "Voir", "Essayer"
Spanish (ES)
- "Ver precios" (11 ch), "Probar gratis" (13 ch)
- Avoid ¿/¡ in titles to save characters
Arabic (AR)
- RTL — sitelink titles render right-to-left automatically
- "اكتشف الأسعار" (14 ch), "جرّب مجاناً" (10 ch)
- Keep Latin brand names as-is within Arabic titles
Polish (PL)
- Verb-first works well: "Sprawdź cennik" (15 ch), "Zobacz demo" (11 ch)
- Diacritics = 1 char each
Multilingual Sitelinks
When generating sitelinks for multiple languages (used with /ads-multi):
- Resolve each sitelink URL per language from the landing pages registry
- Same sitelink structure across languages but native copy (not translations)
- Flag any sitelinks where the target page doesn't exist in a given language