Audit seo
SEO audit for static websites hosted on cPanel. Reviews technical foundations that can block indexing (robots.txt, sitemap, canonicalization, HTTPS, security headers), on-page elements affecting SERP presentation (title tags, meta descriptions, heading structure, image SEO, internal linking), structured data with JSON-LD (Organization, SoftwareApplication, FAQPage, BreadcrumbList, HowTo), regional language configuration, Core Web Vitals alignment, Open Graph for social sharing, and E-E-A-T signals for B2B credibility. Run as the seventh audit in the pre-production protocol, after performance, code consistency, accessibility, responsive design, cross-browser, and conversion UX.From its SKILL.md
npx -y skills add magallon/website-audit-toolkit --skill audit-seoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
14.6 KB, ~3.3k tokens by cl100k_base, as published. Nobody here has run it
SEO Audit
Static Websites on cPanel
SEO for a commercial B2B site has different priorities than SEO for blogs or e-commerce. The primary goal is not ranking for generic high-volume keywords — it is being found by decision-makers actively searching for solutions, appearing as a trustworthy result in SERP, and ensuring every page a prospect might visit is correctly indexed and optimized.
This audit covers technical foundations that can block indexing, on-page elements affecting SERP presentation and click-through, and structured data that communicates authority to search engines.
Guiding principle: Technical SEO enables ranking. Content quality earns it. Technical checks are the floor, not the ceiling.
Does not cover: domain authority, backlinks, keyword research, SERP competition, algorithm updates, or Search Console data — these are post-launch concerns.
Severity Levels
| Level | Description | Action |
|---|---|---|
| Critical | Blocks indexing or excludes pages from search | Fix before launch |
| High | Significantly affects SERP presentation or crawl | Fix before launch |
| Medium | Reduces SEO effectiveness without blocking indexing | Fix in first week |
| Low | Improvement opportunity with minor impact | Fix when convenient |
Integrity rule: A site cannot be considered SEO-ready if it has unresolved critical issues, regardless of how many other checks pass.
Section 1 — Crawlability and Indexing
1.1 robots.txt
Must exist at domain root and return HTTP 200. User-agent: * Allow: / Disallow: /thank-you/ Disallow: /404.html Sitemap: https://example.com/sitemap.xml
What to check:
robots.txtexists and returns HTTP 200- Sitemap referenced with full HTTPS URL
- No important pages blocked with
Disallow - CSS, JS, fonts, and image directories NOT blocked — Google needs to render pages
- No
Disallow: /blocking the entire site
Flag any Disallow on /assets/, /css/, /js/, /fonts/, or /images/ — prevents Google from rendering, causes ranking penalties.
1.2 Sitemap XML
Tells search engines which pages exist and when they were updated.
What to check:
sitemap.xmlexists and is accessible- Contains only canonical, indexable URLs — no thank-you pages, errors, or duplicates
lastmodreflects actual last modification date — not today's date on all pagespriorityreflects actual page importance (1.0 homepage, lower for secondary)- All URLs return HTTP 200 — no redirects or errors
- Referenced in
robots.txt - Trailing slash consistency — all with or all without
Full sitemap XML example: see
references/seo-templates.md
1.3 URL Structure
Rules:
- Lowercase only
- Separated by hyphens, not underscores
- No visible
.htmlextensions - Under 75 characters per URL
- No query parameters in main URLs
- HTTPS on all pages
Flag URLs with uppercase, underscores, visible extensions, or query parameters.
1.4 Canonicalization
What to check:
- Every page has a self-referencing canonical
- Canonical uses exact HTTPS — not HTTP
- www vs non-www consistency — choose one, apply everywhere
- Trailing slash consistency — canonical and internal links use same convention
- No page has a canonical pointing to a different page unintentionally
<link rel="canonical" href="https://example.com/solutions/">
If pages use query parameters (e.g., /demo/?category=legal), canonical must point to the clean URL.
1.5 Meta Robots
<!-- Pages to index (all main pages) -->
<meta name="robots" content="index, follow, max-snippet:150, max-image-preview:large">
<!-- Pages NOT to index -->
<meta name="robots" content="noindex, nofollow">
Pages that need noindex: thank-you/confirmation pages, 404 error page, any policy pages if preferred.
Critical flag: verify no main page has noindex accidentally.
1.6 HTTPS and Security Headers
What to check:
- Entire site serves over HTTPS
- SSL certificate valid and not expired
- HTTP → HTTPS redirect configured in
.htaccess - No mixed content (HTTP resources inside HTTPS pages)
Security headers in .htaccess:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "DENY"
Not direct ranking factors but contribute to E-E-A-T Trustworthiness — correct security headers signal technical professionalism.
Section 2 — On-Page Optimization
2.1 Title Tags
Highest individual impact on ranking. Must be unique per page.
Rules:
- 50-60 characters — Google truncates around 60
- Primary keyword near the beginning
- Unique per page — never duplicate titles
- Brand name at end (except homepage)
- Benefit-oriented, not technical description
What to check per page:
- Title unique — no page shares a title with another
- Between 50-60 characters
- Primary keyword in first 30 characters
- No keyword stuffing
- Title matches actual page content
2.2 Meta Descriptions
Not a direct ranking factor but determines SERP text. Affects CTR which is a relevance signal.
Rules:
- 150-160 characters
- Include primary keyword naturally
- Clear CTA — what the user should do
- Unique per page
- Accurately describes what the user will find
What to check per page:
- Meta description present on all pages
- Between 150-160 characters
- Not duplicated between pages
- Includes the page's primary keyword
- Ends with action or clear benefit
2.3 Heading Structure
Rules:
- One
<h1>per page — the main topic - Logical hierarchy: H1 → H2 → H3, no skipped levels
- H1 must contain primary keyword
- Headings as arguments, not labels
- Keyword in at least one H2
Heading argument test: Cover the logo and body copy. Read only the headings in sequence. A first-time visitor must understand the full value proposition from headings alone.
<!-- ❌ Headings as labels -->
<h1>Company Name</h1>
<h2>Features</h2>
<h2>How it works</h2>
<!-- ✅ Headings as arguments -->
<h1>Your documentation, searchable with AI in seconds</h1>
<h2>Find any answer without digging through documents</h2>
<h2>Companies that recovered their investment in under 2 months</h2>
2.4 Keyword in First 100 Words
Primary keyword must appear in the first paragraph of each page. Google gives more weight to content appearing early.
What to check:
- Primary keyword appears before word 100 in visible content
- Appearance is natural — not forced
- First paragraph directly answers what the user is searching for
2.5 Image SEO
What to check:
- All images have descriptive
alttext - Alt text describes the image, not a keyword list
- Descriptive filenames:
product-dashboard-results.webpnotIMG_001.webp - Images compressed (see Audit 04 — Performance for format details)
widthandheightdefined in HTML to prevent CLSloading="lazy"on below-fold imagesfetchpriority="high"on hero/LCP image
2.6 Internal Linking
Rules:
- Important pages well-linked from other pages
- Descriptive anchor text — never "click here" or "see more"
- No broken internal links
- Bidirectional where relevant
- 3-5 internal links per 1,000 words of content
- No orphan pages — all have at least one incoming link
<!-- ❌ Generic anchor text -->
<a href="/demo/">Click here</a>
<!-- ✅ Descriptive anchor text -->
<a href="/demo/">Try the interactive demo</a>
Section 3 — Structured Data (JSON-LD)
Schema markup helps search engines understand content meaning. It enables eligibility for rich results but does not guarantee them.
For static vanilla sites with JSON-LD in HTML, schema is verifiable via source code. Validate with Google Rich Results Test before launch.
Schemas to implement:
| Schema | Location | Purpose |
|---|---|---|
| Organization | Homepage | Company identity, contact, social links |
| SoftwareApplication | Homepage or Solutions | Product details, pricing, features |
| FAQPage | Page with FAQ content | FAQ rich results eligibility |
| HowTo | Process/implementation section | Step-by-step rich results |
| BreadcrumbList | Internal pages | Navigation context in SERP |
Full JSON-LD templates for all schemas: see
references/seo-templates.md
Validation checks:
- All JSON-LD is syntactically valid
- Validated with Google Rich Results Test before launch
- Organization schema on homepage
- No schema makes claims not backed by visible page content
- Schema data matches actual page content (prices, features, FAQs)
Section 4 — Language and Regional Configuration
4.1 Lang Attribute
<!-- Specify regional variant matching target market -->
<html lang="es-MX">
Use the specific regional variant (e.g., es-MX, es-CO, pt-BR, en-US) rather than just the language code. Affects spell checkers, screen readers, and regional relevance signals.
Check: lang attribute with correct regional variant present on <html> element of every page.
4.2 Hreflang (Conditional)
Only applies if the site has multiple language versions. If single-language, not needed.
<!-- Only if multilingual -->
<link rel="alternate" hreflang="es-MX" href="https://example.com/">
<link rel="alternate" hreflang="en" href="https://example.com/en/">
<link rel="alternate" hreflang="x-default" href="https://example.com/">
Section 5 — Open Graph and Social Sharing
Determines how pages appear when shared on LinkedIn, WhatsApp, and Facebook. For B2B sites where LinkedIn sharing is a distribution channel, this directly affects brand presentation.
Required per page:
<meta property="og:title" content="Page Title — Brand">
<meta property="og:description" content="Specific page description">
<meta property="og:image" content="https://example.com/assets/images/og-page-1200x630.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://example.com/page/">
<meta property="og:type" content="website">
<meta property="og:locale" content="es_MX">
<meta property="og:site_name" content="Brand Name">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Page Title — Brand">
<meta name="twitter:description" content="Specific page description">
<meta name="twitter:image" content="https://example.com/assets/images/og-page-1200x630.jpg">
OG image specs: 1200×630px, JPG or PNG (not WebP — LinkedIn doesn't fully support it), under 1 MB, text legible at thumbnail size.
What to check:
- All pages have complete Open Graph tags
og:imagepoints to 1200×630px image- OG image exists and is publicly accessible
og:urlmatches the canonical URL- Each page has unique
og:titleandog:description
Section 6 — E-E-A-T for B2B
E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) is not a direct ranking factor but the framework Google uses to evaluate quality. For a new site without authority history, the most actionable signals in pre-production:
Experience:
- Case studies with specific numbers, not generic claims
- Real metrics documented — ROI, payback period, error reduction %
- Screenshots or demos of the actual system, not just mockups
Expertise:
- Technical content is accurate — no errors in product descriptions
- Terminology consistent across the site
- Claims are verifiable — no "99% accuracy" without evidence
Authoritativeness:
- Founder or team has verifiable public presence (LinkedIn linked)
- Company name and contact data consistent across site
- Company has a complete LinkedIn profile
Trustworthiness:
- HTTPS active
- Privacy policy and terms linked from footer
- Real, accessible contact data — email, phone, or messaging
- Information about who is behind the product — avoid corporate anonymity
- Product promises are achievable and backed by evidence
Specificity test for claims: Replace each claim with its opposite. If the opposite sounds absurd, the claim has no information value.
Section 7 — Core Web Vitals (Cross-Reference)
Core Web Vitals affect ranking when content quality is comparable between competitors. Technical performance checks are covered in Audit 04 — Performance. This section only verifies SEO alignment:
| Metric | Target | SEO Impact |
|---|---|---|
| LCP | < 2.5s | High — affects mobile ranking |
| INP | < 200ms | Medium — interactivity signal |
| CLS | < 0.1 | High — visual experience |
| TTFB | < 800ms | Server reference |
Cross-reference checks with Audit 04:
- Hero image has
fetchpriority="high"(affects LCP) - All images have
widthandheight(affects CLS) - Fonts loaded with
font-display: swap(affects CLS and LCP) - Non-critical JS has
defer(affects INP) - cPanel hosting has adequate cache configuration (affects TTFB)
Audit Output Format
SEO Audit — [Project Name]
Date: [Date]
Pages audited: [count]
Summary
Critical issues: X
High priority: X
Medium priority: X
Low priority: X
Indexability: [All pages indexable / Issues found]
Schema status: [Complete / Partial / Missing]
Overall SEO readiness: [Ready / Needs work / Critical blockers]
Critical Issues
[Issue title]
Category: [Crawlability / On-page / Schema / Social / E-E-A-T]
Page: [URL or all pages]
Issue: [What is wrong and SEO impact]
Fix: [Specific correction]
High Priority
[Same format]
Medium Priority
[Same format]
Low Priority
[Same format]
Recommended Fix Order
Indexation blockers — robots.txt, sitemap, noindex
Title tags and meta descriptions — SERP presentation
Heading structure — on-page signals
Schema markup — rich results eligibility
Open Graph — social sharing presentation
E-E-A-T signals — credibility improvements
Full pre-launch checklist and tools reference: see
references/checklist.md
What ships with it: 2 files
5.0 KB alongside SKILL.md
references/
- checklist.md1.3 KB
- seo-template.md3.7 KB