Agent skill

Persian SEO

by TronIsHere in TronIsHere/vibefarsiui

Technical and on-page SEO for Persian (Farsi) websites: lang and hreflang for fa-IR, RTL-safe metadata, Persian titles and descriptions, slug and URL strategy for Persian content, ZWNJ and keyword…

MITAuto-check: warningsMarketing & SEO

Install Persian SEO

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add TronIsHere/vibefarsiui --skill persian-seo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TronIsHere/vibefarsiui persian-seo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TronIsHere/vibefarsiui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/registry/skills/persian-seo .claude/skills/persian-seo && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
persian-seo
GitHub stars
212
Token cost
~1.7k tokens
SKILL.md length
818 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Technical and on-page SEO for Persian (Farsi) websites: lang and hreflang for fa-IR, RTL-safe metadata, Persian titles and descriptions, slug and URL strategy for Persian content, ZWNJ and keyword…

  • Works in 9 steps: Document language and direction → Metadata → URLs and slugs → …
  • Writing metadata
  • SKILL.md covers 1. Document language and…, 2. Metadata, 3. URLs and slugs and 4. Structured data (JSON-LD), plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Persian SEO is an agent skill from TronIsHere/vibefarsiui. Technical and on-page SEO for Persian (Farsi) websites: lang and hreflang for fa-IR, RTL-safe metadata, Persian titles and descriptions, slug and URL strategy for Persian content, ZWNJ and keyword variants, Open Graph and JSON-LD in Persian, sitemaps, fonts and Core Web Vitals for Persian pages. Use when writing metadata, structured data, blog content or URL structure for an Iranian site, or when the user says سئو، سئوی فارسی، متادیتا، عنوان صفحه، اسلاگ، گوگل. Examples target Next.js but the rules are generic.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Marketing & SEO, covering Schema markup, Technical SEO and Web performance. It works with Next.js. The licence is MIT.

When your agent uses it

  • Writing metadata
  • Structured data
  • URL structure for an Iranian site
  • The user says سئو، سئوی فارسی، متادیتا، عنوان صفحه، اسلاگ، گوگل

Example prompts

  • “/persian-seo”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Document language and direction
  2. Metadata
  3. URLs and slugs
  4. Structured data (JSON-LD)
  5. Sitemaps, robots, indexing
  6. Keyword research in Persian
  7. Content that ranks
  8. Performance for Persian pages
  9. Checklist

What it can do on your machine

Read from SKILL.md and the folder at commit 7d56b50. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are html and typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Persian SEO loads about 1.7k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 818 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~132
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningContains zero-width charactersSKILL.md:36
    «کامپوننت⟨U+200C⟩های راست⟨U+200C⟩چین برای React · وایب⟨U+200C⟩فارسی». Keep it short; Persian
  • WarningContains zero-width charactersSKILL.md:52
    title: "کامپوننت⟨U+200C⟩های راست⟨U+200C⟩چین برای React · وایب⟨U+200C⟩فارسی",
  • WarningContains zero-width charactersSKILL.md:53
    description: "کامپوننت⟨U+200C⟩های راست⟨U+200C⟩چین رایگان برای Next.js و React با فونت و اعداد فارسی.",
  • WarningContains zero-width charactersSKILL.md:71
    «می⟨U+200C⟩شود» → `می-شود` or `mishavad`.
  • WarningContains zero-width charactersSKILL.md:102
    the correct form: with/without ZWNJ («می⟨U+200C⟩شود» / «می شود»),
  • WarningContains zero-width charactersSKILL.md:103
    rs, plural forms («کامپوننت» / «کامپوننت⟨U+200C⟩ها»), Latin and
  • WarningContains zero-width charactersSKILL.md:104
    Persian brand names («React» / «ری⟨U+200C⟩اکت»).
  • WarningContains zero-width charactersSKILL.md:124
    - Author, date («به⟨U+200C⟩روزرسانی: ۲۹ شهریور ۱۴۰۵») and a real about page build

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from TronIsHere/vibefarsiui at commit 7d56b50, republished under its MIT licence (© TronIsHere). 818 words, ~1,664 tokens.

