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 of SEO-optimized website footers to maximize search engine crawlability and internal link equity. It dynamically identifies footer components in Next.js projects, organizes links into logical groups (Navigation, Services, Legal, Social), and ensures full internationalization (i18n) support. By standardizing contact information and legal compliance links, it improves both technical SEO and user trust.
Use Cases
- Automating the setup of comprehensive footer navigation for new Next.js websites to ensure all pages are indexed by search engines.
- Ensuring legal compliance for European markets by automatically integrating 'Impressum' and 'Datenschutz' links into the footer structure.
- Synchronizing multi-language footer content by automatically updating i18n translation files (de.json, en.json) with consistent keys.
- Standardizing brand identity and contact details across web components using specific styling constraints and Next.js best practices.
| 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