SeoWebChecker

Hex.pm Hex Docs License: MIT Official Site

A lightweight Elixir client SDK and technical SEO audit engine for on-page meta tag validations, heading structure inspections, image accessibility checks, and Core Web Vitals diagnostics.

Powered by SEOWebChecker.com.


Installation

Add seowebchecker to your list of dependencies in mix.exs:

def deps do
[
{:seowebchecker, "~> 1.0.0"}
]
end

Then run:

mix deps.get

Usage

1. Audit Raw HTML String

html = """
<!DOCTYPE html>
<html lang="en">
<head>
<title>High Ranking On-Page SEO Checklist & Guide</title>
<meta name="description" content="Master technical on-page SEO, heading structure, and Core Web Vitals optimization with our comprehensive developer checklist.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://example.com/guide">
<meta property="og:title" content="High Ranking On-Page SEO Checklist">
<meta property="og:image" content="https://example.com/og.jpg">
</head>
<body>
<h1>On-Page Technical SEO Essentials</h1>
<p>Optimize your website performance and search rankings.</p>
<img src="chart.png" alt="SEO Traffic Growth Chart">
</body>
</html>
"""
result = SeoWebChecker.audit_html(html, url: "https://example.com/guide")
IO.puts("Overall Score: #{result.score.overall}/100 (Grade #{result.score.grade})")
IO.puts("Passed: #{result.passed_checks}/#{result.total_checks}")
IO.puts("Warnings: #{result.warnings}, Errors: #{result.errors}")
Enum.each(result.issues, fn issue ->
IO.puts(" [#{String.upcase(to_string(issue.severity))}] #{issue.title}: #{issue.message}")
end)

2. Audit a Live Remote Website URL

{:ok, result} = SeoWebChecker.audit_url("https://example.com")
IO.puts("Audited URL: #{result.url}")
IO.puts("Score: #{result.score.overall}/100 (#{result.score.grade})")

Features


Online Tools


License

MIT © 2026 SEOWebChecker.com.