I Used Claude to Audit My Website SEO. What We Found Was Embarrassing, But Fixable.

 I used Claude to audit sarahstahl.com after 18 months of weekly posts and almost zero search traffic. Here’s every broken SEO problem and exactly how we fixed it.

I want to tell you something that most marketing consultants don’t say publicly: my own website was broken for eighteen months and I had no idea. Not technically broken — pages loaded, links worked, nothing threw a 404. I was publishing every single week. I had a consistent posting schedule, a clear niche, and years of content behind me. By every surface measure, I was doing everything right. 

But from a search visibility standpoint, the site I’d been building for a year and a half was almost completely invisible. Three months of Google data showed 22 total clicks across the entire site. Not per day. Not per week. Twenty-two clicks in ninety days. That’s not a slow-growth problem. That’s a structural one.

So, I did what I should have done much earlier. I used Claude to audit website SEO and what we found was genuinely embarrassing for someone who helps hospitality brands do exactly this work for a living.

This post is the full story. What was broken, why each problem was quietly working against everything I’d built, the specific fixes we made together, and what the data showed two weeks later. I’m sharing it because the problems I found aren’t unique to me. They’re the same five problems I find on nearly every hospitality brand website I audit and if you’re writing consistently and wondering why nobody’s finding you through search, this is probably your answer.

Why I Used Claude to Audit My Website SEO

I’d been aware that sarahstahl.com wasn’t performing the way I wanted. But “not performing” is easy to rationalize when you’re busy — a slow month here, an algorithm shift there, the LinkedIn reach drop that everyone in the industry felt in early 2026. I kept attributing the problem to external forces instead of looking at my own foundation.

What finally forced the audit was the 18-month tracker I’d been keeping since completing Mark Schaefer’s Personal Branding Course. When I laid out the full page-view history in a spreadsheet, the shape of it was impossible to ignore:

The spike looked like growth. It wasn’t, and that’s exactly why early signs of growth had gone unnoticed. When I pulled the channel attribution for that period, 89.87% of the traffic was Direct — people typing the URL directly into the browser after hearing me on podcasts or attending industry webinars. When podcast invitations slowed down (a result of LinkedIn’s algorithm change reducing my reach), the Direct traffic fell off a cliff with them.

I hadn’t built a strong SEO channel to begin with. I’d built a podcast-dependent spike with no floor underneath it. And I’d been mistaking activity — weekly posts, consistent publishing, a growing library of content — for a functioning search strategy.

That’s when I decided to actually look at the data properly. I pulled Google Search Console, Google Analytics, the full query export sorted by position, the full pages export, and 18 months of channel attribution. Then I used Claude to work through all of it systematically. Not just to identify problems in isolation, but to understand how they connected and what to fix first.

Here’s what we found.

The Data Before We Started

Three numbers tell the story:

Google Search Console — 3 months:

  • Total clicks: 22
  • Total impressions: 3,550
  • Average CTR: 0.6%
  • Average position: 12.8

Google Analytics — 90 days:

  • Total sessions: 220
  • Organic Search: 16 sessions (7% of total traffic)

The key distinction the impressions data reveals:

That 0.6% CTR sounds terrible. But impressions weren’t zero. The site was showing up in search results, just on page 2, where almost nobody scrolls. This is what told me exactly the kind of problems I was dealing with.

Zero impressions means Google doesn’t know what your site is about. Page 2 impressions with no clicks means Google knows, but doesn’t trust the page enough to rank it where people can see it. Those are completely different problems with completely different fixes. Most people treat them as the same problem and wonder why their efforts aren’t working.

The Five Problems We Found

Problem 1: The Wrong Pages Were Ranking for the Right Queries

When I pulled the full query list — not just the default top 10, but all of it sorted by position and mapped each query to the page actually ranking for it, the mismatch was immediate and obvious.

How to market your vacation rental property” had 66 impressions and was ranking at position 12. But the page surfacing for it wasn’t a post written specifically for that query, it was a general piece that happened to mention the topic in passing. “Hotel booking abandonment” had 51 impressions and was landing on a 150-word stub page. “Direct booking strategy” was splitting its signal across six different posts simultaneously, none of which was winning.

  • Why this hurts: Google can only rank one page per domain for a given query. When multiple pages target the same topic, Google can’t determine which one should win — so instead of one strong page at position 4, you get six competing signals averaging out to position 80+. This is called keyword cannibalization. It’s almost invisible without specifically looking for it, and it was affecting my entire direct-booking content cluster.
  • The fix: Map every target query to exactly one designated page. Build internal links from all competing pages back to that winner, using the target phrase as the anchor text. Consolidate or redirect genuine duplicates.

