footer-configuration
Configure footer navigation links for SEO completeness. Sets up all pages (Homepage, Services, About, Contact, Impressum, Datenschutz) in organized groups. Dynamically finds footer*.tsx component. Updates i18n with all footer keys.
When & Why to Use This Skill
This Claude skill automates the creation and configuration of website footers to maximize SEO completeness and site crawlability. It dynamically organizes navigation, services, legal, and social links while ensuring full i18n translation support and technical compliance with modern web standards like Next.js and Tailwind CSS.
Use Cases
- SEO Optimization: Automatically building a comprehensive internal linking structure in the footer to improve search engine indexing and page authority distribution.
- Legal Compliance: Ensuring mandatory pages like Impressum (Legal Notice) and Datenschutz (Privacy Policy) are correctly linked and organized for DACH region compliance.
- Multi-language Synchronization: Streamlining the update of i18n translation files (e.g., de.json, en.json) whenever footer navigation or contact details change.
- Frontend Standardization: Applying consistent styling and accessible navigation patterns across web projects by dynamically identifying and updating footer components.
| name | footer-configuration |
|---|---|
| description | Configure footer navigation links for SEO completeness. Sets up all pages (Homepage, Services, About, Contact, Impressum, Datenschutz) in organized groups. Dynamically finds footer*.tsx component. Updates i18n with all footer keys. |
Footer Configuration
Configure footer links to include ALL pages for complete SEO coverage.
Workflow
- Find Footer Component - Glob for
website/components/footer*.tsx - Read Sitemap - Get all pages from
docs/sitemap.md - Organize Links - Group into Navigation, Services, Legal, Social
- Update Component - Apply link structure to footer component
- Add Contact Info - Phone, email, address
- Configure Branding - Logo/name and copyright
- Update i18n - Add all keys to de.json and en.json
Link Groups
Navigation Group
Main pages that should always be linked:
const navigation = [
{ name: t("navigation.home"), href: "/" },
{ name: t("navigation.services"), href: "/dienstleistungen" },
{ name: t("navigation.about"), href: "/ueber-uns" },
{ name: t("navigation.contact"), href: "/kontakt" },
];
Services Group (Optional)
If services page has subsections:
const services = [
{ name: t("services.hair"), href: "/dienstleistungen#haare" },
{ name: t("services.nails"), href: "/dienstleistungen#naegel" },
{ name: t("services.facials"), href: "/dienstleistungen#gesicht" },
];
Legal Group
Required legal pages for Swiss/German compliance:
const legal = [
{ name: t("legal.privacy"), href: "/datenschutz" },
{ name: t("legal.imprint"), href: "/impressum" },
];
Social Group
External social media links:
const social = [
{ name: t("social.instagram"), href: "https://instagram.com/salonname", icon: Instagram },
{ name: t("social.facebook"), href: "https://facebook.com/salonname", icon: Facebook },
];
Contact Information
Add contact details section:
const contact = {
phone: "+41 44 XXX XX XX",
email: "info@salon-elegance.ch",
address: {
street: "Musterstrasse 123",
city: "8001 Zürich",
country: "Schweiz",
},
};
Using Next.js Link
Replace <a> with Next.js <Link> for internal navigation:
import Link from "next/link";
// Internal links
<Link href={item.href}>{item.name}</Link>
// External links (social media)
<a
href={item.href}
target="_blank"
rel="noopener noreferrer"
>
{item.name}
</a>
List Styling
Footer lists must NOT have bullet points. Always add list-none p-0:
<ul className="list-none space-y-3 p-0">
{links.map((link) => (
<li key={link.text}>
<Link href={link.url} className="text-sm text-foreground/70 hover:text-foreground transition-colors">
{link.text}
</Link>
</li>
))}
</ul>
Link Colors
Use text-foreground or opacity variants, NOT text-primary:
text-foreground/70- muted linkshover:text-foreground- hover state (full opacity)text-foreground/60- subtle text like copyright
Do NOT use:
text-primary(reserved for CTA buttons, not navigation)hover:underline(no underlines)
SEO Importance
All pages MUST be linked in footer for:
- Crawlability - Search engines find all pages
- Internal Linking - Distributes page authority
- User Navigation - Users expect footer navigation
- Accessibility - Alternative to main navigation
Required Pages
| Page | Route | Group |
|---|---|---|
| Homepage | / |
Navigation |
| Services | /dienstleistungen |
Navigation |
| About | /ueber-uns |
Navigation |
| Contact | /kontakt |
Navigation |
| Privacy Policy | /datenschutz |
Legal |
| Imprint | /impressum |
Legal |
Branding Section
Business Name
<p className="font-serif text-4xl md:text-6xl">
{t("brand")}
</p>
Copyright
<p className="text-sm text-muted-foreground">
{t("copyright")}
</p>
i18n Keys
Required Keys in de.json
{
"footer": {
"brand": "Salon Elegance",
"tagline": "Ihr Salon in Zürich",
"navigation": {
"title": "Navigation",
"home": "Startseite",
"services": "Dienstleistungen",
"about": "Über uns",
"contact": "Kontakt"
},
"services": {
"title": "Dienstleistungen",
"hair": "Haare",
"nails": "Nägel",
"facials": "Gesicht"
},
"legal": {
"title": "Rechtliches",
"privacy": "Datenschutz",
"imprint": "Impressum"
},
"social": {
"title": "Social Media",
"instagram": "Instagram",
"facebook": "Facebook"
},
"contact": {
"title": "Kontakt",
"phone": "Telefon",
"email": "E-Mail",
"address": "Adresse"
},
"copyright": "© 2024 Salon Elegance Zürich. Alle Rechte vorbehalten."
}
}
Required Keys in en.json
{
"footer": {
"brand": "Salon Elegance",
"tagline": "Your salon in Zurich",
"navigation": {
"title": "Navigation",
"home": "Home",
"services": "Services",
"about": "About Us",
"contact": "Contact"
},
"services": {
"title": "Services",
"hair": "Hair",
"nails": "Nails",
"facials": "Facials"
},
"legal": {
"title": "Legal",
"privacy": "Privacy Policy",
"imprint": "Legal Notice"
},
"social": {
"title": "Social Media",
"instagram": "Instagram",
"facebook": "Facebook"
},
"contact": {
"title": "Contact",
"phone": "Phone",
"email": "Email",
"address": "Address"
},
"copyright": "© 2024 Salon Elegance Zurich. All rights reserved."
}
}
Checklist
- Found footer component (footer*.tsx)
- Homepage linked in navigation group
- Services page linked in navigation group
- About page linked in navigation group
- Contact page linked in navigation group
- Datenschutz (Privacy) in legal group
- Impressum (Imprint) in legal group
- Social media links with external attributes
- All internal links use Next.js
<Link> - Contact information displayed (phone, email, address)
- Brand name displayed
- Copyright with current year
- All footer keys in de.json
- All footer keys in en.json