u/bkocdur

Small free SEO extension I shipped because a redditor asked for one. Lite popup, only reads the active tab URL, MV3.

Small free SEO extension I shipped because a redditor asked for one. Lite popup, only reads the active tab URL, MV3.

Quick origin: I built a free web tool that turns a Lighthouse / PageSpeed audit into a structured CLAUDE.md brief for the Claude Code AI agent. Someone on Reddit said "this should probably be a Chrome extension to really make it easy" and they were right. Shipped the extension two days later.

Two weeks in: 46 installs total. So this isn't a "look how viral I am" post. It's more "here are the design choices and I would appreciate honest critique from people who think about this for a living."

Design choices that are probably relevant here:

  • Lite popup, not a content script. The extension does not inject anything into the page, does not read the DOM, does not touch cookies or storage. The only thing it reads from any page is the active tab's URL on click (or via the context menu). That URL goes to my Vercel endpoint, which runs the audit server-side on PageSpeed Insights and returns the structured report. The popup renders that report. End of data flow.
  • Manifest V3, no remote code. All popup JS is bundled. No eval, no remote imports, no dynamic code paths. CSP is strict.
  • Host permissions are narrow. host_permissions points only at my own domain (the API origin), not <all_urls>. The audit runs on Google's servers, so the extension never needs page access.
  • Storage is chrome.storage.local for one preference (mobile/desktop). No identifiers, no telemetry. The extension itself sends zero analytics back to me, which is honest but also a blind spot I am aware of.

Extension: https://chromewebstore.google.com/detail/pagespeed-%E2%86%92-claudemd/cphchklbbkhglppapokhdbhnkhghhhnk
Companion web tool: https://lighthouse-md.com

Open to critique. Especially the unflattering kind.

u/bkocdur — 1 day ago

The hard part of agentic SEO isn't generating fixes. It's stopping the agent from breaking what already works.

I've been building a small thing that turns a Lighthouse/PageSpeed audit into a structured brief an AI coding agent can act on directly. Building it taught me something I didn't expect, and it's less about SEO and more about how you hand work to an agent.

The first version just listed what was failing and how to fix it. The moment I actually fed that to an agent, the obvious failure mode showed up: it would happily fix the LCP issue by ripping out something that was quietly holding three passing audits together. Net score: worse. Confidently worse.

Generating the fix is the easy half. The hard half is the constraint.

So the brief now leads with the failing audits and an explicit "do not regress" list of everything currently passing. That second list turned out to matter more than the first. An agent has none of the context a human reviewer carries in their head, so the guardrails have to be written down as plainly as the task. "Here's what's broken" plus "here's what's already right and must stay right" is a completely different prompt than just the first half, and it's the difference between a demo and something you'd actually let near a repo.

I think this generalizes well past Lighthouse. Most structured tool output (error monitors, type checkers, security scanners, SEO crawlers) is great at "what's wrong" and completely silent on "what you'll regress if you're careless." For agentic workflows that second half is the whole ballgame. The interesting work isn't a better fix generator. It's turning machine output into something an agent can act on without a babysitter.

A humbling footnote: I ran the tool on its own homepage and it flagged two issues I hadn't fixed. One was a real accessibility bug on, of all pages, the one explaining accessibility. The other I deliberately left alone (third-party analytics). Even with a good brief, "should the agent fix this" still needs a human. The agent optimizes the metric. It doesn't know which metrics you actually care about.

Curious how others here are handling the regression problem. When you let an agent act on SEO/perf output, what stops it from trading one win for two silent losses? Explicit constraint lists, eval/rollback, human gate, something smarter?

i.redd.it
u/bkocdur — 5 days ago

The hard part of agentic SEO isn't generating fixes. It's stopping the agent from breaking what already works.

I've been building a small thing that turns a Lighthouse/PageSpeed audit into a structured brief an AI coding agent can act on directly. Building it taught me something I didn't expect, and it's less about SEO and more about how you hand work to an agent.

The first version just listed what was failing and how to fix it. The moment I actually fed that to an agent, the obvious failure mode showed up: it would happily fix the LCP issue by ripping out something that was quietly holding three passing audits together. Net score: worse. Confidently worse.

Generating the fix is the easy half. The hard half is the constraint.

So the brief now leads with the failing audits and an explicit "do not regress" list of everything currently passing. That second list turned out to matter more than the first. An agent has none of the context a human reviewer carries in their head, so the guardrails have to be written down as plainly as the task. "Here's what's broken" plus "here's what's already right and must stay right" is a completely different prompt than just the first half, and it's the difference between a demo and something you'd actually let near a repo.

I think this generalizes well past Lighthouse. Most structured tool output (error monitors, type checkers, security scanners, SEO crawlers) is great at "what's wrong" and completely silent on "what you'll regress if you're careless." For agentic workflows that second half is the whole ballgame. The interesting work isn't a better fix generator. It's turning machine output into something an agent can act on without a babysitter.

A humbling footnote: I ran the tool on its own homepage and it flagged two issues I hadn't fixed. One was a real accessibility bug on, of all pages, the one explaining accessibility. The other I deliberately left alone (third-party analytics). Even with a good brief, "should the agent fix this" still needs a human. The agent optimizes the metric. It doesn't know which metrics you actually care about.

