Agent skill

Roier SEO

by davila7 in davila7/claude-code-templates

Technical SEO auditor and fixer. An agent skill from davila7/claude-code-templates.

MITAuto-check passedFrontend & Design

Install Roier SEO

skills CLI
$ npx skills add davila7/claude-code-templates --skill roier-seo -a claude-code

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

GitHub CLI
$ gh skill install davila7/claude-code-templates roier-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/davila7/claude-code-templates.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-tool/components/skills/web-development/roier-seo .claude/skills/roier-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
roier-seo
GitHub stars
33k
Token cost
~2.7k tokens
SKILL.md length
453 words
Files
4 (incl. scripts)
Skills in repo
479
Repo updated
First seen
Licence
MIT

At a glance

Technical SEO auditor and fixer. An agent skill from davila7/claude-code-templates.

  • Works in 5 steps: Audit → Identify framework → Prioritize fixes → …
  • Tasks that involve Web performance
  • SKILL.md covers When to use this skill, Quick start, Audit categories and Technical SEO fix patterns, plus 4 more sections
  • Runs JavaScript scripts from its folder; calls node and npm; reaches schema.org and twitter.com

What it does

Roier SEO is an agent skill from davila7/claude-code-templates. Technical SEO auditor and fixer. Runs Lighthouse/PageSpeed audits on websites or local dev servers, analyzes SEO/performance/accessibility scores, and automatically implements fixes for meta tags, structured data, Core Web Vitals, and accessibility issues.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `scripts/audit-api.js`, `scripts/audit.js` and `scripts/package.json`).

It sits in Frontend & Design, covering Web performance, On-page SEO and Schema markup. The repository describes itself as: CLI tool for configuring and monitoring Claude Code. The licence is MIT.

When your agent uses it

  • Tasks that involve Web performance
  • Tasks that involve On-page SEO
  • Tasks that involve Schema markup

Example prompts

  • “/roier-seo”

Requirements

  • Node.js

Workflow steps

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

  1. Audit
  2. Identify framework
  3. Prioritize fixes
  4. Implement
  5. Re-audit

What it can do on your machine

Read from SKILL.md and the folder at commit c0ca7da. 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

    Ships 3 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • schema.org
    • twitter.com
    • linkedin.com
    • fonts.googleapis.com

    Also links to:

    • developer.chrome.com
    • pagespeed.web.dev
    • w3.org
    • web.dev

    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

Roier SEO loads about 2.7k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 453 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~2.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 passed

The automated check found no risky patterns in SKILL.md.

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); the scripts in this folder are not scanned.

SKILL.md

The full file from davila7/claude-code-templates at commit c0ca7da, republished under its MIT licence (© davila7). 453 words, ~2,737 tokens.

Download SKILL.mdSave it as .claude/skills/roier-seo/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
roier-seo
description
Technical SEO auditor and fixer. Runs Lighthouse/PageSpeed audits on websites or local dev servers, analyzes SEO/performance/accessibility scores, and automatically implements fixes for meta tags, structured data, Core Web Vitals, and accessibility issues.
version
1.0.0
author
Kemeny Studio
license
MIT
tags
SEO, Lighthouse, PageSpeed, Accessibility, Performance, Meta Tags, Structured Data, Core Web Vitals, WCAG, Next.js, React, Vue
dependencies
lighthouse, chrome-launcher

Roier SEO - Technical SEO Auditor & Fixer

AI-powered SEO optimization skill that audits websites and automatically implements fixes.

When to use this skill

Use Roier SEO when:

  • User asks to "audit my site" or "check SEO"
  • User wants to "improve performance" or "fix SEO issues"
  • User mentions "lighthouse", "pagespeed", or "core web vitals"
  • User wants to add/fix meta tags, structured data, or accessibility
  • User has a local dev server and wants SEO analysis

Key features:

  • Full Audits: Lighthouse audits on any URL (localhost or live)
  • Auto-Fix: Implements fixes directly in the codebase
  • Framework Aware: Detects Next.js, React, Vue, Nuxt, plain HTML
  • Core Web Vitals: Track FCP, LCP, TBT, CLS metrics
  • Structured Data: JSON-LD schemas for rich snippets
  • Accessibility: WCAG compliance fixes

Use alternatives instead:

  • React Best Practices: For general React performance optimization
  • Manual Lighthouse: For one-off audits without auto-fixing