Problem 2: A Stub Page Was Eating My Best Query Cluster

My most-read Hotel-Online article — “Why Do Guests Abandon Hotel Bookings?” existed on sarahstahl.com as a 150-word teaser that sent readers to Hotel-Online to read the actual content.

That stub page was sitting at position 22 with 141 impressions for the hotel booking abandonment query cluster. The full content that should have been earning those impressions was living on someone else’s domain, under someone else’s authority.

  • Why this hurts: Google measures content depth. A 150-word page that outsources its actual substance to a third-party site signals that this page is not the comprehensive answer to the query. That signal keeps a page perpetually on page 2 regardless of how relevant the topic is because relevance and depth are both required to rank, and one without the other isn’t enough.
  • The fix: Rewrite the sarahstahl.com page as the full, expanded original — substantially more depth than the syndicated version. The Hotel-Online version becomes the excerpt. The original domain earns the authority.

Problem 3: 18 Months of Self-Inflicted Duplicate Content

This was the silent engine behind almost every other ranking problem on the site and it was entirely self-created.

Every week, I wrote a piece and published it simultaneously on sarahstahl.com, Hotel-Online, and LinkedIn Articles. Three near-identical versions of the same content, indexed by Google at the same time, competing against each other for the same ranking signal.

Since Hotel-Online has significantly more domain authority than sarahstahl.com, Google consistently chose their version as the more credible source and suppressed mine. LinkedIn Articles added a third competing signal. The result: 18 months of weekly writing, and my own site earned almost no search credit for any of it.

  • Why this hurts: This is duplicate content — not in the sense of plagiarism, but in the sense that Google sees three versions of the same article and has to pick one. It will always pick the higher-authority domain. Your own site loses every time, regardless of quality, regardless of how early you published, regardless of how hard you worked on the piece.
  • The fix: A two-platform content split going forward. sarahstahl.com publishes all keyword-targeted content first and exclusively. Hotel-Online gets genuinely different content — industry reaction, trend analysis, collaboration features — that doesn’t compete with the SEO posts. LinkedIn switches from full article publishing to teasers and carousels that drive traffic to sarahstahl.com instead of replacing it.

Problem 4: Legacy Pages Were Confusing Google About What the Site Is About

Two pages — /marketing-executive/ and /marketing-consultant/ in its original form — were pulling real impression volume for positioning that no longer matched the business.

/marketing-executive/ had 301 impressions with zero clicks. It had no external backlinks. It was attempting to rank for “marketing executive” — one of the most competitive generic phrases in existence, dominated by LinkedIn, Indeed, and major publications. There was no buyer intent behind the query, no realistic path to ranking for it, and the page’s existence was sending Google a diluted, mixed signal about what the site was actually about.

  • Why this hurts: Google builds a topical understanding of a website based on all of its pages together. Legacy pages that describe a different, broader, or older positioning quietly work against the niche authority you’re trying to build. The more clearly every page on a site signals “this is specifically about vacation rental marketing,” the better every individual page tends to rank for those queries. Generic legacy pages are a drag on the whole site’s topical coherence.
  • The fix: Rewrite both pages to match current positioning. Convert /marketing-executive/ to /about/ — which is what the page actually is — with a 301 redirect from the old URL. Rewrite the consultant page with literal, niche-specific keyword language in the H1, title tag, and service descriptions.

Problem 5: Page-1 Rankings That Had Never Earned a Single Click

This one required the most careful reading to catch and it turned out to be the fastest fix of all five.

Several pages were ranking on page 1 — positions 3 through 6 — and had literally never earned a click. At first, that sounds like a relevance problem. But positions 3-6 with 0% CTR almost always means something different: the title tag and meta description appearing in the search result aren’t compelling or clear enough to earn a click, even when the content is fine.