Download SKILL.mdSave it as .claude/skills/persian-seo/SKILL.md (or your agent's skills folder).
name
persian-seo
description
Technical and on-page SEO for Persian (Farsi) websites: lang and hreflang for fa-IR, RTL-safe metadata, Persian titles and descriptions, slug and URL strategy for Persian content, ZWNJ and keyword variants, Open Graph and JSON-LD in Persian, sitemaps, fonts and Core Web Vitals for Persian pages. Use when writing metadata, structured data, blog content or URL structure for an Iranian site, or when the user says سئو، سئوی فارسی، متادیتا، عنوان صفحه، اسلاگ، گوگل. Examples target Next.js but the rules are generic.

Persian SEO (سئوی فارسی)

Search engines handle Persian well; sites do not. The usual failures are lang="en" on a Persian page, og:locale left at en_US, English-only titles, ZWNJ leaking into URLs, and machine-translated copy. Fix the mechanics first (sections 1–5), then the content (6–8).

1. Document language and direction

html
<html lang="fa" dir="rtl">
  • lang="fa" (or fa-IR) on <html>; it drives hyphenation, font selection, screen readers and language detection.
  • Mixed pages: mark Latin blocks with lang="en" on the element, not on the page.
  • hreflang: fa or fa-IR for the Persian version, x-default to the primary language. Only add hreflang when a real alternate exists.

2. Metadata

  • <title>: Persian, front-loaded with the page's subject, brand at the end: «کامپوننتهای راستچین برای React · وایبفارسی». Keep it short; Persian titles are truncated by pixel width like any other, so aim for the length of a normal sentence, not a paragraph.
  • description: one or two Persian sentences that answer the query, ~120–150 characters, no «؛» lists, no keyword stuffing.
  • og:locale is fa_IR; og:title and og:description in Persian; og:image with Persian text rendered in a Persian font (not a system fallback).
  • twitter:card summary_large_image with the same Persian text.
  • Canonical URLs are absolute and match the served URL byte-for-byte (including percent-encoding decisions from section 3).

Next.js:

ts
export const metadata = {
  title: "کامپوننتهای راستچین برای React · وایبفارسی",
  description: "کامپوننتهای راستچین رایگان برای Next.js و React با فونت و اعداد فارسی.",
  alternates: { canonical: "/components" },
  openGraph: { locale: "fa_IR", type: "website", title: "…", description: "…" },
};

3. URLs and slugs

Two valid strategies; pick one per site and never mix:

StrategyExampleProsCons
Persian slug/blog/راهنمای-تقویم-شمسیreadable in results, matches query textpercent-encoded when shared (%D8%B1…), longer
Transliterated Latin slug/blog/rahnama-taghvim-shamsistable, short, safe everywherenot readable to the user in Persian

Rules for both:

  • Never put ZWNJ (U+200C) in a URL. Replace it with a hyphen when slugifying: «میشود» → می-شود or mishavad.
  • Normalize Arabic ي/ك to Persian ی/ک before slugifying so two spellings do not create two URLs.
  • Latin digits in URLs, always.
  • Hyphens, not underscores; no trailing slashes inconsistency.
  • Encode once; do not double-encode %.
  • Keep slugs stable after publishing; changing the title must not change the URL. Redirect (301) if it must.

4. Structured data (JSON-LD)

  • Every object gets "inLanguage": "fa-IR".
  • Dates in JSON-LD are ISO 8601 Gregorian (2026-09-20) even when the page shows «۲۹ شهریور ۱۴۰۵».
  • Prices use priceCurrency: "IRR" with the numeric value in rial, or state toman explicitly in text; do not put «تومان» in a numeric field.
  • BreadcrumbList names in Persian, matching the visible breadcrumb.
  • FAQPage questions and answers in the same register as the page.
  • Organization name Persian with alternateName for the Latin brand.

5. Sitemaps, robots, indexing

  • Sitemap URLs must be the canonical form (encoded the same way as served).
  • robots.txt allows the Persian font files and CSS; blocking /fonts breaks rendering in the crawler screenshot.
  • Paginated listings: real links to next pages, not only infinite scroll.
  • Avoid a separate "mobile site"; one responsive RTL page.
Show full SKILL.md (365 more words)Show less

6. Keyword research in Persian

  • Users search in several spellings of the same phrase. Treat these as one keyword and write the correct form: with/without ZWNJ («میشود» / «می شود»), Persian/Arabic letters, plural forms («کامپوننت» / «کامپوننتها»), Latin and Persian brand names («React» / «ریاکت»).
  • Do not stuff variants into the copy; search engines normalize most of them. One correct spelling in the title and headings is enough.
  • Common intent modifiers: «قیمت»، «خرید»، «آموزش»، «رایگان»، «دانلود»، «بهترین»، «چیست». Match the page to the intent, not the word.
  • English technical terms are searched in English («Next.js», «Tailwind»); keep them Latin in titles.
  • Persian numbers in queries are usually Latin; in the title use Persian digits for readability, the URL keeps Latin.

7. Content that ranks

  • Write in the register of the reader (see persian-formal and persian-conversational). Machine-translated English structure («در دنیای امروز…») is easy to spot and does not hold readers.
  • Answer the query in the first paragraph; do not bury it after a history lesson.
  • Headings (h2/h3) are questions or claims in Persian; the h1 matches the title's subject.
  • Internal links use descriptive Persian anchor text, not «اینجا کلیک کنید».
  • Author, date («بهروزرسانی: ۲۹ شهریور ۱۴۰۵») and a real about page build trust; do not invent author names or credentials.
  • Images: alt in Persian, filenames Latin, WebP/AVIF, width and height set.

8. Performance for Persian pages

  • Fonts are the biggest cost. Subset to Arabic script plus Latin, preload the regular weight, font-display: swap, self-host if the user's audience has unreliable access to external CDNs.
  • Avoid layout shift from font fallback: set size-adjust or use a metric- compatible fallback; Persian fallback fonts differ wildly in x-height.
  • Do not lazy-load the hero text font; do lazy-load decorative ones.
  • Test on slow mobile; a large share of Iranian traffic is Android over mobile networks.

9. Checklist

  1. lang="fa" dir="rtl", og:locale fa_IR.
  2. Persian title and description, subject first, brand last.
  3. One slug strategy, no ZWNJ in URLs, Latin digits, stable after publish.
  4. JSON-LD with inLanguage, ISO dates, numeric prices.
  5. Canonical and sitemap URLs identical to served URLs.
  6. Copy written in Persian for the reader, not translated; answer first.
  7. Fonts subset and preloaded; no font-triggered layout shift.

© TronIsHere, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. 13 hidden characters (zero-width or bidirectional) removed. Raw file

Files

Just SKILL.md in registry/skills/persian-seo of TronIsHere/vibefarsiui.

Open the folder on GitHubat commit 7d56b50

Compare with similar skills

Persian SEO next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Persian SEO compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Persian SEO this skillTronIsHere/vibefarsiui212—~1.7kAutomated safety check: WarnMIT
SEO Geoericrisco/rsc-harness180—~2.8kAutomated safety check: PassMIT
SEOgridaco/grida2.7k—~2.1kAutomated safety check: PassApache-2.0
SEO Validatesoftspark/ai-toolkit179—~3.9kAutomated safety check: NotesApache-2.0
SEO Auditjosstei/maestro-orchestrate465—~218Automated safety check: PassApache-2.0
SEO Audittextura-agency/next16-claude-starter133—~2.2kAutomated safety check: NotesUnlicense

Similar skills

  • SEO Geo

    ericrisco/rsc-harness

    A skill your agent uses when one existing page needs to rank in Google AND get cited by AI answer engines — auditing a URL for on-page SEO, structured-data JSON-LD, GEO citation levers, Core Web…

    180 GitHub stars~2.8k tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • SEO

    gridaco/grida

    SEO best practices for the Grida project across Next.js pages, blog posts, and documentation.

    2.7k GitHub stars~2.1k tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • SEO Validate

    softspark/ai-toolkit

    SEO validator: meta/OG, Schema.org, hreflang, Core Web Vitals, crawlability.

    179 GitHub stars~3.9k tokensUpdated 2 days ago
    Marketing & SEOAuto-check: notes
  • SEO Audit

    josstei/maestro-orchestrate

    Run a Maestro-style SEO assessment for meta tags, structured data, crawlability, and Core Web Vitals

    465 GitHub stars~218 tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed
  • SEO Audit

    textura-agency/next16-claude-starter

    Audit a page or the whole site for technical and on-page SEO — crawlability, metadata, heading outline, structured data, internal linking, Core Web Vitals, and the animation-specific crawlability…

    133 GitHub stars~2.2k tokensUpdated 3 days ago
    Marketing & SEOAuto-check: notes
  • Product Page SEO

    adobe/skills

    Optimize AEM Edge Delivery Services commerce product pages for search engine crawling and indexing.

    197 GitHub stars~2.8k tokensUpdated today
    Marketing & SEOAuto-check passed

More from TronIsHere/vibefarsiui

  • Iran Validation

    TronIsHere/vibefarsiui

    Validate and format Iranian identifiers correctly: national ID (کد ملی) checksum, mobile numbers (۰۹…), landlines with area codes, IBAN / Sheba (شبا) mod-97, bank card numbers with Luhn and…

    212 GitHub stars~1.8k tokensUpdated today
    Auto-check: warnings
  • Jalali Calendar

    TronIsHere/vibefarsiui

    Handle dates and times for Iranian users: the Jalali / Solar Hijri calendar (تقویم شمسی، هجری خورشیدی), Saturday-first weeks, Tehran time (+03:30, no DST), Persian month and weekday names…

    212 GitHub stars~1.6k tokensUpdated today
    Auto-check: warnings
  • Persian Formal

    TronIsHere/vibefarsiui

    Write formal Persian that still sounds human: proposals, contracts, invoices, official letters (نامه اداری), formal email, company website copy, terms and policies.

    212 GitHub stars~1.7k tokensUpdated today
    Auto-check: warnings
  • Persian Conversational

    TronIsHere/vibefarsiui

    Write colloquial written Persian (محاورهنویسی): the Farsi people actually type in chat, Instagram captions, Telegram posts, consumer-app onboarding and friendly support replies.

    212 GitHub stars~1.5k tokensUpdated today
    Auto-check: warnings
  • Persian Rtl UI

    TronIsHere/vibefarsiui

    Build right-to-left Persian (Farsi) UI in React and Tailwind the way an Iranian product team would: logical CSS only, Persian fonts without letter-spacing, Persian digits and «تومان», Jalali dates…

    212 GitHub stars~1.7k tokensUpdated today
    Auto-check: warnings
  • Persian UI Copy

    TronIsHere/vibefarsiui

    Write Persian (Farsi) UI microcopy: button labels, field labels and placeholders, validation and error messages, empty states, loading and success toasts, confirmations, notifications.

    212 GitHub stars~1.6k tokensUpdated today
    Auto-check: warnings

Works with

Categories

Questions about Persian SEO

What does Persian SEO do?

Technical and on-page SEO for Persian (Farsi) websites: lang and hreflang for fa-IR, RTL-safe metadata, Persian titles and descriptions, slug and URL strategy for Persian content, ZWNJ and keyword…. Persian SEO is an agent skill from TronIsHere/vibefarsiui. Technical and on-page SEO for Persian (Farsi) websites: lang and hreflang for fa-IR, RTL-safe metadata, Persian titles and descriptions, slug and URL strategy for Persian content, ZWNJ and keyword variants, Open Graph and JSON-LD in Persian, sitemaps, fonts and Core Web Vitals for Persian pages.

When should I use Persian SEO?

Persian SEO fits situations like: writing metadata; structured data; URL structure for an Iranian site; the user says سئو، سئوی فارسی، متادیتا، عنوان صفحه، اسلاگ، گوگل.

How do I install Persian SEO in Claude Code?

Run `npx skills add TronIsHere/vibefarsiui --skill persian-seo -a claude-code`. Or copy the skill folder (registry/skills/persian-seo in TronIsHere/vibefarsiui) into .claude/skills/persian-seo in your project. Claude Code loads it when a task matches its description.

How do I install Persian SEO in Codex?

Run `npx skills add TronIsHere/vibefarsiui --skill persian-seo -a codex`. Or copy the skill folder (registry/skills/persian-seo in TronIsHere/vibefarsiui) into .agents/skills/persian-seo in your project. Codex loads it when a task matches its description.

Can I use Persian SEO in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TronIsHere/vibefarsiui --skill persian-seo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/persian-seo, .gemini/skills/persian-seo, .github/skills/persian-seo and .opencode/skills/persian-seo in your project.

What does Persian SEO need to run?

SKILL.md names no scripts, command-line tools or credentials: Persian SEO is instructions for the agent only.

Does Persian SEO access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Persian SEO safe to install?

Our automated static check of SKILL.md flagged 8 warning(s): contains zero-width characters. Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Persian SEO use?

Persian SEO is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Persian SEO use?

About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Persian SEO?

Skills that share tags, products or a category with Persian SEO: SEO Geo (ericrisco/rsc-harness, 180 stars), SEO (gridaco/grida, 2.7k stars), SEO Validate (softspark/ai-toolkit, 179 stars) and SEO Audit (josstei/maestro-orchestrate, 465 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Persian SEO?

TronIsHere (a GitHub user) maintains it in TronIsHere/vibefarsiui, which has 212 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 10, 2026.

Source: TronIsHere/vibefarsiui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.