Quick start

Installation

After installing the skill, install the audit dependencies:

bash
cd ~/.claude/skills/roier-seo/scripts
npm install
Running an Audit

For a live website:

bash
node ~/.claude/skills/roier-seo/scripts/audit.js https://example.com

For a local dev server (must be running):

bash
node ~/.claude/skills/roier-seo/scripts/audit.js http://localhost:3000

Output formats:

bash
# JSON output (default, for programmatic use)
node ~/.claude/skills/roier-seo/scripts/audit.js https://example.com

# Human-readable summary
node ~/.claude/skills/roier-seo/scripts/audit.js https://example.com --output=summary

# Save to file
node ~/.claude/skills/roier-seo/scripts/audit.js https://example.com --save=results.json

Audit categories

The audit returns scores (0-100) for five categories:

CategoryDescriptionWeight
PerformancePage load speed, Core Web VitalsHigh
AccessibilityWCAG compliance, screen reader supportHigh
Best PracticesSecurity, modern web standardsMedium
SEOSearch engine optimization, crawlabilityHigh
PWAProgressive Web App complianceLow

Technical SEO fix patterns

Meta tags (HTML Head)
Title tag
html
<!-- Bad -->
<title>Home</title>

<!-- Good -->
<title>Primary Keyword - Secondary Keyword | Brand Name</title>

Rules:

  • 50-60 characters max
  • Include primary keyword near the beginning
  • Unique per page
  • Include brand name at end
Meta description
html
<meta name="description" content="Compelling description with keywords. 150-160 characters that encourages clicks from search results.">

Rules:

  • 150-160 characters
  • Include primary and secondary keywords naturally
  • Compelling call-to-action
  • Unique per page
Essential meta tags
html
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<html lang="en">
Open Graph tags (social sharing)
html
<meta property="og:title" content="Page Title">
<meta property="og:description" content="Page description">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:url" content="https://example.com/page">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Brand Name">
Twitter Card tags
html
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Page Title">
<meta name="twitter:description" content="Page description">
<meta name="twitter:image" content="https://example.com/image.jpg">
Canonical URL
html
<link rel="canonical" href="https://example.com/canonical-page">
Robots meta
html
<!-- Allow indexing (default) -->
<meta name="robots" content="index, follow">

<!-- Prevent indexing (for staging, admin pages) -->
<meta name="robots" content="noindex, nofollow">
Show full SKILL.md (181 more words)Show less

Structured data (JSON-LD)

Website schema
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Site Name",
  "url": "https://example.com",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://example.com/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}
</script>
Organization schema
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Company Name",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/company",
    "https://linkedin.com/company/company"
  ]
}
</script>
BreadcrumbList schema
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com"},
    {"@type": "ListItem", "position": 2, "name": "Category", "item": "https://example.com/category"},
    {"@type": "ListItem", "position": 3, "name": "Page"}
  ]
}
</script>
Article schema (for blog posts)
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Article Title",
  "author": {"@type": "Person", "name": "Author Name"},
  "datePublished": "2024-01-15",
  "dateModified": "2024-01-20",
  "image": "https://example.com/article-image.jpg",
  "publisher": {
    "@type": "Organization",
    "name": "Publisher Name",
    "logo": {"@type": "ImageObject", "url": "https://example.com/logo.png"}
  }
}
</script>

Performance optimizations

Image optimization
html
<!-- Add width/height to prevent CLS -->
<img src="image.jpg" alt="Description" width="800" height="600">

<!-- Add lazy loading -->
<img src="image.jpg" alt="Description" loading="lazy">

<!-- Use modern formats -->
<picture>
  <source srcset="image.avif" type="image/avif">
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" alt="Description">
</picture>
Font optimization
html
<!-- Preload critical fonts -->
<link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossorigin>
css
@font-face {
  font-family: 'Custom Font';
  src: url('/fonts/custom.woff2') format('woff2');
  font-display: swap;
}
Resource hints
html
<!-- Preconnect to critical third-party origins -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://cdn.example.com">

<!-- DNS prefetch for non-critical origins -->
<link rel="dns-prefetch" href="https://analytics.example.com">

<!-- Preload critical resources -->
<link rel="preload" href="/critical.css" as="style">

Accessibility fixes

Alt text
html
<!-- Good (descriptive) -->
<img src="photo.jpg" alt="Team members collaborating in the office">