The pattern was consistent across five pages. Every one used a clever, abstract headline as its title tag — the kind of headline that earns engagement on LinkedIn but tells a Google searcher nothing about what they’d actually find on the page. “The Room Where Decisions Are Made.” “The Feeling Is the Destination.” Good writing for a human audience. Zero signal value for a search result.

  • Why this hurts: Google shows the title tag in search results, not the on-page H1. When the title tag reads as thought-leadership prose instead of a direct answer to a query, even a strong ranking doesn’t convert into clicks. The page wins the ranking battle and loses the click battle simultaneously.
  • The fix: Rewrite the SEO title and meta description in the SEO plugin — no changes to the actual page content — to lead with the literal topic in plain language. The creative title stays as the on-page H1. The title tag becomes the searcher-matched version. Total time per page: about 10 minutes.

The Specific Fixes We Made (In Order)

Week 1:

  1. Rewrote /marketing-consultant/ with a literal, niche-specific H1 (“Vacation Rental Marketing Tech Consultant for Lodging Brands”), keyword-matched service descriptions under each pillar, a proof bar with specific results (93% direct bookings, 6 treehouses to 21 units), a “Who This Is For” section targeting the right buyer by name, and an FAQ block answering commercial-intent questions both Google and buyers want answered.
  1. Converted /marketing-executive/ to /about/ with a 301 redirect — rewriting the page as a proper branded About page optimized for “sarah stahl” queries, adding Person schema to help Google disambiguate the right Sarah Stahl from a University of Pittsburgh psychiatry professor, an actress, and several other people sharing the name. Added FAQ entries specifically addressing the disambiguation problem (“Is this the same Sarah Stahl as the actress?”) that was stealing impressions in the query data.
  1. Applied 5 title/meta rewrites on the page-1, zero-click pages — changing abstract creative titles to literal, topic-matched title tags while leaving all page content completely untouched. Ten minutes per page, zero new writing.
  1. Rewrote the hotel booking abandonment page from a 150-word stub into a fully developed ~1,800-word resource covering the real data behind abandonment rates (81.7% industry average), the six causes of experience friction, the mindset shift that changes how operators approach recovery (“abandoned bookings are warm leads”), and nine specific, actionable fixes. Substantially expanded beyond the Hotel-Online version so Google has a clear reason to prefer the original domain.
  1. Rewrote and renamed /direct-booking-strategy-for-property-managers/ to /how-to-reduce-ota-dependence-property-managers/ — repointing the page from a generic “direct booking strategy” angle (which five other pages were already competing for) to a specific OTA-exit angle with the full commission math, rate parity explanation, a five-step exit plan, a how-to-know-if-it’s-working metrics section, and a closing CTA specifically framed for property managers rather than the generic version the page had before.

Week 2:

  1. Wrote the Book Direct Toolkit — a new post at /book-direct-toolkit-property-managers/ targeting “book direct toolkit” (position 62, 32 impressions) with seven embedded tools: a Booking Mix Audit table, a Direct Booking Website Checklist, a Direct Booking Offer Framework, a CRM Setup Guide, a Lead Capture System, a Tracking Dashboard, and a 90-Day Launch Plan. This simultaneously targeted a real query cluster, created the first genuine lead magnet on the site, and completed the direct booking content cluster structurally.
  1. Consolidated the direct-booking cannibalization cluster — mapped all six competing posts, designated /direct-booking-marketing-framework/ as the cornerstone, added natural internal links from all competing posts back to the cornerstone using consistent anchor text, and documented the redirect plan for any genuine duplicates (including the “-2” slug artifact that was a telltale sign of a duplicate post in WordPress).
  1. Built the two-platform content system — an editorial framework governing what gets published where going forward: sarahstahl.com for keyword-targeted original content published first; Hotel-Online for industry reaction and collaboration content that doesn’t compete; LinkedIn for distribution teasers and carousels, not full articles.

What the Data Showed Two Weeks Later

Two weeks is not enough time to see the full impact of SEO changes. Google typically takes 4–8 weeks to fully re-evaluate and re-rank pages after significant edits. What follows are early signals — leading indicators of movement, not final results. I’m sharing them anyway because the directional story is already clear.

Homepage:

Metric

Before

After

Change

Clicks

15

17

+13%

Impressions

982

995

+1%

Position

6.67

6.59

Improving

CTR

1.53%

1.71%

+12%

Hotel Booking Abandonment page (rewritten from 150-word stub to ~1,800-word resource, renamed to /hotel-booking-abandonment/):

Metric

Before

After

Change

Clicks

0

1

First click ever

Impressions

141

165

+17%

Position

22.48

10.33

-12 positions in 2 weeks

