NanoSkill
Send inn din skill

Ferdighet for søkemotoroptimeringsrevisjon

avJeffLi1993382GitHub-stjernerGitHub

En lettvekts ferdighet for søkemotoroptimeringsrevisjon for Claude Code, OpenClaw og Codex. Kjør raske revisjoner av enkeltsiders søkemotoroptimalisering, sjekk kjerneproblemer på siden og på nettstednivå, og generer en strukturert rapport om søkemotoroptimalisering med praktiske løsninger.

søkemotoroptimeringsrevisjonsøkemotoroptimaliseringpå-siden-søkemotoroptimaliseringnettsted-revisjonSikkerhetsskann bestått
Resultatforhåndsvisning

Full demo

Se et ekte resultat av søkemotoroptimaliseringsrevisjon generert av denne agentferdigheten.

Kom i gang

Kjør din første oppgave

  1. seo-audit-step-1
    01

    Trinn 1: Installer

    Legg til ferdigheten i agenten din

  2. seo-audit-step-2
    02

    Trinn 2: Revisjonsoppgave

    Bruk én URL og be om en prioritert revisjon.

  3. seo-audit-step-3
    03

    Trinn 3: Gjennomgå resultat

    Få prioriterte rettelser for søkemotoroptimalisering du kan handle på umiddelbart.

Installasjonskommando

$ npx skills add JeffLi1993/seo-audit-skill

Om

Søkemotoroptimeringsrevisjon er en lettvekts ferdighet for søkemotoroptimeringsrevisjon for AI-kodingsagenter som Claude Code, OpenClaw og Codex. Den hjelper en agent med å inspisere en enkelt URL, sjekke kjerneproblemer med søkemotoroptimalisering og generere en strukturert revisjonsrapport med bevis, påvirkning og anbefalte rettelser.

Ferdigheten fokuserer på førstegangs sjekker av søkemotoroptimalisering, inkludert tittelkoder, metabeskrivelser, H1-koder, kanoniske koder, bilde-alt-tekst, nøkkelordplassering, robots.txt, sitemap.xml, 404-håndtering, URL-kanonisering, E-E-A-T-tillitssider og JSON-LD-skjema-validering.

Bruk den når du trenger en rask helsesjekk av søkemotoroptimalisering før du publiserer en side, gjennomgår en landingsside, diagnostiserer grunnleggende rangeringsproblemer eller bestemmer om en dypere teknisk søkemotoroptimaliseringsrevisjon er nødvendig.

Nøkkelfunksjoner

Hva som gjør den kraftig

  • Rask enkeltside-SEO-revisjon

    Kjør en rask SEO-revisjon for hvilken som helst URL og få et førsteinntrykk av sidens SEO-helse uten å sette opp en fullstendig crawler eller analysearbeidsflyt.

  • Kjernekontroller for on-page SEO

    Sjekk tittelkoder, metabeskrivelser, H1-tagger, kanoniske tagger, alt-tekst for bilder, overskriftsstruktur, plassering av nøkkelord, interne lenker og ordtelling.

  • Grunnleggende SEO på nettstedsnivå

    Gjennomgå grunnleggende SEO-signaler som robots.txt, sitemap.xml, 404-håndtering, URL-kanonisering, i18n / hreflang og E-E-A-T-tillitssider.

  • JSON-LD-skjemavalidering

    Oppdag om siden har riktig strukturerte data, valider vanlige skjematyper og flagg manglende eller ufullstendige JSON-LD-felt.

  • Strukturert SEO-revisjonsrapport

    Generer en ryddig SEO-revisjonsrapport med statusene bestått, advarsel og ikke bestått, pluss bevis, påvirkning og spesifikke rettelser for hvert viktige problem.

Brukstilfeller

Når du bør bruke den

  • Revidere en landingsside før publisering

    Bruk denne ferdigheten før du lanserer en hjemmeside, produktside, verktøyside eller SEO-landingsside for å fange opp grunnleggende SEO-problemer tidlig.

  • Kjør en rask SEO-helsesjekk

    Sjekk om en side har riktig tittel, metabeskrivelse, H1, kanonisk tagg, skjema, interne lenker og andre grunnleggende SEO-signaler.

  • Gjennomgå eksisterende sider med rangeringsproblemer

    Bruk den når en side er indeksert, men ikke rangerer bra, eller når du raskt vil identifisere åpenbare on-page- og nettstedsnivåproblemer.