<!-- Good (decorative) -->
<img src="decoration.jpg" alt="" role="presentation">
Color contrast
  • 4.5:1 contrast ratio for normal text
  • 3:1 contrast ratio for large text (18px+ or 14px+ bold)
Form labels
html
<label for="email">Email Address</label>
<input type="email" id="email" name="email">
html
<a href="#main-content" class="skip-link">Skip to main content</a>

<style>
.skip-link {
  position: absolute;
  left: -9999px;
}
.skip-link:focus {
  left: 0;
  top: 0;
  z-index: 9999;
  background: #000;
  color: #fff;
  padding: 8px 16px;
}
</style>
Button accessibility
html
<!-- Icon button needs aria-label -->
<button aria-label="Close menu">
  <svg>...</svg>
</button>

Framework-specific patterns

Next.js (App Router)
tsx
// app/layout.tsx
import type { Metadata } from 'next'

export const metadata: Metadata = {
  title: {
    default: 'Site Name',
    template: '%s | Site Name'
  },
  description: 'Site description',
  openGraph: {
    title: 'Site Name',
    description: 'Site description',
    url: 'https://example.com',
    siteName: 'Site Name',
    type: 'website',
  },
}
Next.js (Pages Router)
jsx
import Head from 'next/head';

export default function Page() {
  return (
    <>
      <Head>
        <title>Page Title | Brand</title>
        <meta name="description" content="Page description" />
        <link rel="canonical" href="https://example.com/page" />
      </Head>
      <main>...</main>
    </>
  );
}
React (with react-helmet)
jsx
import { Helmet } from 'react-helmet';

function Page() {
  return (
    <>
      <Helmet>
        <title>Page Title | Brand</title>
        <meta name="description" content="Page description" />
      </Helmet>
      <main>...</main>
    </>
  );
}
Vue.js (with useHead)
vue
<script setup>
useHead({
  title: 'Page Title | Brand',
  meta: [
    { name: 'description', content: 'Page description' }
  ],
  link: [
    { rel: 'canonical', href: 'https://example.com/page' }
  ]
})
</script>
Nuxt.js
vue
<script setup>
useSeoMeta({
  title: 'Page Title | Brand',
  description: 'Page description',
  ogTitle: 'Page Title',
  ogDescription: 'Page description',
  ogImage: 'https://example.com/og-image.jpg'
})
</script>

Workflow

Step 1: Audit

Run the audit script on the target URL:

bash
node ~/.claude/skills/roier-seo/scripts/audit.js <URL>
Step 2: Identify framework

Check package.json dependencies and framework-specific files.

Step 3: Prioritize fixes
  1. Critical (red): Fix immediately
  2. Serious (orange): Fix soon
  3. Moderate (yellow): Fix when possible
  4. Minor (gray): Nice to have
Step 4: Implement

Use the fix patterns above, adapted to the user's framework.

Step 5: Re-audit

Run the audit again to verify improvements.

Requirements

  • Node.js 18+
  • Chrome/Chromium browser (for Lighthouse)
  • Audit script dependencies (installed via npm)

Resources

Version history

v1.0.0 (January 2026)

  • Initial release
  • Lighthouse audit integration
  • 50+ SEO fix patterns
  • Framework support for Next.js, React, Vue, Nuxt

© davila7, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts) in cli-tool/components/skills/web-development/roier-seo of davila7/claude-code-templates.

  • SKILL.md
  • scripts/audit-api.js
  • scripts/audit.js
  • scripts/package.json

Open the folder on GitHubat commit c0ca7da

Compare with similar skills

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

Roier SEO compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Roier SEO this skilldavila7/claude-code-templates33k—~2.7kAutomated safety check: PassMIT
SEO Validatesoftspark/ai-toolkit179—~3.9kAutomated safety check: NotesApache-2.0
SEO Auditunifapi-agent/agents589—~3.4kAutomated safety check: PassMIT
SEOaffaan-m/ECC276k2 repos~1.1kAutomated safety check: PassMIT
Persian SEOTronIsHere/vibefarsiui212—~1.7kAutomated safety check: WarnMIT
SEO Auditjosstei/maestro-orchestrate465—~218Automated safety check: PassApache-2.0