This is the most significant single movement in the data. Position 22 to position 10 in two weeks, on a page that had been stuck at position 22 for the entire previous measurement period. That’s not a fluctuation — that’s the content depth rewrite working exactly as expected. The page hasn’t crossed into the top 5 yet, but it’s now on page 1 for the first time.

Direct Booking Framework (title/meta rewrite only — no content changes):

Metric

Before

After

Change

Clicks

0

1

First click ever

Position

5.78

5.60

Tightening

This page was at position 5 for months and had never earned a click. Ten minutes of title tag work produced its first click. That’s the clearest possible proof of the page-1-rankings-not-converting problem.

About page (new URL, migrated from /marketing-executive/):

  • New /about/ URL: 1 click, position 4.86 — indexed and earning clicks within the first week of going live
  • /marketing-executive/ still appearing in data at position 8.83 as Google processes the redirect — that impression volume will migrate to /about/ as propagation completes

OTA Dependence post (brand new page):

  • /how-to-reduce-ota-dependence-property-managers/: 10 impressions, position 14.4 — indexed and appearing in search results within days of publication, confirming Google is actively crawling and categorizing new content in the right topical area

“Booking abandonment” query (broader companion query):

  • Impressions: 38 → 58 (+53% in two weeks)
  • Still at position 41 — not close to page 1 yet — but the impression spike after the hotel booking abandonment rewrite suggests Google has started connecting the site more strongly to the broader abandonment query cluster. The new post is lifting adjacent queries, not just its primary target.

Vacation Rental Profit Audit (renamed from “Niche ROI Playbooks”):

  • First appearance in data: 4 impressions, position 1.25 — immediately ranking in position 1 for the exact phrase after the rename. No search volume behind it yet, but the page is correctly positioned and indexed for when that demand grows.

What This Means If You're in the Same Situation

When I decided to use Claude to audit my own website, I expected to find one or two problems. What we actually found was five interconnected problems that had been quietly working against each other for 18 months. None of them was catastrophic in isolation. Together, they’d made a year and a half of consistent writing nearly invisible to the search engines I needed it to reach.

Here’s how to check whether you have the same problems:

Problem 1 — Wrong pages ranking for right queries: Export your full GSC query list, sort by impressions, and click into each query to see which page is surfacing. If it’s not the page you’d choose, the fix is internal links from the wrong page to the right one.

Problem 2 — Thin content on a good query: Find pages sitting at position 15-25 despite matching your topic correctly. Count the words. Under 600 words, mostly intro and CTA, no real depth — content is the ceiling on your position.

Problem 3 — Self-inflicted duplicate content: If you publish simultaneously on your own site and a higher-authority third-party platform, check whether the third-party URL is outranking yours for the same topics. If yes, you’ve been handing Google a decision and losing it every time.

Problem 4 — Legacy pages diluting topical signal: Look at your pages list. Are there pages describing a broader or older version of your positioning that you’re no longer leading with? Every page on your site contributes to Google’s topical model. Legacy pages are quiet saboteurs.

Problem 5 — Page-1 rankings not converting: Any pages at positions 3-7 with 0% CTR are title tag problems, not content problems. Go incognito, search the query, look at how your result actually appears. If the title reads like a LinkedIn post, rewrite the title tag — not the page.

What Comes Next

The structural problems are fixed. What happens now is the slower, compounding work: building out the topical cluster that turns scattered authority into recognized expertise.

The four-week content plan ahead targets queries with proven search demand that have no dedicated pages yet — “vacation rental marketing strategy,” “repeat direct bookings,” “vacation rental email marketing,” “creator marketing for vacation rentals” — building the architecture that signals to Google this site is the authoritative source for a specific subject area, not just a collection of related posts.

The two-platform editorial system is in place so that every new piece of content strengthens the site instead of fragmenting it across domains.

And the data check-in is already scheduled for four weeks from now — when the pages we rewrote will have had enough time in Google’s re-evaluation cycle to show their real positions, not just the early signals.

When I decided to use Claude to audit my own website, I wasn’t sure what I’d find. What I found was humbling, specific, and completely fixable. The embarrassing part isn’t that the problems existed. The embarrassing part is how long they’d been there while I kept publishing and wondering why nothing was working.

If that sounds familiar, the audit is where to start.

Want to run this same process on your vacation rental or hospitality website?

Email
Twitter
LinkedIn
Reddit