SKILL.md

seo-audit — Grunnleggende SEO-revisjon

En lettvektig SEO-agentferdighet designet for raske, standard enkeltside SEO-revisjoner. Drevet av OpenClaw. Egnet for førstegangssidesjekker eller når en rask vurdering er nødvendig uten full teknisk dybde.


Når du skal bruke denne ferdigheten

Bruk seo-audit når:

  • Brukeren sier: «reviser denne siden», «sjekk SEO», «analyser URL-en min», «rask SEO-sjekk», «hva er galt med siden min»
  • Ingen spesifikk dybde er etterspurt — dette er standard inngangspunkt
  • Brukeren trenger en rask, lesbar oppsummering snarere enn en omfattende teknisk gjennomgang

Hvis brukeren ønsker mer dybde, oppgrader til seo-audit-full:

Tips: For dype tekniske revisjoner, avansert on-page SEO eller fullstendige rapporter, bruk seo-audit-full-ferdigheten.


Forventet input

InputObligatoriskMerknader
Side-URLJaSiden som skal revideres
Rå HTML eller sideinnholdValgfrittMuliggjør mer nøyaktig on-page-analyse
GSC / analysedataValgfrittIkke nødvendig for grunnleggende revisjon

Hvis bare en URL er oppgitt og ingen kildekode eller crawlerdata er tilgjengelig, oppgi tydelig:

Begrensning: Denne revisjonen er kun basert på synlig sideinnhold og offentlig tilgjengelige signaler. Kildekode, GSC-data, crawl-logger og ytelsesmålinger er ikke tilgjengelige for denne revisjonen.


Output

Produser en Grunnleggende SEO-revisjonsrapport ved å fylle ut malen på assets/report-template.html, og lagre den til en fil — aldri skriv ut rå HTML til terminalen.

Filnavngiving: reports/<hostname>-<slug>-audit.html

https://example.com/blog/best-tools → reports/example-com-blog-best-tools-audit.html
https://example.com/                → reports/example-com-audit.html

Etter lagring, fortell brukeren:

✅ Rapport lagret → reports/example-com-audit.html
   Åpne den nå? (ja / nei)

Hvis ja → kjør: open reports/example-com-audit.html


Malplassholdere — fyll ut hver uavhengig:

PlassholderInnhold
{{summary_verdict}}Én setning: totalt antall kontroller kjørt, hvor mange mislyktes/advarte/bestod
{{summary_critical_html}}<li> per kritisk (mislykket) element, eller <li class="summary-empty">Ingen</li>
{{summary_warnings_html}}<li> per advarselselement, eller <li class="summary-empty">Ingen</li>
{{summary_passing_html}}<li> per bestått kontroll, eller <li class="summary-empty">Ingen</li>

Skript

Kjør disse skriptene før du skriver noen funn. De sender ut strukturert JSON — bruk JSON-en direkte som bevis; ikke hent de samme URL-ene manuelt på nytt.

Avhengigheter: pip install requests (html-parsing bruker Python stdlib)

# Step 1: site-level checks (robots.txt + sitemap.xml)
python scripts/check-site.py https://example.com

# Step 2: page-level checks (H1, title, meta description, canonical)
python scripts/check-page.py https://example.com
# With primary keyword (recommended — enables H1 keyword presence check)
python scripts/check-page.py https://example.com --keyword "running shoes"

# Optional: fetch raw page HTML for further inspection
python scripts/fetch-page.py https://example.com --output page.html

# Step 3: JSON-LD schema validation
python scripts/check-schema.py https://example.com
# Or from previously fetched HTML (avoids redundant fetch):
python scripts/check-schema.py --file page.html

Hvert skript avslutter med kode 0 (alle bestått/advarsel) eller 1 (noen mislykket/feil).

STRENGT OMFANG — ikke legg til noen kontroll som ikke er oppført nedenfor. Ingen unntak.

Tillatte nettstedsnivåkontroller (i {{site_checks_html}}):

  • robots.txt · sitemap.xml · 404-håndtering · URL-kanonisering · i18n / hreflang

Tillatte E-E-A-T-kontroller (i {{eeat_checks_html}}):

  • Om oss · Kontakt · Personvernerklæring · Tjenestevilkår · Media/Partnere (bare hvis til stede)

