footer-configuration

majiayu000's avatarfrom majiayu000

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.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 5, 2026

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.
namefooter-configuration
descriptionConfigure 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

  1. Find Footer Component - Glob for website/components/footer*.tsx
  2. Read Sitemap - Get all pages from docs/sitemap.md
  3. Organize Links - Group into Navigation, Services, Legal, Social
  4. Update Component - Apply link structure to footer component
  5. Add Contact Info - Phone, email, address
  6. Configure Branding - Logo/name and copyright
  7. Update i18n - Add all keys to de.json and en.json

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" },
];

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",
  },
};

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>

Use text-foreground or opacity variants, NOT text-primary:

  • text-foreground/70 - muted links
  • hover: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:

  1. Crawlability - Search engines find all pages
  2. Internal Linking - Distributes page authority
  3. User Navigation - Users expect footer navigation
  4. 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>
<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