E-E-A-T Signal Evaluator
Crawls a page and extracts E-E-A-T signals — author identity and credentials, citations, first-hand experience markers,…
Updated
About this skill
E-E-A-T Signal Evaluator is a Content and Writing skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves content briefs from SERP intent, editorial planning, and SEO writing. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.
SKILL.md
E-E-A-T Signal Evaluator
AGENT ROLE: Autonomous trust-signal agent. Detect and score each E-E-A-T signal on a page against the rubric in references/eeat_rubric.json and emit the JSON in references/output.schema.json. Score observable signals only; never assert authority the page does not demonstrate.
OBJECTIVE
Produce a per-signal E-E-A-T scorecard (Experience, Expertise, Authoritativeness, Trust) with the specific missing elements to add — grounded in what is actually present on the page and its author entity.
INPUTS
url(REQUIRED): the page to evaluate.topic(OPTIONAL): the page's subject, to check author-topic relevance.is_ymyl(OPTIONAL bool): if true, apply the rubric's stricter YMYL weights.verify_author_entity(OPTIONAL bool, default true): look the author up in the Knowledge Graph / Wikidata.
AUTHENTICATION
- Page fetch: keyless HTTPS GET, UA
seoskills-eeat/1.0, honor robots. verify_author_entity: uses the Google Knowledge Graph API IFKG_API_KEYis set, else Wikidata (keyless). IF neither resolves the author THEN the authoritativeness sub-check is markedunverifiable, not failed.
EXPECTED TOOL CALLS
- Run
scripts/eeat.py --url {url} [--topic "..."] [--ymyl]. - GET the page; parse structured data (
Article/Personschema,author,datePublished/dateModified), byline, bio, outbound citations, and experience-language cues.
PROCEDURE (deterministic)
STEP 1 — FETCH + PARSE: extract author name (schema author → byline → rel=author), author bio/credential text, datePublished/dateModified, outbound links to authoritative domains, and citation/reference markers.
STEP 2 — EXPERIENCE: detect first-hand markers (references/eeat_rubric.json cue lists: "I tested", "we measured", original images, "in my experience"). Score by cue density + original-media presence.
STEP 3 — EXPERTISE: author bio contains credentials/qualifications relevant to topic; presence of a detailed author bio and Person schema with jobTitle/knowsAbout.
STEP 4 — AUTHORITATIVENESS: resolve the author entity (KG/Wikidata) and count authoritative outbound citations; site-level sameAs/organization signals.
STEP 5 — TRUST: dateModified recency, HTTPS, contact/about presence, citation of sources, absence of deceptive patterns, Article schema completeness.
STEP 6 — SCORE each pillar 0–100 via the rubric weights (YMYL weights if is_ymyl); overall = weighted mean. EMIT per-pillar scores + the concrete missing_signals list.
RATE LIMITS & ERROR HANDLING
- Single page fetch; timeout 15s. IF non-200 THEN STOP
error.code="PAGE_UNREACHABLE"with the status. - KG/Wikidata
429→ backoff2^attempt(max 4); on failure set authoritativeness author-checkunverifiable. - Robots-disallowed → STOP
error.code="ROBOTS_DISALLOW"unlessrespect_robots=false.
MISSING / INSUFFICIENT DATA
- Absent author is itself a finding (
missing_signals: ["author_identity"]), not an error. - Distinguish "signal absent" (a fixable finding) from "could not verify" (author entity lookup failed) — never conflate them.
- Do not infer expertise from prose tone; require concrete credential/experience markers.
OUTPUT
One JSON object per references/output.schema.json. No prose.
FILES
scripts/eeat.py— page parse, signal extraction, entity verification, rubric scoring.references/eeat_rubric.json— signal cues, weights, and YMYL overrides.references/output.schema.json— output contract.
Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.
Embed a badge
Install into your agent
More in Content and Writing
brief
Produce an editor-ready content brief for a target keyword or topic. Use when the user asks for a content brief, writing guidelines, article outline, SEO brief, what to include in a blog post, or how to structure content for a keyword. For choosing which topics to write about, see find-keywords. For a full site-wide SEO audit, see audit.
seo-content
Content quality and E-E-A-T analysis with AI citation readiness assessment, plus last-mile draft cleanup (AI-typical phrasing and invisible Unicode watermark characters). Use when user says "content quality", "E-E-A-T", "content analysis", "readability check", "thin content", "content audit", "humanize", "AI phrasing", "remove watermarks", or "invisible characters".
seo-content-brief
Generate competitive SEO content briefs with per-section word counts, competitor scoring, keyword density guidance, and page-type templates. Supports both new page briefs and improve-existing-page briefs. Use when user says "content brief", "write a brief", "content outline", "blog brief", "service page brief", "brief for", "writing brief", "content plan", or "outline for".
seo-content-optimizer
No description available.
seo-content-auditor
Analyzes provided content for quality, E-E-A-T signals, and SEO best practices. Scores content and provides improvement recommendations based on established guidelines.
Content Decay Predictor
Builds per-URL clicks and impressions time-series from Search Console, fits a trend to detect sustained decline and inf…