Tillatte sidenivåkontroller (i {{page_checks_html}}), output i nøyaktig denne rekkefølgen: URL-slug · Tittel-tag · Metabeskrivelse · H1-tag · Canonical-tag · Bilde-alt-tekst · Ordtelling · Nøkkelordplassering · Overskriftsstruktur · Interne lenker · Schema (JSON-LD)

Logikk for bilde-alt-tekst:

  • Parse <img>-tagger fra statisk HTML
  • Bestått: alle bilder har ikke-tom alt (dekorative bilder med alt="" er OK)
  • Advarsel: ethvert innholdsbilde som mangler alt-attributt
  • Ubekreftet (status-info): 0 bilder funnet i statisk HTML → sannsynligvis JS-rendret, kan ikke bekrefte

⛔ HARD REGEL — Output KUN kontrollradene definert i report-template.html. Hvis en kontroll ikke er i de tillatte listene ovenfor, IKKE output den — ikke engang hvis du finner problemer. Ingen unntak. Ingen «bonus»-kontroller. Ingen improvisasjon. Malen er den eneste sannhetskilden. Behandle den som en streng hviteliste.

Fortsatt FORBUDT (tilhører seo-audit-full): OG-tagger · Twitter Card · Sosiale tagger · Sidevekt · Core Web Vitals · Robots Meta

Slik bruker du JSON-outputen:

  • Map hvert felts statuspass / warn / fail / error direkte til rapportens kontrolltabell
  • Bruk hvert felts detail-streng som utgangspunkt for Bevis-linjen i funn
  • Ikke motsi skriptets output med mindre du har ytterligere observerbare bevis
  • Skill kontrollgrupper med <div class="subsection-label">Etikett</div> inne i {{site_checks_html}}: Crawlability · URL Canonicalization · i18n / hreflang · Schema (JSON-LD) og <div class="subsection-label">E-E-A-T-tillitssider</div> før {{eeat_checks_html}}

LLM-gjennomgang — obligatorisk når llm_review_required: true:

Skriptet flagger felt som krever semantisk eller kvalitetsvurdering det ikke kan utføre. La aldri llm_review_required: true være uløst — gjør alltid en eksplisitt vurderingsavgjørelse.

H1 — utløses når keyword_match == "partial":

h1_text : (from h1.values[0])
keyword : (the --keyword passed to the script)

Judge: Does this H1 semantically cover the keyword's search intent?
  - Consider synonyms, natural variants, topic coverage
  - yes → downgrade to "pass", note the variant
  - no  → keep "warn" or upgrade to "fail", explain the gap

Tittel — utløses når keyword_match == "partial" ELLER keyword_position != "start":

title   : (from title.value)
keyword : (the --keyword passed)

Judge:
  1. Does the title semantically cover the keyword's search intent?
  2. Is the title grammatically correct and naturally readable?
  3. Keyword position — apply different standards by page type:
     - Homepage   : Brand + core keyword is correct (e.g. "Acme | AI Workflow Automation")
                    Do NOT flag brand-first as a problem.
     - Inner pages: Core keyword should lead (e.g. "AI Workflow Automation for Teams — Acme")
                    Flag if keyword is buried mid-title without good reason.

IMPORTANT — do NOT flag these as negatives:
  - Years (e.g. "2026") → signal freshness, increase CTR — treat as positive unless
    the page is explicitly evergreen content where dating would hurt longevity.
  - Numbers (e.g. "5 best", "Top 10", "3 steps") → set clear expectations,
    consistently outperform non-numeric titles in CTR — always treat as a plus.
  - Specific qualifiers ("Open-Source", "Self-Hosted", "Free") → narrow intent
    and attract higher-quality clicks — do not penalize.

URL-slug — utløses når keyword_match != "full" eller is_homepage == false:

slug    : (from url_slug.slug)
keyword : (the --keyword passed)

Judge:
  1. Does the slug contain the primary keyword or a natural variant?
  2. Is the path hierarchy logical? (/category/keyword is ideal)
  3. Is it concise and human-readable?
  Homepage (is_homepage: true): skip — no judgment needed.

Metabeskrivelse — alltid utløst når innhold er til stede:

meta_description : (from meta_description.value)
keyword          : (the --keyword passed)

Judge all four:
  1. Complete sentence(s)? (1-2 sentences, no fragments)
  2. Mentions a concrete result — not vague fluff?
     Good: "Cut design time by 60% with AI-powered templates"
     Bad:  "The best tool for all your design needs"
  3. Keyword or natural synonym used once — not stuffed?
  4. More specific than what a typical competitor would write?

