Most landing page SEO tools cost $50-200/month. But if you just want to check a few pages before launch, you don't need a subscription.
I built a free checker that runs 15+ SEO checks in the browser. No signup, no payment, no data collection.
What It Checks
The tool runs these checks against any public URL:
Critical Checks (Will Break Your SEO)
- Missing title tag — Google shows "Untitled" in results
- Missing meta description — Google auto-generates snippets (usually poorly)
- No H1 tag — Confuses content hierarchy
- Multiple H1 tags — Dilutes the primary keyword signal
- Missing viewport meta — Fails mobile-first indexing
Important Checks (Should Fix)
- Title too long (>60 chars) — Gets truncated in SERPs
- Title too short (<30 chars) — Misses keyword opportunities
- Meta description >160 chars — Gets cut off
- Missing Open Graph tags — Bad social media previews
- No canonical URL — Risk of duplicate content
Bonus Checks (Nice to Have)
- Missing Twitter Card tags
- No structured data (JSON-LD)
- Images without alt text
- Slow-loading resources
- Missing sitemap reference
How It Works
The checker uses a CORS proxy to fetch the target page, then parses the HTML:
async function checkSEO(url) {
// Fetch the page via CORS proxy
const response = await fetch(`https://api.allorigins.win/raw?url=${encodeURIComponent(url)}`);
const html = await response.text();
const parser = new DOMParser();
const doc = parser.parseFromString(html, 'text/html');
const results = [];
// Check title
const title = doc.querySelector('title');
if (!title) {
results.push({ check: 'Title Tag', status: 'FAIL', message: 'Missing title tag' });
} else if (title.textContent.length > 60) {
results.push({ check: 'Title Tag', status: 'WARN', message: `Title too long (${title.textContent.length} chars)` });
} else {
results.push({ check: 'Title Tag', status: 'PASS', message: title.textContent });
}
// Check meta description
const metaDesc = doc.querySelector('meta[name="description"]');
if (!metaDesc) {
results.push({ check: 'Meta Description', status: 'FAIL', message: 'Missing meta description' });
}
// ... more checks
return results;
}
Architecture Decisions
1. Client-Side Only
The entire tool runs in the browser. This means:
- No server costs
- No rate limits
- No data stored
- Instant results
2. CORS Proxy
Since browsers block cross-origin requests, I use a public CORS proxy. This has limitations:
- Some sites block the proxy
- Large pages may timeout
- No JavaScript rendering (static HTML only)
For most landing pages, this works perfectly since they're typically server-rendered.
3. Scoring System
Each check contributes to an overall score:
- PASS = +7 points
- WARN = +3 points
- FAIL = 0 points
Final score = (earned / possible) × 100
I chose this weighting because some checks are more important than others (missing title is worse than missing Twitter Cards).
What I Learned
- Most landing pages fail basic SEO — In testing 100+ sites, ~40% had missing or duplicate H1 tags
- Developers over-index on performance, under-index on meta tags — Lots of sites have perfect Core Web Vitals but no meta descriptions
- Free tools build audience — The SEO checker drives organic traffic to my other tools
Try It
SaaSLaunch SEO Checker — free, unlimited, no signup.
FTC Disclosure: I built this tool. Completely free, no affiliate links or paid promotions.
What SEO issues do you see most often on landing pages? Share in the comments.
Top comments (0)