footer-configuration

Manuelvillarvieites's avatarfrom Manuelvillarvieites

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 Dec 14, 2025

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.
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