IMPORTANT — do NOT flag these as negatives:
  - Years (e.g. "2026") → signal freshness, improve CTR for time-sensitive queries.
    Only note the year if the page is explicitly evergreen content where dating hurts.
  - Numbers (e.g. "5 best", "3 steps") → concrete specificity, strong CTR signal.
  - Trailing "and more." → minor style note at most, never a Warning or Fail.

Anbefalt arbeidsflyt

Følg disse trinnene i rekkefølge:

  1. Anerkjenn omfang — bekreft at dette er en grunnleggende revisjon; noter eventuelle manglende data

  2. Utled primært nøkkelord — hent siden med fetch-page.py, og bestem deretter det primære nøkkelordet:

    • Hvis brukeren eksplisitt oppga et nøkkelord → bruk det direkte
    • Hvis ikke → les sidens H1, tittel og første avsnitt, og utled det ene mest sannsynlige målnøkkelordfrasen (hva ville en søker skrevet for å finne denne siden?)
    • Oppgi det utledede nøkkelordet eksplisitt før du kjører kontroller:

      «Utledet primært nøkkelord: open source claude-alternativer»

  3. Kjør check-site.py — parse JSON-outputen for robots, sitemap, 404-håndtering og URL-kanonisering

    404-sjekk: hent <origin>/this-page-definitely-does-not-exist-seo-audit-check

    • Returnerer 404 → Bestått · Returnerer 200 (myk 404) → Mislykket · Returnerer 301 til hjemmesiden → Advarsel

    Kontroller av URL-kanonisering (hver er en separat underkontroll):

    • HTTP→HTTPS: hent http://<host> — må 301 til https://. Returnerer 200 → Mislykket.
    • www-konsistens: hent både https://www.<host> og https://<host> — en må 301 til den andre. Begge returnerer 200 → Advarsel.
    • Etterfølgende skråstrek: sammenlign URL-en som faktisk serveres mot canonical-taggen på siden. Avvik → Advarsel.
    • Canonical match: href i canonical-taggen må nøyaktig samsvare med den endelige URL-en etter alle omdirigeringer. Avvik → Advarsel.
  4. E-E-A-T-infrastrukturkontroll — for hver av tillitssidene nedenfor, kontroller to lag:

    • Lag 1 — Finnes: hent URL-en, sjekk HTTP-status (200 = finnes, 404/redirect = mangler)
    • Lag 2 — Nåbar: hent hjemmeside-HTML, sjekk om bunnteksten eller navigasjonen inneholder en lenke til denne siden
    SidePåkrevd
    Om ossJa
    KontaktJa
    PersonvernerklæringJa
    TjenestevilkårJa
    Media / PartnereNei — inkluder bare hvis til stede

    Statusregler:

    • Side mangler (ikke 200) → Mislykket
    • Side finnes men er ikke lenket i bunntekst/nav → Advarsel
    • Side finnes og er lenket i bunntekst/nav → Bestått
    • Valgfri side mangler → hopp over, ikke inkluder rad
  5. Kjør check-page.py --keyword «<inferred_keyword>» — parse JSON-outputen for H1, tittel, metabeskrivelse, canonical og URL-slug

  6. i18n / hreflang-sjekk — kjør bare hvis siden inneholder hreflang-tagger eller <html lang> antyder flerspråklighet:

    • Hopp over helt (N/A) hvis ingen hreflang-tagger er funnet og nettstedet ser ut til å være enspråklig
    • Hvis hreflang-tagger er til stede, kontroller:
      • Gjensidig symmetri: hver referert URL må lenke tilbake til alle andre varianter — enhver ødelagt lenke = Mislykket
      • Språkkoder: må være gyldig BCP 47 (f.eks. zh-CN ikke zh, en-US ikke en-us) — feil kode = Advarsel
      • x-default: bør være til stede for språkvelger- eller fallback-sider — mangler = Advarsel
      • html[lang]-attributt: må samsvare med sidens primære hreflang — avvik = Advarsel
      • URL-struktur: anbefalt mønster — standardspråk (vanligvis en) i roten uten prefiks, andre språk under understier (/zh/, /es/).
        • /page (en) + /zh/page + /es/page → Bestått
        • /en/page + /zh/page → Advarsel (en-prefiks er redundant, sløser med crawl-dybde)
        • Flagg bare hvis mønsteret er tydelig inkonsistent eller en er unødvendig prefikset
  7. Kjør check-schema.py — parse JSON-outputen for skjematyper og feltvalidering

    python scripts/check-schema.py https://example.com
    # Or from previously fetched HTML:
    python scripts/check-schema.py --file page.html
    

    Skriptet trekker ut JSON-LD-blokker, validerer @type og påkrevde felt i henhold til Schema.org-spesifikasjonen. llm_review_required: true er alltid satt — bekreft at inferred_page_type samsvarer med faktisk sideinnhold.

    Sidetype → forventet @type-referanse:

    SidetypeForventet @typeMin. påkrevde felt
    HjemmesideWebSite + Organizationname, url, logo
    Blogg / ArtikkelArticle or BlogPostingheadline, datePublished, author, image
    ProduktProductname, image, offers (price, priceCurrency)
    FAQFAQPagemainEntity[].name, acceptedAnswer.text
    HvordanHowToname, step[].text
    Lokal bedriftLocalBusinessname, address, telephone
    Generisk landingssideN/A — hopp over, ingen støttet type med bred støtte
    • Bestått: riktig @type til stede, alle påkrevde felt gyldige, ingen konflikter
    • Advarsel: @type til stede men mangler anbefalte felt
    • Mislykket: forventet @type mangler helt
    • N/A: generisk landingsside — ikke straff
  8. Oppsummer funn — hvert funn må følge formatet Bevis / Konsekvens / Løsning

  9. Prioriterte handlinger — list opp de 3 viktigste tiltakene med høyest effekt

  10. Gjengi rapport — lagre til reports/<hostname>-<slug>-audit.html, og spør deretter brukeren om å åpne

  11. Oppgraderingsmelding — hvis problemer utover grunnleggende omfang blir funnet, foreslå seo-audit-full


