DEV Community

Barira Sania
Barira Sania

Posted on

I Ran an SEO Audit on My Own Site — Here's Everything It Found (and Fixed)

I built a free SEO audit tool, then turned it on my own website. It roasted me. Here's the full story — the issues, the fixes, and the code.

The setup

My site: BeFirst — a free SEO/AEO/GEO audit tool (live here, source on GitHub). Single-page site, no framework, plain HTML/CSS/JS. I figured a hand-written site would score well. It scored 84. Good, not great. The audit flagged real things.

What the audit found

1. Images with no lazy loading.
16 logo images in a marquee strip, all loading on first paint. None below the fold needed to block rendering. One-line fix per image:

<img src="logo.svg" alt="..." loading="lazy">
Enter fullscreen mode Exit fullscreen mode

2. Missing structured data.
No SoftwareApplication or Organization schema. Search engines (and AI answer engines) had to guess what the site is. Added JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "BeFirst",
  "applicationCategory": "SEO Tool",
  "offers": { "@type": "Offer", "price": "0" }
}
Enter fullscreen mode Exit fullscreen mode

3. FAQ with no FAQPage schema.
The page had a visible FAQ section — invisible to Google's rich results because there was no matching FAQPage JSON-LD. Content was already written; the fix was markup only.

4. Loose ends across pages.
Checked the pricing, privacy, and terms pages the same way — one H1 per page, sequential headings, meta descriptions. Boring work, but it's what separates an 84 from a 95+.

What I deliberately did NOT fix

The audit also flagged 19 <button> elements and a single async analytics script as "too many interactive elements / external scripts." That's the product itself — removing buttons would remove functionality. Lesson: don't blindly obey audit tools, including mine. Every flag needs a human decision: fix it, or keep it on purpose.

Same with copy. The tool suggested rewriting headings for keywords. Rewriting working copy for a few keyword points risks the tone that converts. Left it alone.

The deploy loop

Every fix goes: local edit → push to GitHub → live on Cloudflare Pages in under a minute. No build step, no bundler. For a static site, that loop is fast enough that there's no excuse to batch fixes — ship each one, re-audit, watch the score move.

Takeaways

  1. Audit your own site first. If your tool can't fix your site, why would anyone trust it on theirs?
  2. Schema markup is the highest-ROI boring work in SEO. Ten minutes of JSON-LD, visible in every rich result forever.
  3. loading="lazy" is still free performance. In 2026, audits still catch sites missing it.
  4. Not every flag is a fix. Buttons that do things stay. Scripts that measure stay. Judgment over score.

BeFirst is free while in beta — audit your own site and see what it finds. If it roasts you too, the fixes above are a good start.

Top comments (0)