page-metadata

When the user wants to optimize meta tags other than title, description, Open Graph, or Twitter Cards. Also use when the user mentions "hreflang," "meta…

INSTALLATION
npx skills add https://github.com/kostja94/marketing-skills --skill page-metadata
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$28

Identify:

  • Multi-language: zh, en, x-default if applicable
  • Indexing: Full index, noindex for specific pages
  • Tech stack: Next.js, HTML, etc.

hreflang (Multi-language)

Three non-negotiables: (1) Self-referencing tags (each page links to itself), (2) Symmetric annotations (every version lists ALL others), (3) Valid ISO 639-1 or language-region codes (en, en-US, zh-CN).

Implementation methods: HTML <link> in head, XML sitemap (xhtml:link), or HTTP headers. For SPAs/JS-rendered pages, use sitemap-based hreflang as backup. See rendering-strategies for SSR/SSG/CSR.

Canonical alignment: Canonical URL must match the same regional version hreflang refers to. Misalignment causes Google to ignore hreflang.

x-default: Fallback for users whose language/location doesn't match any version. Point to default locale or language-selector page.

Next.js (App Router)

export const metadata = {

  alternates: {

    languages: {

      'en-US': '/en/page',

      'zh-CN': '/zh/page',

      'x-default': '/en/page',

    },

  },

};

HTML (generic)

<link rel="alternate" hreflang="en" href="https://example.com/en/page" />

<link rel="alternate" hreflang="zh" href="https://example.com/zh/page" />

<link rel="alternate" hreflang="x-default" href="https://example.com/en/page" />

Common Mistakes (Avoid)

  • Missing reciprocal references between language versions.
  • Canonical tag conflicting with hreflang.
  • Relying solely on machine translation without localization (see translation).
  • Ignoring mobile—hreflang must appear on both desktop and mobile.
  • Forgetting to update hreflang when page structure changes.

Meta Robots (Page-level)

Page-level control for indexing and link following. See indexing for which page types typically need noindex.

Directive

Effect

noindex

Exclude page from search results

nofollow

Do not pass link equity through links on the page; does NOT prevent indexing

noindex,follow

Exclude from SERP; allow crawlers to follow links (most common for thank-you, signup, legal)

noindex,nofollow

Exclude + block link flow (login, staging, test pages)

Crawl vs index vs link equity: robots.txt = crawl control; noindex = index control; nofollow = link equity only. See robots-txt, indexing.

<meta name="robots" content="noindex, follow">

Next.js: metadata.robots = { index: false, follow: true }. Default is index: true, follow: true.

Viewport

<meta name="viewport" content="width=device-width, initial-scale=1">

Required for mobile-friendly pages; affects Core Web Vitals and mobile search. For full mobile-first indexing and mobile usability requirements, see mobile-friendly.

Charset

<meta charset="UTF-8">

Place in <head>; first child of <head> recommended.

Output Format

  • hreflang setup if multi-language
  • Meta robots if noindex needed
  • Viewport / charset if missing

Related Skills

  • title-tag, meta-description: Title and meta description
  • open-graph, twitter-cards: Social sharing; link previews
  • canonical-tag: Canonical + hreflang for multi-language
  • indexing: noindex page-type list; noindex vs nofollow
  • robots-txt: Crawl vs index; robots.txt vs noindex
  • mobile-friendly: Mobile-first indexing; viewport required
  • rendering-strategies: SSR, SSG, CSR; SPAs need sitemap-based hreflang
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card