Regler for rapportdetaljer

Detaljcellen i kontrolltabeller må følge disse reglene — ingen unntak:

Bestått → én kort frase. Ingen lister, ingen utdypning.

Good: "Valid XML urlset · 104 URLs · referenced in robots.txt."
Bad:  "Valid XML urlset with 104 URLs. Correctly referenced in robots.txt.
       Blog posts are likely indexed through this sitemap."

Advarsel → én <div class="detail-issue"> med ≤2 kulepunkter. Én <div class="detail-fix"> med løsningen.

Good:
  <div class="detail-issue">· Title 48 chars — 2 below minimum. · Year "2026" will date the page.</div>
  <div class="detail-fix">Expand to 50–60 chars; remove year if evergreen.</div>

Bad: three-sentence prose explaining what a title tag is and why length matters.

Mislykket → samme som Advarsel. Start med den nøyaktige feilen. Ingen bakgrunnsforklaringer.

IKKE forklar hva en kontroll er, IKKE gjenta informasjon som allerede er synlig i statusmerket, IKKE behandle leseren som ukjent med SEO-grunnleggende.


Obligatorisk funnformat

Hvert viktige funn følge denne strukturen:

**Finding: [Finding Title]**

- **Evidence:** [What was observed — direct quote, screenshot ref, or measurable data]
- **Impact:** [Why this matters for SEO or UX]
- **Fix:** [Specific, actionable recommendation]

Ikke skriv vage konklusjoner. Hvis beviset er utilstrekkelig, oppgi antakelser eksplisitt.


Oppgraderingsmelding

Inkluder dette på slutten av hver grunnleggende revisjonsrapport:

Ønsker du en dypere analyse? Dette var en grunnleggende SEO-revisjon som dekket signaler på nettstedsnivå og grunnleggende on-page-kontroller. For avansert teknisk SEO, innholdskvalitetsscoring, strukturert dataanalyse og fullstendige crawl-baserte funn, bruk seo-audit-full-ferdigheten.


Referansefiler

  • Detaljert revisjonsomfang og feltdefinisjoner: references/REFERENCE.md
  • Endelig HTML-rapportmal: assets/report-template.html
  • Nettstedsnivåkontrollskript: scripts/check-site.py
  • Sidenivåkontrollskript: scripts/check-page.py
  • Råsidehenter: scripts/fetch-page.py
  • Skjemavalideringsskript: scripts/check-schema.py

FAQ