Skip to main content

multilingual-seo

When the user wants to publish pages in more than one language, decide which languages to add, or fix how translated pages are indexed. Also use when the user says "translate this page", "multilingual SEO", "international SEO", "localize the blog", "hreflang", "x-default", "Chinese version", "/zh...

Install this skill

or
79/100

Security score

The multilingual-seo skill was audited on Nov 11, 2026 and we found 7 security issues across 2 threat categories, including 1 high-severity. Review the findings below before installing.

Categories Tested

Security Issues

low line 85

Command substitution pattern

SourceSKILL.md
83BASE=http://localhost:3000; P=/blog/claude-code-kanban; LOCALES=(zh zh-tw ja ko es pt-br fr de)
84for l in "${LOCALES[@]}"; do # status, lang, hreflang count, canonical, title width
85 u="$BASE/$l$P"; h=$(curl -s "$u")
86 printf '%s %-6s lang=%s hreflang=%s canonical=%s\n' "$(curl -s -o /dev/null -w '%{http_code}' "$u")" "$l" \
87 "$(grep -oE '<html[^>]* lang="[^"]*"' <<<"$h" | sed -E 's/.*lang="([^"]*)".*/\1/')" \
low line 86

Command substitution pattern

SourceSKILL.md
84for l in "${LOCALES[@]}"; do # status, lang, hreflang count, canonical, title width
85 u="$BASE/$l$P"; h=$(curl -s "$u")
86 printf '%s %-6s lang=%s hreflang=%s canonical=%s\n' "$(curl -s -o /dev/null -w '%{http_code}' "$u")" "$l" \
87 "$(grep -oE '<html[^>]* lang="[^"]*"' <<<"$h" | sed -E 's/.*lang="([^"]*)".*/\1/')" \
88 "$(grep -ioE '<link[^>]*hreflang="[^"]*"' <<<"$h" | wc -l | tr -d ' ')" \
low line 87

Command substitution pattern

SourceSKILL.md
85 u="$BASE/$l$P"; h=$(curl -s "$u")
86 printf '%s %-6s lang=%s hreflang=%s canonical=%s\n' "$(curl -s -o /dev/null -w '%{http_code}' "$u")" "$l" \
87 "$(grep -oE '<html[^>]* lang="[^"]*"' <<<"$h" | sed -E 's/.*lang="([^"]*)".*/\1/')" \
88 "$(grep -ioE '<link[^>]*hreflang="[^"]*"' <<<"$h" | wc -l | tr -d ' ')" \
89 "$(grep -oE '<link rel="canonical" href="[^"]*"' <<<"$h" | cut -d'"' -f4)"
low line 88

Command substitution pattern

SourceSKILL.md
86 printf '%s %-6s lang=%s hreflang=%s canonical=%s\n' "$(curl -s -o /dev/null -w '%{http_code}' "$u")" "$l" \
87 "$(grep -oE '<html[^>]* lang="[^"]*"' <<<"$h" | sed -E 's/.*lang="([^"]*)".*/\1/')" \
88 "$(grep -ioE '<link[^>]*hreflang="[^"]*"' <<<"$h" | wc -l | tr -d ' ')" \
89 "$(grep -oE '<link rel="canonical" href="[^"]*"' <<<"$h" | cut -d'"' -f4)"
90 sed -n 's:.*<title>\(.*\)</title>.*:\1:p' <<<"$h" | python3 -c 'import sys,html,unicodedata as u
low line 89

Command substitution pattern

SourceSKILL.md
87 "$(grep -oE '<html[^>]* lang="[^"]*"' <<<"$h" | sed -E 's/.*lang="([^"]*)".*/\1/')" \
88 "$(grep -ioE '<link[^>]*hreflang="[^"]*"' <<<"$h" | wc -l | tr -d ' ')" \
89 "$(grep -oE '<link rel="canonical" href="[^"]*"' <<<"$h" | cut -d'"' -f4)"
90 sed -n 's:.*<title>\(.*\)</title>.*:\1:p' <<<"$h" | python3 -c 'import sys,html,unicodedata as u
91t=html.unescape(sys.stdin.read().strip()); print(" title", sum(2 if u.east_asian_width(c) in "WF" else 1 for c in t), t)'
low line 100

Command substitution pattern

SourceSKILL.md
98nums() { text "$1" | grep -oE '[0-9]+([.,][0-9]+)*' | sort | uniq -c; }
99for l in "${LOCALES[@]}"; do
100 echo "== $l: $(text "$BASE/$l$P" | grep -oiwE 'the|and|with|your|you|this|that|from|which' | wc -l | tr -d ' ') English words"
101 diff <(nums "$BASE$P") <(nums "$BASE/$l$P")
102done
high line 97

Curl pipe to interpreter

SourceSKILL.md
95Leftover English and changed numbers, using the visible text without code:
96```bash
97text() { curl -s "$1" | python3 -c 'import sys,re,html; s=sys.stdin.read(); m=re.search(r"(?s)<main\b.*?</main>",s); s=m.group(0) if m else s; s=re.sub(r"(?s)<(script|style|pre|code)\b.*?</\1>"," ",s); print(" ".join(html.unescape(re.sub(r"<[^>]+>"," ",s)).split()))'; }
98nums() { text "$1" | grep -oE '[0-9]+([.,][0-9]+)*' | sort | uniq -c; }
99for l in "${LOCALES[@]}"; do
Scanned on Nov 11, 2026
View Security Dashboard
Installation guide →