I've been building BeepMate - a service that forwards emails to WhatsApp - for about two years. The product works great. The SEO? Let's just say I had been living in denial.
Last week I decided to actually look at every single page of my site. Not just the homepage. Every guide, every utility page, every corner of the site. I used Claude as my audit partner, pasting in HTML and asking it to tear it apart.
What followed was genuinely humbling.
The copy-paste problem I didn't know I had
Every single guide page had the same meta description. The same OG tags. The same Twitter description. I had built a shared header template early on, filled it with the homepage copy, and then... never updated it per page.
So my Shopify integration guide had a meta description talking about Gmail. My WordPress plugin page was telling Google it was about email attachments. My WhatsApp group guide - which is literally BeepMate's biggest differentiator - had a description that could have been for any email app on the internet.
Claude's response when I shared the Shopify page was basically: "The meta description here is about Gmail. This is the Shopify page." Blunt. Fair.
What I actually fixed
Over the course of the audit, page by page, here's what kept coming up:
Title tags were either too long, too short, or completely wrong. My pricing page title was just "Pricing | BeepMate". Google gives you 60 characters to tell someone why they should click. I was using 18.
The twitter:card was broken on every single page. The value is supposed to be summary_large_image. I had somehow set it to the URL of the card image itself. Every share of every page on Twitter/X for who knows how long showed no preview card. Just a link.
Schema was copy-pasted between pages incorrectly. My contact page had the privacy policy's schema. My delete account page had the Shopify FAQ schema. My cancel subscription page had the delete account page's schema. It was like a game of telephone where each page forgot what it was about.
The canonical on my privacy page pointed to the homepage. So Google was being told "this privacy policy page is actually the homepage, please treat them as the same thing." Not ideal.
The og:type was set to article on every page including the pricing page and the homepage. Pricing is not an article. The homepage is not an article.
The thing that actually surprised me
I expected to find technical issues. I didn't expect to find UX issues that were actively hurting conversion.
My VIP and PRO plan buttons both said "Join for Free." On the paid plans. The ones that cost $4 and $9 per month. Users clicking those expecting a free signup were about to get a surprise.
My pricing page had four columns but my guide-wrap CSS class was capping the page at 800px wide, so the cards were squishing into two rows on desktop. The page looked broken and I had no idea.
The breadcrumb on my pricing page was anchored to href="#" - a dead link - because I'd copied it from a guide page and never updated it.
None of these things would have shown up in a standard SEO audit. They're just embarrassing bugs that you stop seeing when you look at your own product every day.
What the process actually looked like
My workflow was simple. Open a page's HTML source. Paste it into Claude. Ask: "What SEO issues do you see, and what would you improve?" Then fix things, move to the next page.
For most pages I also asked about content improvements - not just meta tags but actual copy. Claude suggested I lead with "No WhatsApp Business account required" much more prominently because it's a genuine differentiator. I'd buried it. Most services that do what BeepMate does require you to go through Meta's business verification process. BeepMate doesn't. That's worth saying loudly, and I was barely saying it at all.
The whole audit took about a week of evenings. Maybe 15-20 hours total across 15+ pages.
The small wins that added up
Added FAQPage schema to every guide and the FAQ page - these can show accordion-style answers directly in Google results
Added CollectionPage schema with hasPart to my new guides hub page, linking all 6 guides
Added Organization schema to the homepage with social links
Fixed all twitter:card values (this one felt good)
Added filemtime()-based cache busting to CSS files so deployments actually update for users
Set noindex on utility pages (privacy, delete account, cancel subscription, error, contact) - these were wasting crawl budget
Built a proper /guides hub page that didn't exist before - now both "Guides" and "Resources" in the nav link somewhere real
The honest takeaway
If you built your site yourself and haven't done a proper SEO audit: do it. Not because of some ranking hack, but because you will find bugs that are actively embarrassing. The twitter:card thing alone - having broken social previews on every page for potentially years - is the kind of thing that makes you want to close your laptop and go for a long walk.
Using an AI assistant to do this made it much faster than doing it manually, and more thorough than I would have been on my own. I kept wanting to move on. Claude kept finding one more thing.
The PHP error in the meta description was probably the worst. But honestly, the "Join for Free" button on a $9/month plan is a close second.
---
BeepMate forwards emails to WhatsApp - personal chats or groups - without needing a WhatsApp Business account. If that sounds useful, beepmate.io.
This is such a common pattern — not just SEO, but across the whole stack.
Things start simple, then you reuse templates / configs everywhere, and suddenly everything is “kind of right but actually wrong”.
I see the same with:
- CI/CD pipelines copied between environments
- staging + prod drifting apart
- infra changes happening ad hoc
Everything works… until you actually rely on it.
The fixes are usually simple, just tedious — going page by page like you did, but for infra.
Out of curiosity — how are you handling deployments right now?
Yeah it took me a two full days to fix all those patterns.
I don't have CD process, I do it manually by running a script I prepared for that. I update the code every month or so, so I feel it don't worth the efforts for full CI/CD.