Seo logo

Seo

Community
nahid-sparktales
seo

Make a page findable for a real query — match the intent behind it, structure the page around that intent, and clear the technical floor that decides whether it can be crawled and indexed at all. Use when a page is written for search, when traffic drops or a page is missing from results, when someone asks "how do we rank for X", or before publishing content meant to be found. Not for writing the copy itself, not for page speed work, and not for paid search or social distribution.

Overview

Publishernahid-sparktales
Repositoryagent-dispatcher
Skill nameseo
Stars
58
Forks
5
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by nahid-sparktales on GitHub. Read the source before you install it.

Installation

Install the Seo AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/nahid-sparktales/agent-dispatcher/tree/main/skills/knowledge/seo
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/nahid-sparktales/agent-dispatcher.git /tmp/agent-dispatcher
mkdir -p .claude/skills
cp -r /tmp/agent-dispatcher/skills/knowledge/seo .claude/skills/seo
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Seo in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Seo on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Seo is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

SEO

Most search work that fails is not outranked — it is never eligible. The page is blocked, not indexed, duplicated across three URLs, or written for a phrase nobody types with the intent the page actually serves. Fix eligibility and intent before touching anything else, and never present a published page as a ranking one.

When this fires

A page is being written or revised to be found in search; traffic to a page fell; someone asks which query a page should target, or why a page is not appearing. It does not fire for ad copy, email, social distribution, or for a page deliberately kept out of search.

Five states — keep them apart

Published → crawlable → indexed → ranking for a query → earning clicks that convert. Each is checked differently and each can fail while the one before it succeeded. "The page is live" is a statement about the first only. Never report a later state you did not observe.

Procedure

  1. Name one query and the intent behind it. Informational, navigational, transactional, or comparison-shopping. Write the intent down as a sentence about what the person wants next.
  2. Read the current results page for that query before deciding anything. What already ranks is the clearest available evidence of the intent the engine has settled on: if the whole page is comparison tables and yours is a product pitch, the format is the mismatch, not the wording. If you cannot see the results page, say so and treat the intent as assumed.
  3. Check no page you own already targets it. Two pages after one intent split their own signals and neither wins. Decide: extend the existing page, or pick a genuinely different intent. Merging or redirecting existing URLs is a live-traffic change — propose it, do not do it.
  4. Structure the page around the intent. The answer near the top, not after the preamble. One h1 naming the subject; sub-headings that mirror the actual sub-questions a reader has, in the order they have them. Title and description written to be chosen from a list of ten results, not to repeat the keyword back.
  5. Clear the technical floor, by observation not assumption. For the live URL, confirm: it returns 200; robots.txt does not disallow it; no noindex in the meta or response headers; one self-referential canonical; a real <a href> path to it from somewhere already indexed; it is in the sitemap; the URL is stable and readable. Record what each check actually returned.
  6. Check what a crawler receives, not what a browser renders. Fetch the raw HTML, or load the page with JavaScript disabled. Main content and internal links that exist only after client-side rendering are content you cannot count on. Name any that are missing from the source.
  7. Give internal links a job. Link to the page from pages that are already indexed and related, with anchor text that describes the destination. This is the one ranking input entirely inside your control; orphan pages are the most common self-inflicted failure.
  8. Add structured data only where a genuine type applies and only describing what is visibly on the page. Marking up content the visitor cannot see is a penalty risk, not an optimization.
  9. Hand speed and layout stability to the performance work rather than guessing at it here, and confirm the page is usable on a phone — that is where most search traffic reads it.
  10. Measure from the site's own search console. Query, impressions, clicks, average position, for a stated date range, for that URL. An estimate from a third-party rank tracker is an estimate; label it as one. Indexing status comes from the index-inspection report, not from the fact that the page loads for you.
  11. Stop and ask before anything that can remove traffic: editing robots.txt, adding noindex, changing a canonical, creating or changing redirects, deleting or merging live URLs, or publishing. These are outward-facing and several are hard to reverse. Draft the change, show the current value and the proposed one, and wait.

What no longer moves anything

Say so plainly when asked for these, and spend the effort on intent and structure instead: keyword density targets and repeating the phrase into the copy; the meta keywords tag; a separate thin page per keyword variant; doorway pages; word-count targets treated as a quality signal; spun or near-duplicate text produced for volume; keyword-stuffed alt text and filenames; changing publish dates to look fresh without changing content; hidden text; exact-match anchor text used at scale; and buying links, which is a manual-action risk rather than an ineffective tactic.

Checklist

  • One query named, with its intent written as a sentence
  • Current results for that query read, or the intent marked as assumed
  • No second page of yours chasing the same intent
  • Status code, robots directive, canonical and sitemap entry each checked and recorded
  • Raw HTML inspected — main content and links present without JavaScript
  • At least one internal link from an indexed, related page
  • Console data quoted with its date range, or its absence stated
  • Every robots / canonical / redirect / publish change proposed rather than made

Failure handling

  • Page is not in the index — report it as not indexed and name the checks that passed and failed. Do not conclude a penalty; the ordinary causes are a blocking directive, a canonical pointing elsewhere, no internal links, or simply that not enough time has passed.
  • Traffic dropped — separate the candidates before explaining: fewer impressions (demand or visibility), same impressions with fewer clicks (title, description, or a results-page feature taking the click), or the page dropping out of the index entirely. Each has a different fix.
  • Rankings move day to day — that is normal variation. A single-day comparison is not a result; use a window long enough that the change survives it.
  • No console access and no crawl data — say which states could not be observed. Report on the technical floor you could check and stop at "eligible", never at "will rank".
  • The request is to rank for a query the page does not serve — say that, and offer the query the page does serve. Writing for the wrong intent wastes the page.

Evidence to report

The URL and the query with its intent. What the results page for that query currently looks like. Each technical check with the value it returned, not a tick. What the raw HTML did and did not contain. The internal links pointing at the page. Console figures with their date range and source. The changes proposed but not made, with their current values. And the list of states you did not observe — usually indexing and ranking, which arrive later than the work does.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Seo AI skill do?

Make a page findable for a real query — match the intent behind it, structure the page around that intent, and clear the technical floor that decides whether it can be crawled and indexed at all. Use when a page is written for search, when traffic drops or a page is missing from results, when someone asks "how do we rank for X", or before publishing content meant to be found. Not for writing the copy itself, not for page speed work, and not for paid search or social distribution.

Why use Seo on TypingMind?

Because you install it once and use it with any model. Seo is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Seo in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/nahid-sparktales/agent-dispatcher/tree/main/skills/knowledge/seo. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Seo?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Seo?

As many as you like. As long as a model supports skills, you can use Seo with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Seo AI skill free?

Yes. It is published on GitHub by nahid-sparktales under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