Curious how others here are handling the regression problem. When you let an agent act on SEO/perf output, what stops it from trading one win for two silent losses? Explicit constraint lists, eval/rollback, human gate, something smarter?

u/bkocdur — 5 days ago
▲ 0 r/SEO

I built a tool that turns Lighthouse audits into fix plans. Then I ran it on my own site and it roasted me.

I made a small free thing that takes a PageSpeed/Lighthouse audit and turns it into a structured fix plan you can hand to an AI coding agent (or just, you know, a human with guilt).

Naturally the first URL I tested was my own homepage.

It came back 99 / 96 / 100 / 100 and then very politely listed two things I hadn't fixed:

  1. "Links rely on color to be distinguishable." My in-text links had color but no underline. Classic. I write about accessibility and shipped an a11y bug on the page that talks about accessibility. Fixed that one the same night, mild ego damage sustained.
  2. "Reduce unused JavaScript, ~65 KB." This one is Google Analytics' own gtag.js. I can't tree-shake Google's script, and ripping out analytics to win a vanity point would mean losing the country/event data I actually use to decide what to build next. So I'm consciously not fixing it. A 99 with working analytics beats a 100 flying blind.

The honest lesson, since this is r/seo and not r/humblebrag:

  • Audit your own site before you give anyone else advice. The gap between "I know best practices" and "my live page passes them" is humbling and very public.
  • Not every failing audit deserves a fix. Third-party scripts, deliberate trade-offs, diminishing returns past 90. "Should I" matters more than "can I." Chasing a perfect score is its own kind of SEO procrastination.
  • The fixes that actually move rankings (titles, canonicals, content, internal links, indexation) are boring and almost never the ones in the colorful Lighthouse panel.

Still fixing my own problems in public. Felt on-brand enough to share.

reddit.com
u/bkocdur — 5 days ago

The most useful thing I learned from a side project was not to monetize it

A few weeks ago I built a tiny free tool on a weekend to scratch my own itch at work. No pricing page, no email capture, no plan to make money from it. I almost didn't share it because it felt too small.

What happened taught me more about side projects than anything I'd read here:

  1. Free + genuinely useful travels further than anything you can pay to promote. People shared it on their own, in countries I never targeted. Zero ad spend. The distribution came entirely from it actually solving a real friction point.
  2. Your users design the roadmap if you let them. Someone left a comment saying it "should probably be a Chrome extension." They were right. I built it two days later. I'd never have prioritized that on my own.
  3. Removing the money question made everything easier. No conversion funnel to optimize, no support tier, no guilt. Just a thing that works. Ironically that constraint is what made it spread.

I'm not saying never charge. I'm saying: a free, sharp, single-purpose tool is one of the cheapest ways to learn whether an idea has any pull before you build a business around it. The signal is clean because nobody shared it out of obligation.

If you're sitting on a small weekend build and hesitating because it's "too small to charge for," that might be exactly why you should ship it.

u/bkocdur — 5 days ago

I built a tool that turns any URL's Lighthouse audit into a CLAUDE.md fix plan for Claude Code. 200+ analyses in the first week

I kept pasting PageSpeed Insights reports into Claude Code and translating "minimize unused JavaScript" into actual file paths and diffs. So I built a wrapper that does the translation for you.

What it does:

  • Paste any URL → runs PageSpeed Insights (Performance, Accessibility, Best Practices, SEO)
  • For every failing audit you get a concrete fix suggestion plus the actual offending URLs / selectors / HTML snippets
  • One click generates a CLAUDE.md with the full Lighthouse context (environment, throttling profile, third-party impact, main-thread breakdown, passing audits to not break, stack-pack guidance)
  • Another click opens Claude Code via the claude://code/new deep link with the brief pre-loaded

First week stats (just shared it once on Reddit and LinkedIn):

  • 137 analyses started, 125 succeeded
  • 214 audit details expanded → people actually read the fix suggestions
  • Avg engagement: 1m 01s
  • Users from 30+ countries, top: Türkiye, UAE, India, US

Link: https://page-speed-claude.vercel.app

Happy to hear feedback or feature requests.

u/bkocdur — 7 days ago
▲ 5 r/MarketingGeek+3 crossposts

I've been using Claude Code to fix SEO issues on a side project. The workflow was: run Google PageSpeed, copy the wall of text output, paste it into Claude, ask it to fix things.

It works but it's annoying. PageSpeed's UI isn't built for this. No export, no markdown download, lots of noise you don't need.

So I built a small wrapper: https://page-speed-claude.vercel.app/

You paste your URL, it hits the PageSpeed Insights API and returns a clean markdown file with scores, failing audits, the offending nodes, and suggested fixes. You drop that file into Claude and it has everything it needs to fix the issues directly in your codebase. No copy-pasting, no reformatting.

Took a few minutes to build, saves friction every time I ship something new. (good for small websites)

Is this a workflow you run regularly, or do you mostly ignore PageSpeed until something breaks?

u/bkocdur — 1 day ago