Similar skills

  • 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

    unifapi-agent/agents

    When the user wants to audit, review, or diagnose SEO issues on their site.

    589 GitHub stars~3.4k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • SEO

    affaan-m/ECC

    Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy.

    276k GitHub starsUsed in 2 repos~1.1k tokens
    Marketing & SEOAuto-check passed
  • Persian SEO

    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…

    212 GitHub stars~1.7k tokensUpdated today
    Marketing & SEOAuto-check: warnings
  • 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 3 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

More from davila7/claude-code-templates

All 479 skills in this repo
  • Perplexity Web Search

    davila7/claude-code-templates

    Runs web-grounded searches through Perplexity's Sonar models over OpenRouter for current events, recent literature and cited facts beyond the model's training cutoff.

    33k GitHub starsUsed in 11 repos~3.5k tokens
    Auto-check: notes
  • Neuropixels Data Analysis

    davila7/claude-code-templates

    Analyzes Neuropixels recordings from SpikeGLX or Open Ephys through preprocessing, drift correction, Kilosort4 spike sorting, quality metrics and curation.

    33k GitHub starsUsed in 9 repos~2.8k tokens
    Auto-check passed
  • Scientific Venue Templates

    davila7/claude-code-templates

    Supplies LaTeX templates and formatting rules for journals, conferences, posters, and grant proposals, then can check a draft against them.

    33k GitHub starsUsed in 9 repos~5.1k tokens
    Auto-check: notes
  • Brand Voice Content Creator

    davila7/claude-code-templates

    Analyzes a brand's existing writing to lock in a consistent voice, then builds SEO blog posts and platform-specific social content around it.

    33k GitHub starsUsed in 3 repos~1.9k tokens
    Auto-check passed
  • CAPA Officer

    davila7/claude-code-templates

    Guides corrective and preventive action (CAPA) work in a quality management system, from initiation and root cause analysis through effectiveness verification.

    33k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Fda Consultant Specialist

    davila7/claude-code-templates

    Senior FDA consultant and specialist for medical device companies including HIPAA compliance and requirement management.

    33k GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check passed

Questions about Roier SEO

What does Roier SEO do?

Technical SEO auditor and fixer. An agent skill from davila7/claude-code-templates. Roier SEO is an agent skill from davila7/claude-code-templates. Technical SEO auditor and fixer.

When should I use Roier SEO?

Roier SEO fits situations like: tasks that involve Web performance; tasks that involve On-page SEO; tasks that involve Schema markup.

How do I install Roier SEO in Claude Code?

Run `npx skills add davila7/claude-code-templates --skill roier-seo -a claude-code`. Or copy the skill folder (cli-tool/components/skills/web-development/roier-seo in davila7/claude-code-templates) into .claude/skills/roier-seo in your project. Claude Code loads it when a task matches its description.

How do I install Roier SEO in Codex?

Run `npx skills add davila7/claude-code-templates --skill roier-seo -a codex`. Or copy the skill folder (cli-tool/components/skills/web-development/roier-seo in davila7/claude-code-templates) into .agents/skills/roier-seo in your project. Codex loads it when a task matches its description.

Can I use Roier 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 davila7/claude-code-templates --skill roier-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/roier-seo, .gemini/skills/roier-seo, .github/skills/roier-seo and .opencode/skills/roier-seo in your project.

What does Roier SEO need to run?

Going by SKILL.md and its folder, Roier SEO needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and npm). Our summary lists: Node.js.

Does Roier SEO access the network?

SKILL.md names 8 domains. In commands or code: schema.org, twitter.com, linkedin.com and fonts.googleapis.com; the agent is likely to contact these when it follows the instructions. As links in the text: developer.chrome.com, pagespeed.web.dev, w3.org and web.dev. This is read from the text; nothing was executed.

Is Roier SEO safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Roier SEO use?

Roier SEO is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Roier SEO use?

About 2.7k tokens (SKILL.md is roughly 11k 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 Roier SEO?

Skills that share tags, products or a category with Roier SEO: SEO Validate (softspark/ai-toolkit, 179 stars), SEO Audit (unifapi-agent/agents, 589 stars), SEO (affaan-m/ECC, 276k stars) and Persian SEO (TronIsHere/vibefarsiui, 212 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Roier SEO?

davila7 (a GitHub user) maintains it in davila7/claude-code-templates, which has 32,512 GitHub stars. The repository holds 479 skills in this directory. The repository was last updated on October 10, 2026.

Source: davila7/claude-code-templates on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.