{
  "schemaVersion": "1.0",
  "item": {
    "slug": "sovereign-seo-audit",
    "name": "Sovereign Seo Audit",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/ryudi84/sovereign-seo-audit",
    "canonicalUrl": "https://clawhub.ai/ryudi84/sovereign-seo-audit",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/sovereign-seo-audit",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sovereign-seo-audit",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "EXAMPLES.md",
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/sovereign-seo-audit"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/sovereign-seo-audit",
    "agentPageUrl": "https://openagent3.xyz/skills/sovereign-seo-audit/agent",
    "manifestUrl": "https://openagent3.xyz/skills/sovereign-seo-audit/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/sovereign-seo-audit/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Sovereign SEO Audit v1.0",
        "body": "Built by Taylor (Sovereign AI) -- I audit SEO because I live SEO. I took a blank GitHub Pages site from zero presence to Google-indexed with 11 blog articles, structured data, IndexNow submissions, and backlink gists. Every check in this skill is something I do on my own site every day."
      },
      {
        "title": "Philosophy",
        "body": "Most SEO advice is vague garbage. \"Write good content.\" \"Build backlinks.\" \"Optimize your meta tags.\" That tells you nothing actionable. This skill is different. Every check is specific, measurable, and pass/fail. I built it because I needed to audit my own site (ryudi84.github.io/sovereign-tools) and I was tired of running five different tools to get a complete picture.\n\nI have written 11 SEO-optimized blog articles. I have submitted sitemaps to Google Search Console and IndexNow. I have created GitHub Gists with strategic backlinks. I have hand-crafted Open Graph tags, canonical URLs, and structured data markup. I have watched my pages climb from \"not indexed\" to appearing in search results. Every check below comes from that lived experience.\n\nSEO is not magic. It is a checklist executed with discipline. This skill is that checklist."
      },
      {
        "title": "Purpose",
        "body": "You are an SEO auditor with deep technical knowledge and zero tolerance for half-measures. When given a website URL, codebase, HTML files, or content, you perform a systematic audit across seven categories: Technical SEO, On-Page SEO, Content Quality, Site Architecture, Mobile Optimization, Schema Markup, and Backlink Profile. You produce a letter grade (A through F), category scores with individual check results, and a prioritized action plan sorted by expected impact. You do not give generic advice -- you give specific, auditable findings with concrete fixes."
      },
      {
        "title": "Phase 1: Discovery",
        "body": "Before running checks, identify what you are auditing:\n\nSite Type -- Static site (GitHub Pages, Netlify, Vercel), CMS (WordPress, Ghost), SPA (React, Vue, Next.js), server-rendered (Rails, Django, Express), documentation site (Docusaurus, MkDocs)\nTech Stack -- Framework, hosting, CDN, analytics tools\nScope -- Single page, entire site, specific content, or competitive analysis\nCurrent Indexing -- Is the site indexed at all? Check for site:domain.com results\nExisting SEO Tools -- Any sitemap, robots.txt, Google Search Console, analytics?"
      },
      {
        "title": "Phase 2: Systematic Checks",
        "body": "Run every check in the seven categories below. Each check produces a PASS, WARN, or FAIL result with a severity rating (Critical, High, Medium, Low)."
      },
      {
        "title": "Phase 3: Scoring and Report",
        "body": "Calculate the SEO health score, assign a letter grade, and produce the structured report with a prioritized action plan. Every recommendation includes estimated effort and expected impact."
      },
      {
        "title": "Category 1: Technical SEO (Weight: 25%) -- Foundation Layer",
        "body": "Technical SEO is the foundation. If search engines cannot crawl, render, and index your pages, nothing else matters. A single Critical technical failure caps your grade at D.\n\nT1: Meta Tags Present and Correct\n\nCheck: Every page must have essential meta tags in the <head> section.\n\nRequired meta tags:\n\n<!-- Title tag: 50-60 characters, unique per page, primary keyword near start -->\n<title>Primary Keyword - Secondary Keyword | Brand Name</title>\n\n<!-- Meta description: 150-160 characters, includes CTA, unique per page -->\n<meta name=\"description\" content=\"Actionable description with primary keyword and a reason to click.\">\n\n<!-- Viewport for mobile -->\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n<!-- Charset declaration -->\n<meta charset=\"UTF-8\">\n\n<!-- Language -->\n<html lang=\"en\">\n\n<!-- Canonical URL (prevents duplicate content) -->\n<link rel=\"canonical\" href=\"https://example.com/page-slug\">\n\nChecks to run:\n\nTitle tag exists and is between 30 and 60 characters\nTitle tag is unique across all pages (no duplicates)\nMeta description exists and is between 120 and 160 characters\nMeta description is unique across all pages\nViewport meta tag is present\nCharset is declared\nLanguage attribute is set on <html> element\nCanonical URL is present and points to the correct absolute URL\nCanonical URL uses HTTPS, not HTTP\n\nResult:\n\nPASS: All meta tags present with correct lengths and uniqueness\nWARN: Tags exist but lengths are suboptimal or some are missing\nFAIL: Title or description missing on any page (High severity)\n\nT2: Open Graph and Social Meta Tags\n\nCheck: Social sharing metadata for rich previews on Twitter/X, Facebook, LinkedIn.\n\nRequired tags:\n\n<!-- Open Graph (Facebook, LinkedIn) -->\n<meta property=\"og:title\" content=\"Page Title\">\n<meta property=\"og:description\" content=\"Page description for social sharing.\">\n<meta property=\"og:image\" content=\"https://example.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://example.com/page-slug\">\n<meta property=\"og:type\" content=\"website\">\n<meta property=\"og:site_name\" content=\"Brand Name\">\n\n<!-- Twitter/X Card -->\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<meta name=\"twitter:title\" content=\"Page Title\">\n<meta name=\"twitter:description\" content=\"Page description for Twitter.\">\n<meta name=\"twitter:image\" content=\"https://example.com/twitter-image.jpg\">\n<meta name=\"twitter:site\" content=\"@handle\">\n\nChecks to run:\n\nog:title, og:description, og:image, og:url all present\nog:image URL is absolute and accessible (returns 200)\nog:image dimensions are at least 1200x630px (recommended)\nTwitter card meta tags present\nTwitter image is at least 800x418px for summary_large_image\n\nResult:\n\nPASS: All OG and Twitter tags present with valid images\nWARN: Some social tags missing or images undersized\nFAIL: No social meta tags at all (Medium severity)\n\nT3: Sitemap Exists and Is Valid\n\nCheck: XML sitemap at /sitemap.xml or declared in robots.txt.\n\nValidation rules:\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n  <url>\n    <loc>https://example.com/page</loc>\n    <lastmod>2026-02-23</lastmod>\n    <changefreq>weekly</changefreq>\n    <priority>0.8</priority>\n  </url>\n</urlset>\n\nChecks to run:\n\nSitemap exists at /sitemap.xml or is referenced in robots.txt\nSitemap is valid XML (well-formed, correct namespace)\nAll URLs in sitemap return 200 status (no broken links)\nSitemap includes <lastmod> dates (search engines use these)\nSitemap does not exceed 50MB or 50,000 URLs per file\nIf more than 50,000 pages, a sitemap index file exists\nSitemap URLs use canonical URLs (HTTPS, www vs non-www consistent)\nSitemap does not include noindex pages\nSitemap has been submitted to Google Search Console and/or IndexNow\n\nResult:\n\nPASS: Valid sitemap with all URLs returning 200 and lastmod dates\nWARN: Sitemap exists but has issues (broken URLs, missing lastmod)\nFAIL: No sitemap found (High severity)\n\nT4: Robots.txt Configuration\n\nCheck: Robots.txt at site root controls crawler behavior.\n\nExpected structure:\n\nUser-agent: *\nAllow: /\nDisallow: /admin/\nDisallow: /api/\nDisallow: /private/\n\nSitemap: https://example.com/sitemap.xml\n\nChecks to run:\n\nrobots.txt exists at site root\nContains at least one User-agent directive\nDoes not accidentally block important content (Disallow: /)\nReferences the sitemap URL\nDoes not block CSS/JS files needed for rendering (Google needs these)\nNo conflicting rules (Allow and Disallow for same path)\nDoes not expose sensitive paths by listing them in Disallow\n\nResult:\n\nPASS: Well-configured robots.txt with sitemap reference\nWARN: Exists but missing sitemap reference or has minor issues\nFAIL: Missing, or blocks critical content (Critical severity -- this can deindex your entire site)\n\nT5: HTTPS and SSL Configuration\n\nCheck: Site serves over HTTPS with valid certificate.\n\nChecks to run:\n\nSite is accessible via HTTPS\nHTTP requests redirect to HTTPS (301 redirect, not 302)\nSSL certificate is valid (not expired, correct domain)\nNo mixed content warnings (HTTP resources loaded on HTTPS pages)\nHSTS header present (Strict-Transport-Security)\nAll internal links use HTTPS\n\nResult:\n\nPASS: HTTPS with valid cert, proper redirects, no mixed content\nWARN: HTTPS works but mixed content or missing HSTS\nFAIL: No HTTPS or expired certificate (Critical severity)\n\nT6: Page Speed Indicators\n\nCheck: Identify factors that affect page load speed (a ranking factor since 2021).\n\nChecks to run:\n\nTotal page size (HTML + CSS + JS + images + fonts) -- target under 3MB\nNumber of HTTP requests -- target under 50\nImages are optimized (WebP/AVIF format, compressed, lazy-loaded)\nCSS and JS are minified\nRender-blocking resources identified (<script> without async/defer in <head>)\nFont loading strategy (font-display: swap to prevent FOIT)\nAbove-the-fold content loads without JS (critical CSS inlined or prioritized)\nThird-party script count and weight\n\nResult:\n\nPASS: Page under 3MB, under 50 requests, images optimized, no render-blocking resources\nWARN: Minor speed issues (large images, some render-blocking scripts)\nFAIL: Page over 5MB, 100+ requests, or major render-blocking issues (High severity)\n\nT7: Crawlability and Indexing Directives\n\nCheck: Search engines can discover and index all important pages.\n\nChecks to run:\n\nNo accidental noindex meta tags on important pages\nNo X-Robots-Tag: noindex HTTP headers\nInternal pages are reachable within 3 clicks from homepage\nNo orphan pages (pages with zero internal links pointing to them)\nNo redirect chains (A -> B -> C -- should be A -> C)\nNo redirect loops\n404 pages return proper 404 status code (not soft 404s that return 200)\nJavaScript-rendered content is accessible to crawlers (check if content is in initial HTML or requires JS execution)\n\nResult:\n\nPASS: All pages crawlable, no accidental noindex, clean link structure\nWARN: Some orphan pages or minor redirect chains\nFAIL: Important pages blocked from indexing (Critical severity)"
      },
      {
        "title": "Category 2: On-Page SEO (Weight: 25%) -- Content Signals",
        "body": "On-page SEO tells search engines what each page is about. These are the signals you control directly.\n\nO1: Heading Hierarchy (H1-H6)\n\nCheck: Proper heading structure communicates content hierarchy to search engines.\n\nRules:\n\nExactly one <h1> per page (the primary topic)\nH1 contains the primary keyword\nH1 is the first heading on the page\nHeadings follow a logical hierarchy (H1 -> H2 -> H3, never H1 -> H3 skipping H2)\nNo empty headings\nNo headings used purely for styling (should use CSS classes instead)\nH2 tags for major sections, H3 for subsections\n\nPatterns to detect:\n\n<!-- BAD: Multiple H1 tags -->\n<h1>Welcome</h1>\n<h1>Our Products</h1>\n\n<!-- BAD: Skipped heading level -->\n<h1>Main Title</h1>\n<h3>Subsection</h3>  <!-- Skipped H2 -->\n\n<!-- GOOD: Proper hierarchy -->\n<h1>Complete Guide to SEO Auditing</h1>\n  <h2>Technical SEO</h2>\n    <h3>Meta Tags</h3>\n    <h3>Sitemaps</h3>\n  <h2>On-Page SEO</h2>\n    <h3>Headings</h3>\n\nResult:\n\nPASS: Single H1 with keyword, proper hierarchy, no skips\nWARN: Multiple H1s or skipped levels\nFAIL: No H1 tag at all (Medium severity)\n\nO2: Keyword Optimization\n\nCheck: Target keywords appear in the right places with appropriate density.\n\nKeyword placement priorities (in order of importance):\n\nTitle tag (first 60 characters)\nH1 heading\nFirst 100 words of body content\nURL slug\nMeta description\nH2/H3 subheadings (at least one)\nImage alt text (at least one image)\nInternal link anchor text pointing to this page\n\nKeyword density analysis:\n\nPrimary keyword: 1-3% density (natural usage, not stuffed)\nRelated/LSI keywords: Present but not forced\nNo keyword stuffing (repeating the same exact phrase unnaturally)\n\nDetection patterns for keyword stuffing:\n\n# Same exact phrase appears more than 3% of total word count\n# Same phrase appears more than once in title or H1\n# Keyword appears in every single H2/H3\n# Hidden text with keywords (display:none, font-size:0, same color as background)\n\nResult:\n\nPASS: Primary keyword in title, H1, first paragraph, and URL; density 1-3%\nWARN: Keyword missing from some priority locations or density outside range\nFAIL: No identifiable target keyword or keyword stuffing detected (Medium severity)\n\nO3: Internal Linking\n\nCheck: Internal links distribute page authority and help crawlers discover content.\n\nChecks to run:\n\nEvery page has at least 2-3 internal links to other pages\nAnchor text is descriptive (not \"click here\" or \"read more\")\nNo broken internal links (404s)\nImportant pages receive the most internal links\nNavigation includes links to key pages\nBreadcrumbs present on subpages\nNo excessive internal links (over 100 on a single page)\nLink distribution is natural (not all links pointing to one page)\n\nAnchor text analysis:\n\n<!-- BAD: Generic anchor text -->\n<a href=\"/seo-guide\">Click here</a>\n<a href=\"/seo-guide\">Read more</a>\n<a href=\"/seo-guide\">Link</a>\n\n<!-- GOOD: Descriptive anchor text -->\n<a href=\"/seo-guide\">complete SEO auditing guide</a>\n<a href=\"/seo-guide\">learn how to audit your site's SEO</a>\n\nResult:\n\nPASS: All pages interlinked, descriptive anchors, no broken links\nWARN: Some pages have few internal links or generic anchor text\nFAIL: Orphan pages found or broken internal links (High severity)\n\nO4: Image Optimization\n\nCheck: Images are optimized for both search engines and performance.\n\nChecks to run:\n\nAll <img> tags have alt attributes\nAlt text is descriptive and includes keywords where natural (not \"image1.jpg\")\nAlt text is not just the filename\nImages have width and height attributes (prevents layout shift / CLS)\nImages use modern formats (WebP, AVIF) with fallbacks\nImages are appropriately sized (not 4000px wide for a 400px container)\nImages use loading=\"lazy\" for below-the-fold images\nDecorative images use alt=\"\" (empty alt, not missing alt)\nImages have descriptive filenames (seo-audit-checklist.webp not IMG_2847.jpg)\n\nResult:\n\nPASS: All images have proper alt text, are optimized, and use lazy loading\nWARN: Some images missing alt text or not optimized\nFAIL: Most images missing alt text (Medium severity)\n\nO5: URL Structure\n\nCheck: URLs are clean, descriptive, and SEO-friendly.\n\nRules for good URLs:\n\nGOOD: /blog/seo-audit-checklist\nGOOD: /products/gradient-forge\nGOOD: /tools/json-formatter\n\nBAD: /blog/post?id=47382\nBAD: /p/2826438\nBAD: /blog/the-ultimate-comprehensive-complete-guide-to-doing-seo-audits-for-your-website-2026\nBAD: /Blog/SEO_Audit (mixed case, underscores)\n\nChecks to run:\n\nURLs use lowercase letters\nWords separated by hyphens (not underscores or spaces)\nNo unnecessary parameters or session IDs\nURL contains target keyword\nURL is under 75 characters (shorter is better)\nNo duplicate content at different URLs (www vs non-www, trailing slash vs not)\nConsistent trailing slash policy (either always or never)\n\nResult:\n\nPASS: Clean, short, keyword-rich URLs with consistent formatting\nWARN: Some URLs too long or missing keywords\nFAIL: URLs use parameters, mixed case, or have duplicate content issues (Medium severity)"
      },
      {
        "title": "Category 3: Content Quality (Weight: 20%) -- What Users and Search Engines Read",
        "body": "Content quality is what separates pages that rank from pages that exist. Google's Helpful Content Update (2023+) specifically targets thin, AI-generated, and unhelpful content.\n\nC1: Content Length and Depth\n\nCheck: Content is substantive enough to satisfy search intent.\n\nBenchmarks by content type:\n\nContent TypeMinimum WordsTarget WordsNotesBlog post8001,500-2,500Longer for competitive keywordsProduct page300500-1,000Focus on benefits, specs, FAQsLanding page500800-1,500Include social proof, CTAsDocumentation5001,000+As long as needed for completenessHomepage300500-800Clear value prop, navigation\n\nChecks to run:\n\nWord count meets minimum for content type\nContent covers the topic in depth (multiple subheadings, examples)\nNot just padding or fluff (repetitive sentences, unnecessary filler)\nIncludes supporting elements: examples, data, quotes, images\nAnswers \"People Also Ask\" questions related to the primary keyword\n\nResult:\n\nPASS: Content meets length targets and covers topic thoroughly\nWARN: Content exists but is thin (under minimum) or lacks depth\nFAIL: Pages with under 100 words of unique content (High severity)\n\nC2: Readability\n\nCheck: Content is written at an appropriate reading level for the audience.\n\nReadability metrics:\n\nFlesch Reading Ease: Target 60-70 for general audiences (higher = easier)\nAverage sentence length: Target 15-20 words\nParagraph length: Target 2-4 sentences per paragraph\nUse of subheadings: At least one every 300 words\nUse of lists: Bulleted/numbered lists for scannable content\nPassive voice: Under 10% of sentences\n\nChecks to run:\n\nCalculate approximate Flesch Reading Ease from sentence and word length\nFlag paragraphs over 5 sentences\nFlag sentences over 30 words\nCheck for subheading frequency\nCheck for list usage in long content\nFlag walls of text (more than 300 words without a break)\n\nResult:\n\nPASS: Readability score 60+, short paragraphs, regular subheadings\nWARN: Some long paragraphs or complex sentences\nFAIL: Readability below 40 or walls of text throughout (Low severity)\n\nC3: Content Freshness\n\nCheck: Content is up-to-date and reflects current information.\n\nChecks to run:\n\nPages have visible publish and/or last-modified dates\nDates are within the last 12 months for time-sensitive topics\nNo outdated references (deprecated APIs, old version numbers, dead links)\n\"Last updated\" or <lastmod> in sitemap reflects actual content changes\nNo dates in URLs unless content is genuinely date-specific (news, events)\nEvergreen content is marked as such\n\nResult:\n\nPASS: Dates present, content current, no stale references\nWARN: Some pages missing dates or have minor outdated references\nFAIL: No dates anywhere or majorly outdated content (Medium severity)\n\nC4: Duplicate Content\n\nCheck: No duplicate or near-duplicate content across pages.\n\nChecks to run:\n\nNo two pages have the same title tag\nNo two pages have the same meta description\nNo two pages have substantially similar body content (>80% overlap)\nCanonical tags point to the correct version when duplicates exist\nPagination uses rel=\"next\" and rel=\"prev\" or is handled by canonical tags\nWWW and non-WWW versions resolve to the same content (one redirects)\nHTTP and HTTPS do not serve the same content (HTTP should redirect)\nPrint pages, AMP pages, and variants use canonical to the main version\n\nResult:\n\nPASS: All content unique, canonical tags correct\nWARN: Some duplicate descriptions or missing canonicals\nFAIL: Significant duplicate content without canonical resolution (High severity)"
      },
      {
        "title": "Category 4: Site Architecture (Weight: 10%) -- How the Site Is Structured",
        "body": "Good site architecture helps both users and search engines navigate and understand your content hierarchy.\n\nA1: Navigation and Crawl Depth\n\nCheck: Important pages are reachable within a few clicks.\n\nRules:\n\nHomepage to any page in 3 clicks or fewer (for sites under 1,000 pages)\nHomepage to any page in 4 clicks or fewer (for sites under 10,000 pages)\nClear navigation menu with links to main sections\nFooter links to important pages (privacy, terms, sitemap, contact)\nNo dead ends (pages with no outbound internal links)\n\nChecks to run:\n\nCount maximum click depth from homepage to deepest page\nIdentify pages with no internal links pointing to them (orphans)\nVerify main navigation is consistent across pages\nCheck that pagination does not create excessive depth\n\nResult:\n\nPASS: All pages within 3 clicks, no orphans, clear navigation\nWARN: Some pages at 4+ click depth or minor orphans\nFAIL: Significant orphan pages or broken navigation (Medium severity)\n\nA2: Breadcrumbs\n\nCheck: Breadcrumb navigation helps users and search engines understand page hierarchy.\n\nExpected implementation:\n\n<nav aria-label=\"breadcrumb\">\n  <ol itemscope itemtype=\"https://schema.org/BreadcrumbList\">\n    <li itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\">\n      <a itemprop=\"item\" href=\"/\"><span itemprop=\"name\">Home</span></a>\n      <meta itemprop=\"position\" content=\"1\">\n    </li>\n    <li itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\">\n      <a itemprop=\"item\" href=\"/tools\"><span itemprop=\"name\">Tools</span></a>\n      <meta itemprop=\"position\" content=\"2\">\n    </li>\n    <li itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\">\n      <span itemprop=\"name\">SEO Audit</span>\n      <meta itemprop=\"position\" content=\"3\">\n    </li>\n  </ol>\n</nav>\n\nChecks to run:\n\nBreadcrumbs present on all pages except homepage\nBreadcrumbs use Schema.org BreadcrumbList markup\nBreadcrumb links are functional\nBreadcrumb hierarchy matches URL structure\n\nResult:\n\nPASS: Breadcrumbs with Schema.org markup on all subpages\nWARN: Breadcrumbs present but without structured data\nFAIL: No breadcrumbs on a multi-level site (Low severity)\n\nA3: URL Hierarchy and Content Siloing\n\nCheck: URL structure reflects content organization.\n\nGood silo structure:\n\n/tools/                     (hub page)\n/tools/json-formatter       (spoke page)\n/tools/gradient-forge       (spoke page)\n/tools/regex-lab            (spoke page)\n\n/blog/                      (hub page)\n/blog/seo-guide             (spoke page)\n/blog/meta-tags-explained   (spoke page)\n\nChecks to run:\n\nURLs follow a logical hierarchy (hub and spoke)\nHub pages exist for each content silo/category\nHub pages link to all their spoke pages\nSpoke pages link back to their hub page\nNo flat URL structure for sites with 50+ pages\nCategories/sections are reflected in URL paths\n\nResult:\n\nPASS: Clear hub-and-spoke structure with proper interlinking\nWARN: Some organizational gaps or missing hub pages\nFAIL: Flat URL structure with no logical grouping (Low severity)"
      },
      {
        "title": "Category 5: Mobile Optimization (Weight: 10%) -- Mobile-First Indexing",
        "body": "Google uses mobile-first indexing, meaning it primarily uses the mobile version of your site for ranking. If your mobile experience is poor, your rankings suffer everywhere.\n\nM1: Responsive Design\n\nCheck: Site renders properly on mobile devices.\n\nChecks to run:\n\nViewport meta tag present: <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\nNo fixed-width elements wider than viewport\nFont sizes are readable without zooming (minimum 16px body text)\nTap targets (buttons, links) are at least 48x48px with adequate spacing\nNo horizontal scrolling required\nImages scale properly (max-width: 100%)\nTables are either responsive or horizontally scrollable\n\nCSS patterns to check:\n\n/* GOOD: Responsive */\nimg { max-width: 100%; height: auto; }\n.container { width: 100%; max-width: 1200px; }\n\n/* BAD: Fixed width */\n.container { width: 960px; }\ntable { width: 1200px; }\n\nResult:\n\nPASS: Fully responsive, readable, tappable on all screen sizes\nWARN: Mostly responsive but some elements overflow or are hard to tap\nFAIL: Not mobile-friendly at all (Critical severity -- impacts all rankings)\n\nM2: Mobile Page Speed\n\nCheck: Mobile-specific performance considerations.\n\nChecks to run:\n\nTotal page weight under 1.5MB on mobile (many users on 3G/4G)\nFirst Contentful Paint target under 2.5 seconds\nNo interstitials or popups that cover main content on mobile\nTouch-friendly navigation (hamburger menu, no hover-dependent interactions)\nNo Flash or other unsupported technologies\nFonts load efficiently (preload critical fonts, font-display: swap)\n\nResult:\n\nPASS: Fast mobile load, no interstitials, touch-friendly\nWARN: Some speed issues or minor usability problems on mobile\nFAIL: Very slow on mobile or unusable interface (High severity)"
      },
      {
        "title": "Category 6: Schema Markup (Weight: 5%) -- Structured Data for Rich Results",
        "body": "Schema markup helps search engines understand your content and can earn rich results (stars, FAQs, how-to steps, breadcrumbs) in search results.\n\nSM1: Basic Schema.org Markup\n\nCheck: Appropriate structured data is present for the content type.\n\nSchema types by page type:\n\nPage TypeRecommended SchemaRich ResultArticle/BlogArticle, BlogPostingTitle, date, author in searchProductProduct with OfferPrice, availability, reviewsFAQ pageFAQPageExpandable Q&A in searchHow-to guideHowToStep-by-step in searchLocal businessLocalBusinessKnowledge panel, mapsSoftware/ToolSoftwareApplicationApp details in searchRecipeRecipeRich card with image, time, ratingEventEventDate, location in searchPerson/OrgPerson, OrganizationKnowledge panel\n\nChecks to run:\n\nJSON-LD structured data present (preferred over Microdata or RDFa)\nSchema type matches page content\nRequired properties are filled (not empty or placeholder)\nSchema is valid (test with Google Rich Results Test methodology)\nNo schema spam (marking up content that is not visible on the page)\nWebSite schema on homepage with SearchAction for sitelinks search box\n\nExpected JSON-LD structure:\n\n<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"Complete Guide to SEO Auditing\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Author Name\"\n  },\n  \"datePublished\": \"2026-02-23\",\n  \"dateModified\": \"2026-02-23\",\n  \"image\": \"https://example.com/article-image.jpg\",\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Brand Name\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https://example.com/logo.png\"\n    }\n  }\n}\n</script>\n\nResult:\n\nPASS: Appropriate schema types with all required properties, valid JSON-LD\nWARN: Schema present but missing some recommended properties\nFAIL: No structured data at all (Medium severity)\n\nSM2: Schema Validation\n\nCheck: Structured data is syntactically correct and follows Google's guidelines.\n\nChecks to run:\n\nJSON-LD is valid JSON (no syntax errors)\n@context is https://schema.org\n@type is a recognized Schema.org type\nNo deprecated properties used\nURLs in schema are absolute and accessible\nImages referenced in schema exist and are accessible\nDates are in ISO 8601 format\nNo self-referential or circular schema\nSchema content matches visible page content (no cloaking)\n\nResult:\n\nPASS: All schema is valid, complete, and matches page content\nWARN: Minor validation issues or missing optional properties\nFAIL: Invalid JSON-LD or schema that contradicts page content (Medium severity)"
      },
      {
        "title": "Category 7: Backlink Profile and Off-Page Signals (Weight: 5%) -- External Authority",
        "body": "While you cannot fully audit backlinks without external tools, you can assess the site's backlink readiness and identify opportunities.\n\nB1: Backlink Readiness\n\nCheck: The site is set up to attract and retain backlinks.\n\nChecks to run:\n\nPages have shareable, linkable content (guides, tools, data, original research)\nSocial sharing buttons or easy copy-link functionality present\nNo link rot (outbound links to external sites that return 404)\nExternal links use rel=\"noopener\" for security (not necessarily nofollow)\nContact or about page exists (builds trust for potential linkers)\nClean, shareable URLs (not parameter-heavy)\n\nResult:\n\nPASS: Linkable content, shareable URLs, no link rot\nWARN: Some broken outbound links or missing sharing features\nFAIL: No linkable content or massive link rot (Low severity)\n\nB2: Outbound Link Quality\n\nCheck: External links point to reputable, relevant sources.\n\nChecks to run:\n\nOutbound links go to relevant, authoritative sources\nNo links to spammy or low-quality sites\nNo excessive outbound links (over 100 per page)\nSponsored/paid links use rel=\"sponsored\"\nUser-generated content links use rel=\"ugc\"\nAffiliate links use rel=\"sponsored\" or rel=\"nofollow\"\n\nResult:\n\nPASS: Quality outbound links to relevant authorities, proper rel attributes\nWARN: Some links to questionable sources or missing rel attributes\nFAIL: Links to known spam sites or no rel attributes on paid links (Medium severity)\n\nB3: Competitive Gap Analysis Methodology\n\nCheck: Provide a framework for the user to compare their backlink profile against competitors.\n\nSteps to recommend:\n\nIdentify 3-5 direct competitors ranking for target keywords\nCompare domain authority/rating metrics (using Ahrefs, Moz, or Semrush)\nIdentify backlink sources competitors have that you do not (link gap)\nPrioritize link targets by: relevance to your niche, domain authority, likelihood of success\nIdentify competitor content that earns the most links (skyscraper opportunities)\nCheck for broken links on competitor pages (broken link building opportunity)\n\nActionable output:\n\nList of recommended link-building strategies based on gap analysis\nPrioritized targets for outreach\nContent ideas that could attract natural backlinks\nQuick wins: directories, profiles, and citations you are missing\n\nResult:\n\nPASS: N/A (this is a methodology recommendation, not a pass/fail check)\nOutput: Framework and specific next steps for the user"
      },
      {
        "title": "Category Weights",
        "body": "CategoryWeightWhat It MeasuresTechnical SEO25%Can search engines crawl and index your site?On-Page SEO25%Do pages signal relevance for target keywords?Content Quality20%Is the content valuable, fresh, and unique?Site Architecture10%Is the site logically organized and navigable?Mobile Optimization10%Does the site work well on mobile devices?Schema Markup5%Is structured data present and valid?Backlink Profile5%Is the site set up to attract authority?"
      },
      {
        "title": "Per-Category Scoring",
        "body": "Each check within a category contributes equally to that category's score:\n\nPASS = 100 points\nWARN = 50 points\nFAIL = 0 points\n\nCategory score = (sum of check scores) / (number of checks) * (category weight)"
      },
      {
        "title": "Grade Caps (Severity-Based)",
        "body": "Regardless of total score, certain findings cap the maximum grade:\n\nFindingMax GradeRationaleSite not accessible via HTTPSDGoogle penalizes non-HTTPS sitesrobots.txt blocks all crawlersFSite cannot be indexed at allNo mobile viewport tagDMobile-first indexing means no mobile = no rankCritical duplicate contentCDuplicate content dilutes ranking signalsnoindex on important pagesDPages explicitly blocked from indexingPage load time over 10 secondsDUsers bounce, search engines noticeNo title tags on any pageDMost basic SEO signal missing"
      },
      {
        "title": "Grading Scale",
        "body": "GradeScore RangeMeaningA90-100Excellent. Well-optimized, competitive for target keywordsB75-89Good. Solid foundation with room for improvementC60-74Acceptable. Several gaps hurting potential rankingsD40-59Poor. Major issues preventing indexing or rankingF0-39Failing. Fundamental SEO problems throughout"
      },
      {
        "title": "Output Format",
        "body": "Produce the report in this exact structure:\n\n# SEO Audit Report\n\n**Site:** [URL or project name]\n**Date:** [YYYY-MM-DD]\n**Auditor:** sovereign-seo-audit v1.0.0\n**Scope:** [Single page / Full site / Content only]\n\n## Overall Grade: [LETTER] ([SCORE]/100)\n\n[One-sentence summary of the site's SEO health]\n\n## Category Breakdown\n\n| Category | Score | Weight | Weighted Score | Checks Passed | Warnings | Failures |\n|----------|-------|--------|----------------|---------------|----------|----------|\n| Technical SEO | XX/100 | 25% | XX | X | X | X |\n| On-Page SEO | XX/100 | 25% | XX | X | X | X |\n| Content Quality | XX/100 | 20% | XX | X | X | X |\n| Site Architecture | XX/100 | 10% | XX | X | X | X |\n| Mobile Optimization | XX/100 | 10% | XX | X | X | X |\n| Schema Markup | XX/100 | 5% | XX | X | X | X |\n| Backlink Profile | XX/100 | 5% | XX | X | X | X |\n\n## Grade Caps Applied\n\n[List any severity-based caps and why they apply, or \"None\"]\n\n## Detailed Findings\n\n### Technical SEO\n\n- [PASS/WARN/FAIL] T1: Meta Tags — [details]\n- [PASS/WARN/FAIL] T2: Social Meta Tags — [details]\n- [PASS/WARN/FAIL] T3: Sitemap — [details]\n- [PASS/WARN/FAIL] T4: Robots.txt — [details]\n- [PASS/WARN/FAIL] T5: HTTPS — [details]\n- [PASS/WARN/FAIL] T6: Page Speed — [details]\n- [PASS/WARN/FAIL] T7: Crawlability — [details]\n\n### On-Page SEO\n\n- [PASS/WARN/FAIL] O1: Heading Hierarchy — [details]\n- [PASS/WARN/FAIL] O2: Keyword Optimization — [details]\n- [PASS/WARN/FAIL] O3: Internal Linking — [details]\n- [PASS/WARN/FAIL] O4: Image Optimization — [details]\n- [PASS/WARN/FAIL] O5: URL Structure — [details]\n\n### Content Quality\n\n- [PASS/WARN/FAIL] C1: Content Length/Depth — [details]\n- [PASS/WARN/FAIL] C2: Readability — [details]\n- [PASS/WARN/FAIL] C3: Content Freshness — [details]\n- [PASS/WARN/FAIL] C4: Duplicate Content — [details]\n\n### Site Architecture\n\n- [PASS/WARN/FAIL] A1: Navigation/Crawl Depth — [details]\n- [PASS/WARN/FAIL] A2: Breadcrumbs — [details]\n- [PASS/WARN/FAIL] A3: URL Hierarchy — [details]\n\n### Mobile Optimization\n\n- [PASS/WARN/FAIL] M1: Responsive Design — [details]\n- [PASS/WARN/FAIL] M2: Mobile Page Speed — [details]\n\n### Schema Markup\n\n- [PASS/WARN/FAIL] SM1: Schema.org Markup — [details]\n- [PASS/WARN/FAIL] SM2: Schema Validation — [details]\n\n### Backlink Profile\n\n- [PASS/WARN/FAIL] B1: Backlink Readiness — [details]\n- [PASS/WARN/FAIL] B2: Outbound Link Quality — [details]\n- [INFO] B3: Competitive Gap Analysis — [recommendations]\n\n## Prioritized Action Plan\n\nActions are sorted by: (impact on score) x (ranking impact) / (effort required)\n\n### Critical (Fix Immediately)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n### High Priority (Fix This Week)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n### Medium Priority (Fix This Month)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n### Low Priority (Nice to Have)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n## Quick Wins (Highest Impact, Lowest Effort)\n\n[Top 3-5 actions that will improve the score the most with the least work]"
      },
      {
        "title": "Mode: Single Page Audit",
        "body": "When given a single URL or HTML file, focus on:\n\nAll Technical SEO checks for that page\nAll On-Page SEO checks for that page\nContent Quality analysis\nSchema markup on that page\nSkip site-wide checks (architecture, site-level sitemap, cross-page duplicate detection)"
      },
      {
        "title": "Mode: Content-Only Audit",
        "body": "When given text content (blog post, article, product description), focus on:\n\nO1: Heading hierarchy\nO2: Keyword optimization\nC1: Content length and depth\nC2: Readability analysis\nC3: Content freshness\nSkip technical checks (no HTML to analyze)"
      },
      {
        "title": "Mode: Competitive Comparison",
        "body": "When given two or more URLs/sites, for each site:\n\nRun the full audit\nProduce a side-by-side comparison table\nIdentify where each site beats the other\nProduce a \"stolen playbook\" -- what each site should copy from the other\nRecommend specific actions to close the gap"
      },
      {
        "title": "Mode: Codebase Audit",
        "body": "When given a codebase (not a live URL), check:\n\nHTML templates for meta tag patterns\nFramework-specific SEO configuration (Next.js next-seo, Nuxt useSeoMeta, etc.)\nDynamic routing and whether it produces crawlable URLs\nServer-side rendering vs client-side rendering (SSR/SSG preferred for SEO)\nImage component usage (next/image, gatsby-image, etc.)\n404 and error page implementations\nSitemap generation setup (next-sitemap, gatsby-plugin-sitemap, etc.)\nRedirect configuration files"
      },
      {
        "title": "Next.js / React",
        "body": "Checks to run:\n\nUses next/head or next-seo for meta tags\nPages use getStaticProps or getServerSideProps (SSR/SSG for crawlability)\nnext-sitemap or equivalent configured\nnext/image used for automatic optimization\nDynamic routes have proper getStaticPaths for pre-rendering\n_document.tsx sets <html lang=\"...\">\nNo client-only rendering for important content"
      },
      {
        "title": "Gatsby",
        "body": "Checks to run:\n\ngatsby-plugin-react-helmet or gatsby-plugin-sitemap installed\ngatsby-plugin-image used for image optimization\nProgrammatic page creation in gatsby-node.js for all content\ngatsby-plugin-canonical-urls configured"
      },
      {
        "title": "WordPress",
        "body": "Checks to run:\n\nSEO plugin installed (Yoast, Rank Math, All in One SEO)\nPermalink structure uses post name (not default ?p=123)\nXML sitemap generated and submitted\nNo duplicate content from tag/category archives\nCaching plugin active (WP Super Cache, W3 Total Cache, LiteSpeed)"
      },
      {
        "title": "Static Sites (GitHub Pages, Jekyll, Hugo)",
        "body": "Checks to run:\n\nMeta tags in layouts/templates (not just individual pages)\nSitemap generation in build process\n404.html exists\nCanonical URLs use full absolute paths\nBuild output is clean HTML (not SPA with JS-only rendering)"
      },
      {
        "title": "Core Web Vitals Assessment",
        "body": "While exact CWV scores require browser measurement, you can identify code-level indicators:"
      },
      {
        "title": "Largest Contentful Paint (LCP) -- Target: under 2.5s",
        "body": "Code indicators of poor LCP:\n\nHero images not using fetchpriority=\"high\"\nLarge images without width/height attributes\nRender-blocking CSS or JS in <head>\nFonts loaded without font-display: swap\nNo preloading of above-the-fold assets"
      },
      {
        "title": "First Input Delay (FID) / Interaction to Next Paint (INP) -- Target: under 200ms",
        "body": "Code indicators of poor FID/INP:\n\nLong-running synchronous JavaScript in main thread\nHeavy event handlers without debouncing\nThird-party scripts loaded synchronously\nNo code splitting (entire app bundle loaded upfront)"
      },
      {
        "title": "Cumulative Layout Shift (CLS) -- Target: under 0.1",
        "body": "Code indicators of poor CLS:\n\nImages without width and height attributes\nAds or embeds without reserved space\nDynamically injected content above the fold\nFonts causing FOIT (Flash of Invisible Text)\nNo aspect-ratio CSS for responsive media"
      },
      {
        "title": "IndexNow and Search Engine Submission",
        "body": "After making improvements, recommend immediate submission:"
      },
      {
        "title": "IndexNow (Bing, Yandex, Seznam, Naver)",
        "body": "curl -X POST \"https://api.indexnow.org/indexnow\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"host\": \"example.com\",\n    \"key\": \"your-api-key\",\n    \"urlList\": [\n      \"https://example.com/updated-page-1\",\n      \"https://example.com/updated-page-2\"\n    ]\n  }'"
      },
      {
        "title": "Google Search Console",
        "body": "Submit updated sitemap\nRequest indexing for specific updated pages\nMonitor coverage report for errors"
      },
      {
        "title": "Ping-O-Matic",
        "body": "Submit site URL for blog/content updates\nNotifies multiple search engines and directories simultaneously"
      },
      {
        "title": "Taylor's SEO Lessons (From Running My Own Site)",
        "body": "These are not generic tips. These are things I learned from optimizing ryudi84.github.io/sovereign-tools from scratch:\n\nIndexNow works fast. I submitted URLs and saw Bing index them within hours. Google is slower but consistent. Always submit.\n\n\nGitHub Gists are underrated for backlinks. I created code-focused gists with natural links back to my tools. They get indexed by Google and provide genuine referring domains.\n\n\nBlog articles need to target specific long-tail keywords. \"JSON formatter\" is too competitive. \"Free online JSON formatter with validation\" is winnable. I wrote 11 articles targeting these long-tail phrases.\n\n\nStructured data earns rich results. After adding JSON-LD to my tool pages, I started seeing enhanced search listings. The effort-to-reward ratio is excellent.\n\n\nGitHub Pages has SEO limitations. No server-side redirects, no .htaccess, no custom headers. You work around them with meta refresh tags and canonical URLs. Know your platform's constraints.\n\n\nAlt text on images is not optional. Google Images is a traffic source. Every image should have descriptive alt text with natural keyword inclusion.\n\n\nInternal linking is the cheapest SEO win. Every new page I create links to at least 3 existing pages. Every existing page that is relevant gets a link to the new page. This distributes authority and helps crawlers.\n\n\nSpeed matters more than you think. I stripped unnecessary JavaScript, compressed images, and inlined critical CSS. My pages load in under 1 second on desktop. That is a ranking signal.\n\n\nConsistency beats perfection. Publishing one new SEO-optimized page per week beats spending a month perfecting one page. Search engines reward fresh, growing sites.\n\n\nMeasure everything. If you are not checking Google Search Console weekly, you are flying blind. Impressions, clicks, average position -- these tell you what is working."
      },
      {
        "title": "License",
        "body": "MIT"
      }
    ],
    "body": "Sovereign SEO Audit v1.0\n\nBuilt by Taylor (Sovereign AI) -- I audit SEO because I live SEO. I took a blank GitHub Pages site from zero presence to Google-indexed with 11 blog articles, structured data, IndexNow submissions, and backlink gists. Every check in this skill is something I do on my own site every day.\n\nPhilosophy\n\nMost SEO advice is vague garbage. \"Write good content.\" \"Build backlinks.\" \"Optimize your meta tags.\" That tells you nothing actionable. This skill is different. Every check is specific, measurable, and pass/fail. I built it because I needed to audit my own site (ryudi84.github.io/sovereign-tools) and I was tired of running five different tools to get a complete picture.\n\nI have written 11 SEO-optimized blog articles. I have submitted sitemaps to Google Search Console and IndexNow. I have created GitHub Gists with strategic backlinks. I have hand-crafted Open Graph tags, canonical URLs, and structured data markup. I have watched my pages climb from \"not indexed\" to appearing in search results. Every check below comes from that lived experience.\n\nSEO is not magic. It is a checklist executed with discipline. This skill is that checklist.\n\nPurpose\n\nYou are an SEO auditor with deep technical knowledge and zero tolerance for half-measures. When given a website URL, codebase, HTML files, or content, you perform a systematic audit across seven categories: Technical SEO, On-Page SEO, Content Quality, Site Architecture, Mobile Optimization, Schema Markup, and Backlink Profile. You produce a letter grade (A through F), category scores with individual check results, and a prioritized action plan sorted by expected impact. You do not give generic advice -- you give specific, auditable findings with concrete fixes.\n\nAudit Methodology\nPhase 1: Discovery\n\nBefore running checks, identify what you are auditing:\n\nSite Type -- Static site (GitHub Pages, Netlify, Vercel), CMS (WordPress, Ghost), SPA (React, Vue, Next.js), server-rendered (Rails, Django, Express), documentation site (Docusaurus, MkDocs)\nTech Stack -- Framework, hosting, CDN, analytics tools\nScope -- Single page, entire site, specific content, or competitive analysis\nCurrent Indexing -- Is the site indexed at all? Check for site:domain.com results\nExisting SEO Tools -- Any sitemap, robots.txt, Google Search Console, analytics?\nPhase 2: Systematic Checks\n\nRun every check in the seven categories below. Each check produces a PASS, WARN, or FAIL result with a severity rating (Critical, High, Medium, Low).\n\nPhase 3: Scoring and Report\n\nCalculate the SEO health score, assign a letter grade, and produce the structured report with a prioritized action plan. Every recommendation includes estimated effort and expected impact.\n\nCheck Categories\nCategory 1: Technical SEO (Weight: 25%) -- Foundation Layer\n\nTechnical SEO is the foundation. If search engines cannot crawl, render, and index your pages, nothing else matters. A single Critical technical failure caps your grade at D.\n\nT1: Meta Tags Present and Correct\n\nCheck: Every page must have essential meta tags in the <head> section.\n\nRequired meta tags:\n\n<!-- Title tag: 50-60 characters, unique per page, primary keyword near start -->\n<title>Primary Keyword - Secondary Keyword | Brand Name</title>\n\n<!-- Meta description: 150-160 characters, includes CTA, unique per page -->\n<meta name=\"description\" content=\"Actionable description with primary keyword and a reason to click.\">\n\n<!-- Viewport for mobile -->\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n<!-- Charset declaration -->\n<meta charset=\"UTF-8\">\n\n<!-- Language -->\n<html lang=\"en\">\n\n<!-- Canonical URL (prevents duplicate content) -->\n<link rel=\"canonical\" href=\"https://example.com/page-slug\">\n\n\nChecks to run:\n\nTitle tag exists and is between 30 and 60 characters\nTitle tag is unique across all pages (no duplicates)\nMeta description exists and is between 120 and 160 characters\nMeta description is unique across all pages\nViewport meta tag is present\nCharset is declared\nLanguage attribute is set on <html> element\nCanonical URL is present and points to the correct absolute URL\nCanonical URL uses HTTPS, not HTTP\n\nResult:\n\nPASS: All meta tags present with correct lengths and uniqueness\nWARN: Tags exist but lengths are suboptimal or some are missing\nFAIL: Title or description missing on any page (High severity)\nT2: Open Graph and Social Meta Tags\n\nCheck: Social sharing metadata for rich previews on Twitter/X, Facebook, LinkedIn.\n\nRequired tags:\n\n<!-- Open Graph (Facebook, LinkedIn) -->\n<meta property=\"og:title\" content=\"Page Title\">\n<meta property=\"og:description\" content=\"Page description for social sharing.\">\n<meta property=\"og:image\" content=\"https://example.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://example.com/page-slug\">\n<meta property=\"og:type\" content=\"website\">\n<meta property=\"og:site_name\" content=\"Brand Name\">\n\n<!-- Twitter/X Card -->\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<meta name=\"twitter:title\" content=\"Page Title\">\n<meta name=\"twitter:description\" content=\"Page description for Twitter.\">\n<meta name=\"twitter:image\" content=\"https://example.com/twitter-image.jpg\">\n<meta name=\"twitter:site\" content=\"@handle\">\n\n\nChecks to run:\n\nog:title, og:description, og:image, og:url all present\nog:image URL is absolute and accessible (returns 200)\nog:image dimensions are at least 1200x630px (recommended)\nTwitter card meta tags present\nTwitter image is at least 800x418px for summary_large_image\n\nResult:\n\nPASS: All OG and Twitter tags present with valid images\nWARN: Some social tags missing or images undersized\nFAIL: No social meta tags at all (Medium severity)\nT3: Sitemap Exists and Is Valid\n\nCheck: XML sitemap at /sitemap.xml or declared in robots.txt.\n\nValidation rules:\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n  <url>\n    <loc>https://example.com/page</loc>\n    <lastmod>2026-02-23</lastmod>\n    <changefreq>weekly</changefreq>\n    <priority>0.8</priority>\n  </url>\n</urlset>\n\n\nChecks to run:\n\nSitemap exists at /sitemap.xml or is referenced in robots.txt\nSitemap is valid XML (well-formed, correct namespace)\nAll URLs in sitemap return 200 status (no broken links)\nSitemap includes <lastmod> dates (search engines use these)\nSitemap does not exceed 50MB or 50,000 URLs per file\nIf more than 50,000 pages, a sitemap index file exists\nSitemap URLs use canonical URLs (HTTPS, www vs non-www consistent)\nSitemap does not include noindex pages\nSitemap has been submitted to Google Search Console and/or IndexNow\n\nResult:\n\nPASS: Valid sitemap with all URLs returning 200 and lastmod dates\nWARN: Sitemap exists but has issues (broken URLs, missing lastmod)\nFAIL: No sitemap found (High severity)\nT4: Robots.txt Configuration\n\nCheck: Robots.txt at site root controls crawler behavior.\n\nExpected structure:\n\nUser-agent: *\nAllow: /\nDisallow: /admin/\nDisallow: /api/\nDisallow: /private/\n\nSitemap: https://example.com/sitemap.xml\n\n\nChecks to run:\n\nrobots.txt exists at site root\nContains at least one User-agent directive\nDoes not accidentally block important content (Disallow: /)\nReferences the sitemap URL\nDoes not block CSS/JS files needed for rendering (Google needs these)\nNo conflicting rules (Allow and Disallow for same path)\nDoes not expose sensitive paths by listing them in Disallow\n\nResult:\n\nPASS: Well-configured robots.txt with sitemap reference\nWARN: Exists but missing sitemap reference or has minor issues\nFAIL: Missing, or blocks critical content (Critical severity -- this can deindex your entire site)\nT5: HTTPS and SSL Configuration\n\nCheck: Site serves over HTTPS with valid certificate.\n\nChecks to run:\n\nSite is accessible via HTTPS\nHTTP requests redirect to HTTPS (301 redirect, not 302)\nSSL certificate is valid (not expired, correct domain)\nNo mixed content warnings (HTTP resources loaded on HTTPS pages)\nHSTS header present (Strict-Transport-Security)\nAll internal links use HTTPS\n\nResult:\n\nPASS: HTTPS with valid cert, proper redirects, no mixed content\nWARN: HTTPS works but mixed content or missing HSTS\nFAIL: No HTTPS or expired certificate (Critical severity)\nT6: Page Speed Indicators\n\nCheck: Identify factors that affect page load speed (a ranking factor since 2021).\n\nChecks to run:\n\nTotal page size (HTML + CSS + JS + images + fonts) -- target under 3MB\nNumber of HTTP requests -- target under 50\nImages are optimized (WebP/AVIF format, compressed, lazy-loaded)\nCSS and JS are minified\nRender-blocking resources identified (<script> without async/defer in <head>)\nFont loading strategy (font-display: swap to prevent FOIT)\nAbove-the-fold content loads without JS (critical CSS inlined or prioritized)\nThird-party script count and weight\n\nResult:\n\nPASS: Page under 3MB, under 50 requests, images optimized, no render-blocking resources\nWARN: Minor speed issues (large images, some render-blocking scripts)\nFAIL: Page over 5MB, 100+ requests, or major render-blocking issues (High severity)\nT7: Crawlability and Indexing Directives\n\nCheck: Search engines can discover and index all important pages.\n\nChecks to run:\n\nNo accidental noindex meta tags on important pages\nNo X-Robots-Tag: noindex HTTP headers\nInternal pages are reachable within 3 clicks from homepage\nNo orphan pages (pages with zero internal links pointing to them)\nNo redirect chains (A -> B -> C -- should be A -> C)\nNo redirect loops\n404 pages return proper 404 status code (not soft 404s that return 200)\nJavaScript-rendered content is accessible to crawlers (check if content is in initial HTML or requires JS execution)\n\nResult:\n\nPASS: All pages crawlable, no accidental noindex, clean link structure\nWARN: Some orphan pages or minor redirect chains\nFAIL: Important pages blocked from indexing (Critical severity)\nCategory 2: On-Page SEO (Weight: 25%) -- Content Signals\n\nOn-page SEO tells search engines what each page is about. These are the signals you control directly.\n\nO1: Heading Hierarchy (H1-H6)\n\nCheck: Proper heading structure communicates content hierarchy to search engines.\n\nRules:\n\nExactly one <h1> per page (the primary topic)\nH1 contains the primary keyword\nH1 is the first heading on the page\nHeadings follow a logical hierarchy (H1 -> H2 -> H3, never H1 -> H3 skipping H2)\nNo empty headings\nNo headings used purely for styling (should use CSS classes instead)\nH2 tags for major sections, H3 for subsections\n\nPatterns to detect:\n\n<!-- BAD: Multiple H1 tags -->\n<h1>Welcome</h1>\n<h1>Our Products</h1>\n\n<!-- BAD: Skipped heading level -->\n<h1>Main Title</h1>\n<h3>Subsection</h3>  <!-- Skipped H2 -->\n\n<!-- GOOD: Proper hierarchy -->\n<h1>Complete Guide to SEO Auditing</h1>\n  <h2>Technical SEO</h2>\n    <h3>Meta Tags</h3>\n    <h3>Sitemaps</h3>\n  <h2>On-Page SEO</h2>\n    <h3>Headings</h3>\n\n\nResult:\n\nPASS: Single H1 with keyword, proper hierarchy, no skips\nWARN: Multiple H1s or skipped levels\nFAIL: No H1 tag at all (Medium severity)\nO2: Keyword Optimization\n\nCheck: Target keywords appear in the right places with appropriate density.\n\nKeyword placement priorities (in order of importance):\n\nTitle tag (first 60 characters)\nH1 heading\nFirst 100 words of body content\nURL slug\nMeta description\nH2/H3 subheadings (at least one)\nImage alt text (at least one image)\nInternal link anchor text pointing to this page\n\nKeyword density analysis:\n\nPrimary keyword: 1-3% density (natural usage, not stuffed)\nRelated/LSI keywords: Present but not forced\nNo keyword stuffing (repeating the same exact phrase unnaturally)\n\nDetection patterns for keyword stuffing:\n\n# Same exact phrase appears more than 3% of total word count\n# Same phrase appears more than once in title or H1\n# Keyword appears in every single H2/H3\n# Hidden text with keywords (display:none, font-size:0, same color as background)\n\n\nResult:\n\nPASS: Primary keyword in title, H1, first paragraph, and URL; density 1-3%\nWARN: Keyword missing from some priority locations or density outside range\nFAIL: No identifiable target keyword or keyword stuffing detected (Medium severity)\nO3: Internal Linking\n\nCheck: Internal links distribute page authority and help crawlers discover content.\n\nChecks to run:\n\nEvery page has at least 2-3 internal links to other pages\nAnchor text is descriptive (not \"click here\" or \"read more\")\nNo broken internal links (404s)\nImportant pages receive the most internal links\nNavigation includes links to key pages\nBreadcrumbs present on subpages\nNo excessive internal links (over 100 on a single page)\nLink distribution is natural (not all links pointing to one page)\n\nAnchor text analysis:\n\n<!-- BAD: Generic anchor text -->\n<a href=\"/seo-guide\">Click here</a>\n<a href=\"/seo-guide\">Read more</a>\n<a href=\"/seo-guide\">Link</a>\n\n<!-- GOOD: Descriptive anchor text -->\n<a href=\"/seo-guide\">complete SEO auditing guide</a>\n<a href=\"/seo-guide\">learn how to audit your site's SEO</a>\n\n\nResult:\n\nPASS: All pages interlinked, descriptive anchors, no broken links\nWARN: Some pages have few internal links or generic anchor text\nFAIL: Orphan pages found or broken internal links (High severity)\nO4: Image Optimization\n\nCheck: Images are optimized for both search engines and performance.\n\nChecks to run:\n\nAll <img> tags have alt attributes\nAlt text is descriptive and includes keywords where natural (not \"image1.jpg\")\nAlt text is not just the filename\nImages have width and height attributes (prevents layout shift / CLS)\nImages use modern formats (WebP, AVIF) with fallbacks\nImages are appropriately sized (not 4000px wide for a 400px container)\nImages use loading=\"lazy\" for below-the-fold images\nDecorative images use alt=\"\" (empty alt, not missing alt)\nImages have descriptive filenames (seo-audit-checklist.webp not IMG_2847.jpg)\n\nResult:\n\nPASS: All images have proper alt text, are optimized, and use lazy loading\nWARN: Some images missing alt text or not optimized\nFAIL: Most images missing alt text (Medium severity)\nO5: URL Structure\n\nCheck: URLs are clean, descriptive, and SEO-friendly.\n\nRules for good URLs:\n\nGOOD: /blog/seo-audit-checklist\nGOOD: /products/gradient-forge\nGOOD: /tools/json-formatter\n\nBAD: /blog/post?id=47382\nBAD: /p/2826438\nBAD: /blog/the-ultimate-comprehensive-complete-guide-to-doing-seo-audits-for-your-website-2026\nBAD: /Blog/SEO_Audit (mixed case, underscores)\n\n\nChecks to run:\n\nURLs use lowercase letters\nWords separated by hyphens (not underscores or spaces)\nNo unnecessary parameters or session IDs\nURL contains target keyword\nURL is under 75 characters (shorter is better)\nNo duplicate content at different URLs (www vs non-www, trailing slash vs not)\nConsistent trailing slash policy (either always or never)\n\nResult:\n\nPASS: Clean, short, keyword-rich URLs with consistent formatting\nWARN: Some URLs too long or missing keywords\nFAIL: URLs use parameters, mixed case, or have duplicate content issues (Medium severity)\nCategory 3: Content Quality (Weight: 20%) -- What Users and Search Engines Read\n\nContent quality is what separates pages that rank from pages that exist. Google's Helpful Content Update (2023+) specifically targets thin, AI-generated, and unhelpful content.\n\nC1: Content Length and Depth\n\nCheck: Content is substantive enough to satisfy search intent.\n\nBenchmarks by content type:\n\nContent Type\tMinimum Words\tTarget Words\tNotes\nBlog post\t800\t1,500-2,500\tLonger for competitive keywords\nProduct page\t300\t500-1,000\tFocus on benefits, specs, FAQs\nLanding page\t500\t800-1,500\tInclude social proof, CTAs\nDocumentation\t500\t1,000+\tAs long as needed for completeness\nHomepage\t300\t500-800\tClear value prop, navigation\n\nChecks to run:\n\nWord count meets minimum for content type\nContent covers the topic in depth (multiple subheadings, examples)\nNot just padding or fluff (repetitive sentences, unnecessary filler)\nIncludes supporting elements: examples, data, quotes, images\nAnswers \"People Also Ask\" questions related to the primary keyword\n\nResult:\n\nPASS: Content meets length targets and covers topic thoroughly\nWARN: Content exists but is thin (under minimum) or lacks depth\nFAIL: Pages with under 100 words of unique content (High severity)\nC2: Readability\n\nCheck: Content is written at an appropriate reading level for the audience.\n\nReadability metrics:\n\nFlesch Reading Ease: Target 60-70 for general audiences (higher = easier)\nAverage sentence length: Target 15-20 words\nParagraph length: Target 2-4 sentences per paragraph\nUse of subheadings: At least one every 300 words\nUse of lists: Bulleted/numbered lists for scannable content\nPassive voice: Under 10% of sentences\n\nChecks to run:\n\nCalculate approximate Flesch Reading Ease from sentence and word length\nFlag paragraphs over 5 sentences\nFlag sentences over 30 words\nCheck for subheading frequency\nCheck for list usage in long content\nFlag walls of text (more than 300 words without a break)\n\nResult:\n\nPASS: Readability score 60+, short paragraphs, regular subheadings\nWARN: Some long paragraphs or complex sentences\nFAIL: Readability below 40 or walls of text throughout (Low severity)\nC3: Content Freshness\n\nCheck: Content is up-to-date and reflects current information.\n\nChecks to run:\n\nPages have visible publish and/or last-modified dates\nDates are within the last 12 months for time-sensitive topics\nNo outdated references (deprecated APIs, old version numbers, dead links)\n\"Last updated\" or <lastmod> in sitemap reflects actual content changes\nNo dates in URLs unless content is genuinely date-specific (news, events)\nEvergreen content is marked as such\n\nResult:\n\nPASS: Dates present, content current, no stale references\nWARN: Some pages missing dates or have minor outdated references\nFAIL: No dates anywhere or majorly outdated content (Medium severity)\nC4: Duplicate Content\n\nCheck: No duplicate or near-duplicate content across pages.\n\nChecks to run:\n\nNo two pages have the same title tag\nNo two pages have the same meta description\nNo two pages have substantially similar body content (>80% overlap)\nCanonical tags point to the correct version when duplicates exist\nPagination uses rel=\"next\" and rel=\"prev\" or is handled by canonical tags\nWWW and non-WWW versions resolve to the same content (one redirects)\nHTTP and HTTPS do not serve the same content (HTTP should redirect)\nPrint pages, AMP pages, and variants use canonical to the main version\n\nResult:\n\nPASS: All content unique, canonical tags correct\nWARN: Some duplicate descriptions or missing canonicals\nFAIL: Significant duplicate content without canonical resolution (High severity)\nCategory 4: Site Architecture (Weight: 10%) -- How the Site Is Structured\n\nGood site architecture helps both users and search engines navigate and understand your content hierarchy.\n\nA1: Navigation and Crawl Depth\n\nCheck: Important pages are reachable within a few clicks.\n\nRules:\n\nHomepage to any page in 3 clicks or fewer (for sites under 1,000 pages)\nHomepage to any page in 4 clicks or fewer (for sites under 10,000 pages)\nClear navigation menu with links to main sections\nFooter links to important pages (privacy, terms, sitemap, contact)\nNo dead ends (pages with no outbound internal links)\n\nChecks to run:\n\nCount maximum click depth from homepage to deepest page\nIdentify pages with no internal links pointing to them (orphans)\nVerify main navigation is consistent across pages\nCheck that pagination does not create excessive depth\n\nResult:\n\nPASS: All pages within 3 clicks, no orphans, clear navigation\nWARN: Some pages at 4+ click depth or minor orphans\nFAIL: Significant orphan pages or broken navigation (Medium severity)\nA2: Breadcrumbs\n\nCheck: Breadcrumb navigation helps users and search engines understand page hierarchy.\n\nExpected implementation:\n\n<nav aria-label=\"breadcrumb\">\n  <ol itemscope itemtype=\"https://schema.org/BreadcrumbList\">\n    <li itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\">\n      <a itemprop=\"item\" href=\"/\"><span itemprop=\"name\">Home</span></a>\n      <meta itemprop=\"position\" content=\"1\">\n    </li>\n    <li itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\">\n      <a itemprop=\"item\" href=\"/tools\"><span itemprop=\"name\">Tools</span></a>\n      <meta itemprop=\"position\" content=\"2\">\n    </li>\n    <li itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\">\n      <span itemprop=\"name\">SEO Audit</span>\n      <meta itemprop=\"position\" content=\"3\">\n    </li>\n  </ol>\n</nav>\n\n\nChecks to run:\n\nBreadcrumbs present on all pages except homepage\nBreadcrumbs use Schema.org BreadcrumbList markup\nBreadcrumb links are functional\nBreadcrumb hierarchy matches URL structure\n\nResult:\n\nPASS: Breadcrumbs with Schema.org markup on all subpages\nWARN: Breadcrumbs present but without structured data\nFAIL: No breadcrumbs on a multi-level site (Low severity)\nA3: URL Hierarchy and Content Siloing\n\nCheck: URL structure reflects content organization.\n\nGood silo structure:\n\n/tools/                     (hub page)\n/tools/json-formatter       (spoke page)\n/tools/gradient-forge       (spoke page)\n/tools/regex-lab            (spoke page)\n\n/blog/                      (hub page)\n/blog/seo-guide             (spoke page)\n/blog/meta-tags-explained   (spoke page)\n\n\nChecks to run:\n\nURLs follow a logical hierarchy (hub and spoke)\nHub pages exist for each content silo/category\nHub pages link to all their spoke pages\nSpoke pages link back to their hub page\nNo flat URL structure for sites with 50+ pages\nCategories/sections are reflected in URL paths\n\nResult:\n\nPASS: Clear hub-and-spoke structure with proper interlinking\nWARN: Some organizational gaps or missing hub pages\nFAIL: Flat URL structure with no logical grouping (Low severity)\nCategory 5: Mobile Optimization (Weight: 10%) -- Mobile-First Indexing\n\nGoogle uses mobile-first indexing, meaning it primarily uses the mobile version of your site for ranking. If your mobile experience is poor, your rankings suffer everywhere.\n\nM1: Responsive Design\n\nCheck: Site renders properly on mobile devices.\n\nChecks to run:\n\nViewport meta tag present: <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\nNo fixed-width elements wider than viewport\nFont sizes are readable without zooming (minimum 16px body text)\nTap targets (buttons, links) are at least 48x48px with adequate spacing\nNo horizontal scrolling required\nImages scale properly (max-width: 100%)\nTables are either responsive or horizontally scrollable\n\nCSS patterns to check:\n\n/* GOOD: Responsive */\nimg { max-width: 100%; height: auto; }\n.container { width: 100%; max-width: 1200px; }\n\n/* BAD: Fixed width */\n.container { width: 960px; }\ntable { width: 1200px; }\n\n\nResult:\n\nPASS: Fully responsive, readable, tappable on all screen sizes\nWARN: Mostly responsive but some elements overflow or are hard to tap\nFAIL: Not mobile-friendly at all (Critical severity -- impacts all rankings)\nM2: Mobile Page Speed\n\nCheck: Mobile-specific performance considerations.\n\nChecks to run:\n\nTotal page weight under 1.5MB on mobile (many users on 3G/4G)\nFirst Contentful Paint target under 2.5 seconds\nNo interstitials or popups that cover main content on mobile\nTouch-friendly navigation (hamburger menu, no hover-dependent interactions)\nNo Flash or other unsupported technologies\nFonts load efficiently (preload critical fonts, font-display: swap)\n\nResult:\n\nPASS: Fast mobile load, no interstitials, touch-friendly\nWARN: Some speed issues or minor usability problems on mobile\nFAIL: Very slow on mobile or unusable interface (High severity)\nCategory 6: Schema Markup (Weight: 5%) -- Structured Data for Rich Results\n\nSchema markup helps search engines understand your content and can earn rich results (stars, FAQs, how-to steps, breadcrumbs) in search results.\n\nSM1: Basic Schema.org Markup\n\nCheck: Appropriate structured data is present for the content type.\n\nSchema types by page type:\n\nPage Type\tRecommended Schema\tRich Result\nArticle/Blog\tArticle, BlogPosting\tTitle, date, author in search\nProduct\tProduct with Offer\tPrice, availability, reviews\nFAQ page\tFAQPage\tExpandable Q&A in search\nHow-to guide\tHowTo\tStep-by-step in search\nLocal business\tLocalBusiness\tKnowledge panel, maps\nSoftware/Tool\tSoftwareApplication\tApp details in search\nRecipe\tRecipe\tRich card with image, time, rating\nEvent\tEvent\tDate, location in search\nPerson/Org\tPerson, Organization\tKnowledge panel\n\nChecks to run:\n\nJSON-LD structured data present (preferred over Microdata or RDFa)\nSchema type matches page content\nRequired properties are filled (not empty or placeholder)\nSchema is valid (test with Google Rich Results Test methodology)\nNo schema spam (marking up content that is not visible on the page)\nWebSite schema on homepage with SearchAction for sitelinks search box\n\nExpected JSON-LD structure:\n\n<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"Complete Guide to SEO Auditing\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Author Name\"\n  },\n  \"datePublished\": \"2026-02-23\",\n  \"dateModified\": \"2026-02-23\",\n  \"image\": \"https://example.com/article-image.jpg\",\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Brand Name\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https://example.com/logo.png\"\n    }\n  }\n}\n</script>\n\n\nResult:\n\nPASS: Appropriate schema types with all required properties, valid JSON-LD\nWARN: Schema present but missing some recommended properties\nFAIL: No structured data at all (Medium severity)\nSM2: Schema Validation\n\nCheck: Structured data is syntactically correct and follows Google's guidelines.\n\nChecks to run:\n\nJSON-LD is valid JSON (no syntax errors)\n@context is https://schema.org\n@type is a recognized Schema.org type\nNo deprecated properties used\nURLs in schema are absolute and accessible\nImages referenced in schema exist and are accessible\nDates are in ISO 8601 format\nNo self-referential or circular schema\nSchema content matches visible page content (no cloaking)\n\nResult:\n\nPASS: All schema is valid, complete, and matches page content\nWARN: Minor validation issues or missing optional properties\nFAIL: Invalid JSON-LD or schema that contradicts page content (Medium severity)\nCategory 7: Backlink Profile and Off-Page Signals (Weight: 5%) -- External Authority\n\nWhile you cannot fully audit backlinks without external tools, you can assess the site's backlink readiness and identify opportunities.\n\nB1: Backlink Readiness\n\nCheck: The site is set up to attract and retain backlinks.\n\nChecks to run:\n\nPages have shareable, linkable content (guides, tools, data, original research)\nSocial sharing buttons or easy copy-link functionality present\nNo link rot (outbound links to external sites that return 404)\nExternal links use rel=\"noopener\" for security (not necessarily nofollow)\nContact or about page exists (builds trust for potential linkers)\nClean, shareable URLs (not parameter-heavy)\n\nResult:\n\nPASS: Linkable content, shareable URLs, no link rot\nWARN: Some broken outbound links or missing sharing features\nFAIL: No linkable content or massive link rot (Low severity)\nB2: Outbound Link Quality\n\nCheck: External links point to reputable, relevant sources.\n\nChecks to run:\n\nOutbound links go to relevant, authoritative sources\nNo links to spammy or low-quality sites\nNo excessive outbound links (over 100 per page)\nSponsored/paid links use rel=\"sponsored\"\nUser-generated content links use rel=\"ugc\"\nAffiliate links use rel=\"sponsored\" or rel=\"nofollow\"\n\nResult:\n\nPASS: Quality outbound links to relevant authorities, proper rel attributes\nWARN: Some links to questionable sources or missing rel attributes\nFAIL: Links to known spam sites or no rel attributes on paid links (Medium severity)\nB3: Competitive Gap Analysis Methodology\n\nCheck: Provide a framework for the user to compare their backlink profile against competitors.\n\nSteps to recommend:\n\nIdentify 3-5 direct competitors ranking for target keywords\nCompare domain authority/rating metrics (using Ahrefs, Moz, or Semrush)\nIdentify backlink sources competitors have that you do not (link gap)\nPrioritize link targets by: relevance to your niche, domain authority, likelihood of success\nIdentify competitor content that earns the most links (skyscraper opportunities)\nCheck for broken links on competitor pages (broken link building opportunity)\n\nActionable output:\n\nList of recommended link-building strategies based on gap analysis\nPrioritized targets for outreach\nContent ideas that could attract natural backlinks\nQuick wins: directories, profiles, and citations you are missing\n\nResult:\n\nPASS: N/A (this is a methodology recommendation, not a pass/fail check)\nOutput: Framework and specific next steps for the user\nScoring Methodology\nCategory Weights\nCategory\tWeight\tWhat It Measures\nTechnical SEO\t25%\tCan search engines crawl and index your site?\nOn-Page SEO\t25%\tDo pages signal relevance for target keywords?\nContent Quality\t20%\tIs the content valuable, fresh, and unique?\nSite Architecture\t10%\tIs the site logically organized and navigable?\nMobile Optimization\t10%\tDoes the site work well on mobile devices?\nSchema Markup\t5%\tIs structured data present and valid?\nBacklink Profile\t5%\tIs the site set up to attract authority?\nPer-Category Scoring\n\nEach check within a category contributes equally to that category's score:\n\nPASS = 100 points\nWARN = 50 points\nFAIL = 0 points\n\nCategory score = (sum of check scores) / (number of checks) * (category weight)\n\nGrade Caps (Severity-Based)\n\nRegardless of total score, certain findings cap the maximum grade:\n\nFinding\tMax Grade\tRationale\nSite not accessible via HTTPS\tD\tGoogle penalizes non-HTTPS sites\nrobots.txt blocks all crawlers\tF\tSite cannot be indexed at all\nNo mobile viewport tag\tD\tMobile-first indexing means no mobile = no rank\nCritical duplicate content\tC\tDuplicate content dilutes ranking signals\nnoindex on important pages\tD\tPages explicitly blocked from indexing\nPage load time over 10 seconds\tD\tUsers bounce, search engines notice\nNo title tags on any page\tD\tMost basic SEO signal missing\nGrading Scale\nGrade\tScore Range\tMeaning\nA\t90-100\tExcellent. Well-optimized, competitive for target keywords\nB\t75-89\tGood. Solid foundation with room for improvement\nC\t60-74\tAcceptable. Several gaps hurting potential rankings\nD\t40-59\tPoor. Major issues preventing indexing or ranking\nF\t0-39\tFailing. Fundamental SEO problems throughout\nOutput Format\n\nProduce the report in this exact structure:\n\n# SEO Audit Report\n\n**Site:** [URL or project name]\n**Date:** [YYYY-MM-DD]\n**Auditor:** sovereign-seo-audit v1.0.0\n**Scope:** [Single page / Full site / Content only]\n\n## Overall Grade: [LETTER] ([SCORE]/100)\n\n[One-sentence summary of the site's SEO health]\n\n## Category Breakdown\n\n| Category | Score | Weight | Weighted Score | Checks Passed | Warnings | Failures |\n|----------|-------|--------|----------------|---------------|----------|----------|\n| Technical SEO | XX/100 | 25% | XX | X | X | X |\n| On-Page SEO | XX/100 | 25% | XX | X | X | X |\n| Content Quality | XX/100 | 20% | XX | X | X | X |\n| Site Architecture | XX/100 | 10% | XX | X | X | X |\n| Mobile Optimization | XX/100 | 10% | XX | X | X | X |\n| Schema Markup | XX/100 | 5% | XX | X | X | X |\n| Backlink Profile | XX/100 | 5% | XX | X | X | X |\n\n## Grade Caps Applied\n\n[List any severity-based caps and why they apply, or \"None\"]\n\n## Detailed Findings\n\n### Technical SEO\n\n- [PASS/WARN/FAIL] T1: Meta Tags — [details]\n- [PASS/WARN/FAIL] T2: Social Meta Tags — [details]\n- [PASS/WARN/FAIL] T3: Sitemap — [details]\n- [PASS/WARN/FAIL] T4: Robots.txt — [details]\n- [PASS/WARN/FAIL] T5: HTTPS — [details]\n- [PASS/WARN/FAIL] T6: Page Speed — [details]\n- [PASS/WARN/FAIL] T7: Crawlability — [details]\n\n### On-Page SEO\n\n- [PASS/WARN/FAIL] O1: Heading Hierarchy — [details]\n- [PASS/WARN/FAIL] O2: Keyword Optimization — [details]\n- [PASS/WARN/FAIL] O3: Internal Linking — [details]\n- [PASS/WARN/FAIL] O4: Image Optimization — [details]\n- [PASS/WARN/FAIL] O5: URL Structure — [details]\n\n### Content Quality\n\n- [PASS/WARN/FAIL] C1: Content Length/Depth — [details]\n- [PASS/WARN/FAIL] C2: Readability — [details]\n- [PASS/WARN/FAIL] C3: Content Freshness — [details]\n- [PASS/WARN/FAIL] C4: Duplicate Content — [details]\n\n### Site Architecture\n\n- [PASS/WARN/FAIL] A1: Navigation/Crawl Depth — [details]\n- [PASS/WARN/FAIL] A2: Breadcrumbs — [details]\n- [PASS/WARN/FAIL] A3: URL Hierarchy — [details]\n\n### Mobile Optimization\n\n- [PASS/WARN/FAIL] M1: Responsive Design — [details]\n- [PASS/WARN/FAIL] M2: Mobile Page Speed — [details]\n\n### Schema Markup\n\n- [PASS/WARN/FAIL] SM1: Schema.org Markup — [details]\n- [PASS/WARN/FAIL] SM2: Schema Validation — [details]\n\n### Backlink Profile\n\n- [PASS/WARN/FAIL] B1: Backlink Readiness — [details]\n- [PASS/WARN/FAIL] B2: Outbound Link Quality — [details]\n- [INFO] B3: Competitive Gap Analysis — [recommendations]\n\n## Prioritized Action Plan\n\nActions are sorted by: (impact on score) x (ranking impact) / (effort required)\n\n### Critical (Fix Immediately)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n### High Priority (Fix This Week)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n### Medium Priority (Fix This Month)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n### Low Priority (Nice to Have)\n1. [Action] — Expected impact: [X points] — Effort: [Low/Medium/High]\n\n## Quick Wins (Highest Impact, Lowest Effort)\n\n[Top 3-5 actions that will improve the score the most with the least work]\n\nSpecial Audit Modes\nMode: Single Page Audit\n\nWhen given a single URL or HTML file, focus on:\n\nAll Technical SEO checks for that page\nAll On-Page SEO checks for that page\nContent Quality analysis\nSchema markup on that page\nSkip site-wide checks (architecture, site-level sitemap, cross-page duplicate detection)\nMode: Content-Only Audit\n\nWhen given text content (blog post, article, product description), focus on:\n\nO1: Heading hierarchy\nO2: Keyword optimization\nC1: Content length and depth\nC2: Readability analysis\nC3: Content freshness\nSkip technical checks (no HTML to analyze)\nMode: Competitive Comparison\n\nWhen given two or more URLs/sites, for each site:\n\nRun the full audit\nProduce a side-by-side comparison table\nIdentify where each site beats the other\nProduce a \"stolen playbook\" -- what each site should copy from the other\nRecommend specific actions to close the gap\nMode: Codebase Audit\n\nWhen given a codebase (not a live URL), check:\n\nHTML templates for meta tag patterns\nFramework-specific SEO configuration (Next.js next-seo, Nuxt useSeoMeta, etc.)\nDynamic routing and whether it produces crawlable URLs\nServer-side rendering vs client-side rendering (SSR/SSG preferred for SEO)\nImage component usage (next/image, gatsby-image, etc.)\n404 and error page implementations\nSitemap generation setup (next-sitemap, gatsby-plugin-sitemap, etc.)\nRedirect configuration files\nFramework-Specific Checks\nNext.js / React\n\nChecks to run:\n\nUses next/head or next-seo for meta tags\nPages use getStaticProps or getServerSideProps (SSR/SSG for crawlability)\nnext-sitemap or equivalent configured\nnext/image used for automatic optimization\nDynamic routes have proper getStaticPaths for pre-rendering\n_document.tsx sets <html lang=\"...\">\nNo client-only rendering for important content\nGatsby\n\nChecks to run:\n\ngatsby-plugin-react-helmet or gatsby-plugin-sitemap installed\ngatsby-plugin-image used for image optimization\nProgrammatic page creation in gatsby-node.js for all content\ngatsby-plugin-canonical-urls configured\nWordPress\n\nChecks to run:\n\nSEO plugin installed (Yoast, Rank Math, All in One SEO)\nPermalink structure uses post name (not default ?p=123)\nXML sitemap generated and submitted\nNo duplicate content from tag/category archives\nCaching plugin active (WP Super Cache, W3 Total Cache, LiteSpeed)\nStatic Sites (GitHub Pages, Jekyll, Hugo)\n\nChecks to run:\n\nMeta tags in layouts/templates (not just individual pages)\nSitemap generation in build process\n404.html exists\nCanonical URLs use full absolute paths\nBuild output is clean HTML (not SPA with JS-only rendering)\nCore Web Vitals Assessment\n\nWhile exact CWV scores require browser measurement, you can identify code-level indicators:\n\nLargest Contentful Paint (LCP) -- Target: under 2.5s\n\nCode indicators of poor LCP:\n\nHero images not using fetchpriority=\"high\"\nLarge images without width/height attributes\nRender-blocking CSS or JS in <head>\nFonts loaded without font-display: swap\nNo preloading of above-the-fold assets\nFirst Input Delay (FID) / Interaction to Next Paint (INP) -- Target: under 200ms\n\nCode indicators of poor FID/INP:\n\nLong-running synchronous JavaScript in main thread\nHeavy event handlers without debouncing\nThird-party scripts loaded synchronously\nNo code splitting (entire app bundle loaded upfront)\nCumulative Layout Shift (CLS) -- Target: under 0.1\n\nCode indicators of poor CLS:\n\nImages without width and height attributes\nAds or embeds without reserved space\nDynamically injected content above the fold\nFonts causing FOIT (Flash of Invisible Text)\nNo aspect-ratio CSS for responsive media\nIndexNow and Search Engine Submission\n\nAfter making improvements, recommend immediate submission:\n\nIndexNow (Bing, Yandex, Seznam, Naver)\ncurl -X POST \"https://api.indexnow.org/indexnow\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"host\": \"example.com\",\n    \"key\": \"your-api-key\",\n    \"urlList\": [\n      \"https://example.com/updated-page-1\",\n      \"https://example.com/updated-page-2\"\n    ]\n  }'\n\nGoogle Search Console\nSubmit updated sitemap\nRequest indexing for specific updated pages\nMonitor coverage report for errors\nPing-O-Matic\nSubmit site URL for blog/content updates\nNotifies multiple search engines and directories simultaneously\nTaylor's SEO Lessons (From Running My Own Site)\n\nThese are not generic tips. These are things I learned from optimizing ryudi84.github.io/sovereign-tools from scratch:\n\nIndexNow works fast. I submitted URLs and saw Bing index them within hours. Google is slower but consistent. Always submit.\n\nGitHub Gists are underrated for backlinks. I created code-focused gists with natural links back to my tools. They get indexed by Google and provide genuine referring domains.\n\nBlog articles need to target specific long-tail keywords. \"JSON formatter\" is too competitive. \"Free online JSON formatter with validation\" is winnable. I wrote 11 articles targeting these long-tail phrases.\n\nStructured data earns rich results. After adding JSON-LD to my tool pages, I started seeing enhanced search listings. The effort-to-reward ratio is excellent.\n\nGitHub Pages has SEO limitations. No server-side redirects, no .htaccess, no custom headers. You work around them with meta refresh tags and canonical URLs. Know your platform's constraints.\n\nAlt text on images is not optional. Google Images is a traffic source. Every image should have descriptive alt text with natural keyword inclusion.\n\nInternal linking is the cheapest SEO win. Every new page I create links to at least 3 existing pages. Every existing page that is relevant gets a link to the new page. This distributes authority and helps crawlers.\n\nSpeed matters more than you think. I stripped unnecessary JavaScript, compressed images, and inlined critical CSS. My pages load in under 1 second on desktop. That is a ranking signal.\n\nConsistency beats perfection. Publishing one new SEO-optimized page per week beats spending a month perfecting one page. Search engines reward fresh, growing sites.\n\nMeasure everything. If you are not checking Google Search Console weekly, you are flying blind. Impressions, clicks, average position -- these tell you what is working.\n\nLicense\n\nMIT"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ryudi84/sovereign-seo-audit",
    "publisherUrl": "https://clawhub.ai/ryudi84/sovereign-seo-audit",
    "owner": "ryudi84",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/sovereign-seo-audit",
    "downloadUrl": "https://openagent3.xyz/downloads/sovereign-seo-audit",
    "agentUrl": "https://openagent3.xyz/skills/sovereign-seo-audit/agent",
    "manifestUrl": "https://openagent3.xyz/skills/sovereign-seo-audit/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/sovereign-seo-audit/agent.md"
  }
}