Full Site Audit · Locked 2026-05-27

Good bones. Page 5 on Google.
The site looks unfinished — and you're losing keywords faster than you're gaining them.

This audit captures the live state of winnteamrealtors.com on 2026-05-27 — rendered DOM, accessibility tree, schema graph, security headers, and DataForSEO live SERP positions. The site has real content, real reviews, and the right WordPress stack, but a hosting misconfiguration plus unfinished cleanup work is suppressing every ranking signal at once.

Avg Google Rank
44Page 5 · 0 keywords in top 10
Keyword Trajectory
−20 net89 lost · 69 new
Platform
WordPress 6.8.5Elementor · Yoast 27.3 · Plesk
Reviews on Page
27+0 are in Review schema

Lead source: gjapp business #2399 · Industry: Real Estate · Service area: Pinellas County, Tampa Bay, Clearwater Beach, Safety Harbor, Dunedin, Palm Harbor, East Lake Woodlands

36
Overall SEO Health
Critical — cleanup blitz needed
Technical SEO
30
Content quality
35
On-page SEO
25
Structured data
30
Performance / CWV
50
AI search readiness
55
Images
60
01 · TL;DR

Read this if nothing else.

Your site has good fundamentals — decent content, real reviews, real authority via 1,300+ closed deals, the right WordPress plugins. But it's leaking trust signals everywhere because of unfinished work and a hosting misconfiguration. Google currently ranks you on page 5 for your most important keywords. None of this requires a redesign — it's cleanup work.

!

The site looks unfinished — to humans and to Google

Footer lists 10+ links labeled Belleair-Test, Clearwater-Test-Steven, Crystal-Beach-Test-Steven. Six area links go to # (Gulf Island, Isla Del Sol, Treasure Island, Westchase). "St Pete Beach" and "St Petersburg" both point to /m/sand-key (wrong). A link to /contact_retired/ sits in the middle of the homepage. Screams "abandoned site" to ranking algorithms.

!

Your fonts load from a Plesk staging URL — they all CORS-fail

Every Google Font (Inter, Karla, Rufina, Roboto, Montserrat) loads from romantic-euclid.74-208-195-187.plesk.page. CORS blocks them. The site silently falls back to system fonts on every real visit — breaking design and Core Web Vitals.

!

Admin username is publicly leaked

/wp-json/wp/v2/users returns admin username keithwinnfl_wp_admin to anyone who asks. Combined with wp-login.php being publicly accessible and zero security headers, this is one credential-stuffing attack away from compromise.

You're losing keywords faster than gaining them

DataForSEO Labs reports 89 keywords lost recently vs 69 new. Net negative trajectory. Average rank is position 44 — page 5. Zero keywords in the top 10. Your visibility is actively shrinking.

Title tags + meta descriptions are blank or generic on most pages

Homepage title: Home - Winn Team Realtors. No meta description. No geo. No value prop. Same pattern on Contact, Sellers, Buyers Guide. Yoast SEO is installed — the templates were just never filled in.

27+ Google reviews on the page · 0 are in schema

The homepage displays real Google reviews with reviewer names and dates. None are wrapped in Review + AggregateRating schema, so Google can't show star ratings in SERPs. Easiest rich-result win on the site.

02 · Top must-do this week

If you can only do three things — do #1, #2, #3.

Priority order. In this sequence.

Every item below is a 15-minute to 2-hour task. None requires a redesign. None requires waiting on a vendor. Most are one-line config or plugin-install fixes.

#ActionWhy it mattersEffort
1Fix the Plesk staging URL leak. Search-replace romantic-euclid.74-208-195-187.plesk.pagewinnteamrealtors.com in the WP database. Regenerate Elementor CSS cache. Purge Plesk cache.All Google Fonts CORS-fail today. Site uses fallback system fonts. Design is broken on every real visit.30 min
2Lock down WP admin. Plug user enumeration at /wp-json/wp/v2/users (functions.php filter or plugin). Rename/IP-restrict wp-login.php. Enable 2FA.Admin username keithwinnfl_wp_admin is publicly readable right now. WordPress brute-force bots scan for this 24/7.1 hr
3Remove all "Test" placeholder URLs from the footer. 16 links labeled -Test or -Test-Steven. Either rename the IDX pages or remove from footer.Public visitors and Google literally see "Test" in your URLs. Catastrophic for E-E-A-T.1 hr
4Fix 6 dead # footer links — Gulf Island, Isla Del Sol, Island Estates, Isle of Palms, Redington Beach, Redington Shores, Sunset Beach, Treasure Island, Westchase. Build, link out, or remove.Dead links = dead signal to Google. Bounce magnet.30 min
5Fix wrong-destination links. "St Pete Beach" footer → /m/sand-key (wrong). "St Petersburg" → /m/sand-key (wrong). Homepage CTA "Contact Us" → /contact_retired/.Sending visitors to wrong pages destroys conversion + confuses Google about page intent.15 min
6Rewrite homepage title + add meta description. Current: Home - Winn Team Realtors. No description. No geo. Yoast can do this in 2 minutes.Google rewrites weak titles. Zero geo-targeting = zero local visibility lift.20 min
7Add security headers. HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy. Hide X-Powered-By: PHP/8.3.30 and X-Powered-By: PleskLin.Zero security headers = automated scanners give your site an F grade.1 hr
8Add Review + AggregateRating + RealEstateAgent + Person schema. The 27 Google reviews displayed on the homepage. License IDs BK3504148 / SL3531363 as Person.identifier.You already display the reviews. Adding schema unlocks rich-result star ratings in SERPs.2 hr
9Carousel hero → static hero. Replace 7-slide carousel with one static hero (the "We Guarantee To Sell Your Home" message).7 slides = 7 LCP candidates, layout shift, JS bloat. Carousels are documented conversion killers.1 hr
10Migrate Google Maps to loading=async + non-retired loader. Currently using the retired version, throws warnings.Google is killing the legacy loader. Soon it stops working entirely.30 min
03 · Platform architecture

WordPress + Elementor + Yoast on Plesk — the right stack, misconfigured.

The tools you have are the right tools. Yoast SEO is here. Schema graph is here. Sitemap is here. The problem is execution — half-built features and a botched migration are blocking the stack from doing its job.

Stack detected

Tech stack

CMSWordPress 6.8.5 Version exposed
Page builderElementor
SEO pluginYoast SEO 27.3 (configured but mostly empty)
Web servernginx via Plesk
PHP8.3.30 Version exposed via X-Powered-By
Edge cachePlesk (x-cache-status: HIT/MISS)
IDX subdomainhomes.winnteamrealtors.com (Steven's IDX vendor — separate auth domain)
Chat / formsLeadConnectorHQ widget + reCAPTCHA on home
Strategic finding

Most ranking equity sits on a subdomain

Your top-volume target keywords all rank on homes.winnteamrealtors.com (the IDX subdomain) — not on the main site. Google treats subdomains as separate sites by default.

This means:

  • The main domain's authority doesn't flow to listing pages.
  • Listing-page authority doesn't flow back to winnteamrealtors.com.
  • Reviews, blog posts, and pillar content built on the main site can't lift your IDX rankings.
Longer-term fix: Consolidate IDX listings as a subdirectory (winnteamrealtors.com/homes/) if your IDX vendor supports it. This is a multi-week project — not in the Week-1 sprint. But every short-term improvement should ladder up to this decision.
04 · Technical SEO

The crawl path is open. The security posture is wide open.

robots.txt and sitemap are fine. Everything around them is leaking.

T-01Critical

Plesk staging URL leaking in font CSS

Confirmed via Chrome DevTools console. All Google Fonts load from https://romantic-euclid.74-208-195-187.plesk.page/... and return CORS-blocked errors. The site uses fallback system fonts on every real visit.

# Console errors observed in browser
Access to font at 'https://romantic-euclid.74-208-195-187.plesk.page/wp-content/uploads/elementor/google-fonts/fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia1zl7.woff2' from origin 'https://winnteamrealtors.com' has been blocked by CORS policy
Failed to load resource: net::ERR_FAILED
# Same failure for Karla, Rufina, Roboto, Montserrat
Fix: This happens when a Plesk migration is snapshotted from a *.plesk.page preview URL and the home URL is not fully rewritten in the database or Elementor cache. Run a search-replace plugin (Better Search Replace) across the WP database: romantic-euclid.74-208-195-187.plesk.pagewinnteamrealtors.com. Then Elementor → Tools → Regenerate CSS & Data. Then Plesk → purge cache.
T-02Critical

WordPress admin attack surface exposed

Three separate WP exposures stack together to create a credential-stuffing target.

# Probes
GET https://winnteamrealtors.com/wp-login.php             → 200 OK (open to public)
GET https://winnteamrealtors.com/wp-json/wp/v2/users      → 200 OK · leaks admin username "keithwinnfl_wp_admin"
GET https://winnteamrealtors.com/xmlrpc.php               → 405 (mostly blocked — fine)
Fix: (a) Install "Disable WP REST API users endpoint" or add a rest_endpoints filter to functions.php. (b) Install WPS Hide Login to move wp-login.php to a custom path. (c) Enable 2FA via Wordfence or similar. (d) Run a security audit of installed user accounts — remove any unused or orphan accounts.
T-03Critical

Zero security headers present

Direct response header audit returns nothing in the security category. PHP and Plesk both disclose themselves.

# Headers present
server: nginx
x-powered-by: PHP/8.3.30
x-powered-by: PleskLin

# Headers missing
Strict-Transport-Security: NOT SET
Content-Security-Policy: NOT SET
X-Frame-Options: NOT SET
X-Content-Type-Options: NOT SET
Referrer-Policy: NOT SET
Permissions-Policy: NOT SET
Fix: Add via Plesk → Apache & nginx Settings → Additional nginx directives. At minimum: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "strict-origin-when-cross-origin" always;. To hide X-Powered-By: PHP-FPM → expose_php = Off in php.ini, Plesk → strip Plesk header.
T-04Critical

Site is shrinking in Google's index

DataForSEO Labs Domain Rank Overview (US, English):

avg_position     43.98 (page 5)
total_ranked     112 keywords
pos_1_10         0
pos_11_20        9
pos_21_30        20
pos_31_40        21
pos_41_50        22
pos_51_100       40

is_lost          89 keywords  ← regressing
is_new           69
is_up            34
is_down          8
# Net: −20 keywords lost vs gained recently
T-05Warning

Stale sub-sitemap from 2017

listings-sitemap.xml reports lastmod 2017-02-26. Nine years old. Likely empty or pointing to long-dead listing URLs.

Fix: In Yoast → General → Features → Disable XML sitemap for the "listings" post type if no longer used, or repopulate. author-sitemap.xml should also be disabled — it exposes /agents/keithwinnfl_wp_admin/, the same surface as T-02.
T-06Warning

JS console errors on every page load

Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
Google Maps JavaScript API has been loaded directly without loading=async
Google Maps JavaScript API warning: RetiredVersion
Failed to execute 'postMessage' on 'DOMWindow' ('https://www.youtube.com')
@import rules are not allowed here

Google Maps is on the retired version — when Google enforces the cutover (announced for 2026), Maps will stop rendering entirely on this site.

T-07Pass

robots.txt and sitemap_index are correct

robots.txt: Yoast-managed, allows all, declares sitemap. sitemap_index.xml: 13 child maps (post, page, buyer-guide, guarantee, location-profile, neighborhood, seller-guide, talking-house, listings, category, location-type, location, author). HTTPS redirect from HTTP works correctly.

05 · Content & on-page

Real content, real reviews, real authority — almost completely buried.

Yoast SEO is installed but the title-tag and meta-description templates were not customized. The footer is full of placeholder content. Heading hierarchy is broken in two opposite directions on different pages.

C-01Critical

"Test" placeholder URLs are publicly visible in the footer

The "Areas We Serve" footer block links to 16 URLs ending in -Test or -Test-Steven.

Fix: Either ask Steven (IDX vendor) to rename the destination pages to drop the -Test-Steven suffix, or update the footer in WP to point to the production URLs.
C-02Critical

Dead and wrong-destination links throughout the footer

  • 10 links go to #: Gulf Island, Isla Del Sol, Island Estates, Isle of Palms, Redington Beach, Redington Shores, Sunset Beach, Treasure Island, Westchase, "More Coming Soon!"
  • "St Pete Beach" footer link → /m/sand-key (wrong destination)
  • "St Petersburg" footer link → /m/sand-key (wrong destination)
  • "Contact Us" body CTA → /contact_retired/ (retired page)
  • "About Winn Team" footer link → /?page_id=2929040 (ugly URL, should be /about-winnteam/)
C-03Critical

Heading hierarchy is broken in both directions

Audit of homepage + community pages reveals two opposite failures.

PageH1H2H3H4Issue
/ (home)732112Carousel created an H1 per slide
/contact/1OK
/about-winnteam/1OK
/sellers/1OK
/buyers-guide/1OK
/communities-2/east-lake-woodlands/0No primary heading
C-04Critical

Title tags and meta descriptions empty or generic

PageTitleMeta description
/Home - Winn Team RealtorsMissing
/contact/Contact - Winn Team RealtorsMissing
/about-winnteam/About WinnTeam - Winn Team RealtorsHas one (good quality)
/sellers/Sellers - Winn Team RealtorsMissing
/buyers-guide/Buyers Guide - Winn Team RealtorsMissing
/communities-2/east-lake-woodlands/East Lake Woodlands - Winn Team RealtorsMissing
Fix: Open Yoast → Search Appearance → Content Types. Rewrite each page-type title template to include geo + value prop. Example: %%title%% in %%city%%, FL — Winn Team Realtors (Sell Guarantee or We Pay You). Bulk-edit individual meta descriptions in Yoast → Bulk editor.
C-05Strength

Real E-E-A-T signals are present — just not advertised

  • Two named agents with photos: Keith Winn + Yamil Winn
  • License numbers in footer: BK3504148 | SL3531363
  • 27+ Google reviews embedded with reviewer names and dates (Linda Suminski, Richard Suminski, Rachel Marcano, Audrey Hillman, Richard Hillman, gerard geva, Tulio Zuloaga, Janice Menendez, Betty Locher, Consuelo Rivers, Joe Hillner, Sonny Bissa, Rebecca Larrea, Prov Hogan, Julie Edwards, Don Orsini, Denise Houser, Jose, Yandiraminta Nunez, Rosario Nunez, Jennifer Velasquez, tamara gerardi, Susan Spallone, Christina O'Farrell, Susan Harris)
  • Social profiles linked: Facebook, Instagram, YouTube, LinkedIn, TikTok
  • Phone + email displayed site-wide
  • "Trusted by 1,300+" trust claim

The story is here. It's just not getting credit from Google because it's not in schema (see §06) and not in the metadata (see C-04).

06 · Structured data

Bare minimum schema. The high-value real-estate types are missing.

Yoast emits a basic @graph with WebPage, BreadcrumbList, WebSite, and an implied Organization. None of the schema types that matter for a realtor in 2026 are present.

Present

TypeStatusNotes
WebPageOKdatePublished 2019-07-18, dateModified 2024-12-20.
WebSiteOKPublisher correctly linked.
BreadcrumbListOKSingle-item on home — expected.
OrganizationImpliedReferenced via @id but no rich properties.

Missing (high-value for a real-estate site)

On the homepage / about page:

  • RealEstateAgent (subclass of LocalBusiness)
  • Person for Keith + Yamil with identifier = license IDs
  • AggregateRating + Review for the 27 Google reviews
  • areaServed (Pinellas, Hillsborough, Pasco, Sarasota)
  • openingHoursSpecification
  • sameAs array (FB, IG, YT, LinkedIn, TikTok)
  • Service for "We Guarantee To Sell Your Home" + Buy Back Guarantee + Cash Offer

On community / neighborhood pages:

  • Place for each neighborhood
  • RealEstateListing for active listings (the listings-sitemap.xml from 2017 needs to be rebuilt or removed)
  • FAQPage do NOT add — Google's 2026-05-07 update restricts rich results to gov/healthcare

Adding AggregateRating + Review for the existing 27 reviews is the single highest-ROI structured-data investment on the site. Star ratings appear in SERPs. Click-through-rate on rich results is consistently 30–80% higher than plain results.

08 · Security

WordPress is wide open. PHP and Plesk versions are advertised. Zero security headers.

Read-only probes against publicly accessible endpoints only. No intrusive testing.

CheckResultNotes
HTTPSValidForces HTTPS via 301 from HTTP.
Strict-Transport-SecurityMissingNo HSTS header.
Content-Security-PolicyMissingNo CSP — no XSS hardening at edge.
X-Frame-OptionsMissingSite can be iframed by anyone. Clickjacking risk.
X-Content-Type-OptionsMissingMIME-sniffing not disabled.
Referrer-PolicyMissingDefault unsafe-url behavior.
Permissions-PolicyMissingSensitive APIs not denied.
X-Powered-ByDisclosedPHP/8.3.30 AND PleskLin — two stack discloses.
WordPress xmlrpc.php405Blocked (mostly).
WordPress wp-login.php200 OpenPublicly reachable. No rate-limit visible. No 2FA confirmed.
WordPress /wp-json/wp/v2/users200 OpenReturns {"id":1,"name":"admin","slug":"keithwinnfl_wp_admin"} — admin username leaks.
WordPress versionDisclosed6.8.5 in meta-generator + Plesk header.
!

Three exposures stack into one attack path

An attacker reading /wp-json/wp/v2/users learns the admin username (keithwinnfl_wp_admin). They then run a credential-stuffing or brute-force attack against the wide-open /wp-login.php. No 2FA. No rate-limit detected. WP 6.8.5 has known advisories (you should be on 6.8.5-patched or 6.9+). Fix the username leak first, then the login surface.

09 · Performance · Core Web Vitals

LCP is borderline. TTFB is the bottleneck. Carousel + chat widget + reCAPTCHA add bloat.

Lab data from Chrome DevTools performance trace. CrUX field data is unavailable — meaning Google does not have enough real-user traffic to report percentiles, which itself is a signal of low organic visibility.

2,261
LCP (ms) · lab
Borderline · target < 2,500
1,848
TTFB (ms) · lab
2.3× over target · < 800
0.04
CLS · lab
Good · target < 0.1

LCP breakdown

PhaseTimeVerdict
TTFB1,848 msDominant · WordPress + Elementor render time on cache miss
Load delay289 msBorderline · Hero image not preloaded
Load duration37 msOK
Render delay88 msOK

Render-path issues observed

  • 7-slide hero carousel — each slide loads its own background image. Pick one hero image, drop the carousel.
  • Google Maps loaded synchronously AND on the retired API version (announced shutdown).
  • LeadConnectorHQ chat widget + reCAPTCHA loaded on the homepage. Move to interaction-triggered load.
  • YouTube embed in carousel throws cross-origin postMessage warning.
  • Multiple @import rules in CSS — Elementor stylesheet inefficiency.
  • Forced reflow detected on main thread.
  • Plesk cache MISS on first request, HIT on second. Edge caching is partially configured but cold cache penalty hits real first-time visitors.
10 · Images & alt text

Half of homepage images have no alt text.

40
Total images (home)
13
Empty alt
0
Missing alt attr

Decorative images legitimately use alt="". But many of the empty-alt images are reviewer profile photos — those should describe the person. Reviewer headshots are also not lazy-loaded; on a homepage with 27 review cards, this adds measurable load.

Format check: Elementor-generated images are likely JPEG, not WebP/AVIF. Confirm via audit-design.sh and convert the hero + above-the-fold images first.

11 · Where you rank today

Average position 44. Zero keywords in the top 10.

DataForSEO Labs ranked-keywords pull for the United States, English, organic-only. Filtered to positions ≤ 50.

KeywordSearch VolumeCurrent PositionURL ranking
zillow appraisals72013/seller-guide/zestimate-accuracy-is-zillow-higher-or...
home for sale in pinellas county2,40032homes.winnteamrealtors.com/i/pinellas-county
houses for sale in pinellas county2,40032homes.winnteamrealtors.com/i/pinellas-county
home sales pinellas county fl2,40038homes.winnteamrealtors.com/i/pinellas-county
homes for sale in pinellas county florida2,40038homes.winnteamrealtors.com/i/pinellas-county
safety harbor houses for sale2,90039homes.winnteamrealtors.com/i/Safety-Harbor
homes for sale in safety harbor2,90041homes.winnteamrealtors.com/i/Safety-Harbor
safety harbor homes for sale2,90042homes.winnteamrealtors.com/i/Safety-Harbor
pinellas county fl homes for sale2,40041homes.winnteamrealtors.com/i/pinellas-county
houses for sale pinellas county2,40044homes.winnteamrealtors.com/i/pinellas-county
houses for sale in tampa bay florida1,30045homes.winnteamrealtors.com/i/tampa
houses for sale in tampa bay fl1,30047homes.winnteamrealtors.com/i/tampa
your home sold guaranteed realty1,90048/guarantees/
houses for sale in tampa bay1,30049homes.winnteamrealtors.com/i/tampa
how accurate are zestimates1,60050/seller-guide/zestimate-accuracy-is-zillow-higher-or...

Competitive position

DomainAvg positionKeywords rankedETVNotes
winnteamrealtors.com (you)4411269Page 5 average
zillow.com5.6110 overlap4,970National portal · unbeatable on portal terms
realtor.com9.489 overlap4,942National portal
redfin.com11.560 overlap2,359National portal
homes.com15.766 overlap779National portal
lipplyrealestate.com14.210,545 site-wide389 on overlapDirect local competitor · beatable

You can't beat Zillow on portal terms. You can beat lipplyrealestate.com — a similarly-sized local team. They have 94× your ranked keyword count primarily because their site does the basics (titles, descriptions, content depth, internal linking) that yours does not.

12 · Quick-win keywords

Realistic page-1 movement within 4 weeks of cleanup + content.

Keywords where you already rank position 30–50 (Google considers you topically relevant) and where the SERP is not portal-locked.

KeywordVolumeCurrentRealistic targetWhat's needed
zillow appraisals72013Top 5On-page polish + internal links from /sellers/ + meta description
how accurate are zestimates1,600505–10Same article; add FAQ section, fix title to lead with question
your home sold guaranteed realty1,900485–10Brand-adjacent term · build Guarantees page authority
safety harbor homes for sale2,900428–15Rewrite IDX page title, add local content above listings
safety harbor houses for sale2,900398–15Same page
pinellas county homes for sale2,4003210–20Pinellas county landing page on main domain · funnel authority to IDX
houses for sale in tampa bay florida1,3004515–25Tampa landing page · neighborhood guides
13 · Prioritized roadmap

4 weeks to stop the bleeding. Beyond that, real ranking work.

Week 1Cleanup blitz

Stop the bleeding. Lock down the site.

  1. Fix the Plesk staging URL leak in Elementor fonts (T-01)
  2. Plug WP user enumeration + harden wp-login + enable 2FA (T-02)
  3. Add security headers + hide PHP/Plesk version (T-03)
  4. Remove all 16 "Test" placeholder URLs from footer (C-01)
  5. Fix 10 dead # footer links (C-02)
  6. Fix wrong-destination links (St Pete Beach, St Petersburg, contact_retired) (C-02)
  7. Switch Google Maps to loading=async + non-retired loader (T-06)
Week 2On-page foundation

Make the metadata actually do its job.

  1. Rewrite all page titles with geo + value-prop pattern (C-04)
  2. Bulk-add meta descriptions in Yoast (C-04)
  3. Fix the 7-H1 carousel on the homepage; collapse to one H1 (C-03)
  4. Add H1 to community pages — start with East Lake Woodlands (C-03)
  5. Clean llms.txt: fix typo, noindex Test Taxonomy, noindex client custom-search pages, noindex structural_integrity_notes (AI-01)
  6. Add 301 redirect: /?page_id=2929040/about-winnteam/
  7. Disable or rebuild the listings-sitemap.xml from 2017 (T-05)
  8. Disable author-sitemap.xml (T-02 / T-05)
Week 3Schema + trust

Show Google the authority that's already on the page.

  1. Add RealEstateAgent schema with areaServed, serviceArea (§06)
  2. Add Person schema for Keith + Yamil with identifier = license IDs BK3504148 / SL3531363
  3. Add AggregateRating + Review for the 27 displayed Google reviews — biggest rich-result win on the site
  4. Add LocalBusiness with address + geo
  5. Build a Sold/Closed Properties page (the "1,300+" proof) — currently unsupported claim
Week 4Performance + content

Speed up the render. Start ranking content.

  1. Carousel hero → static hero (perf + LCP + CLS)
  2. Defer chat widget + reCAPTCHA until interaction
  3. Enable WebP/AVIF via Elementor or an image-optimization plugin
  4. Publish 4 long-form posts: zillow appraisals, cash offer pinellas, safety harbor neighborhoods, tampa bay relocation
  5. Cross-link new posts from homepage + community pages
Month 2+Strategic

The subdomain decision.

Most of your ranking equity sits on homes.winnteamrealtors.com. Google treats that as a separate site. Talk to Steven (IDX vendor) about whether listings can be served as winnteamrealtors.com/homes/ instead. Consolidating to a subdirectory unifies authority. This is multi-week and IDX-vendor-dependent — not in the Week 1–4 plan, but every short-term improvement should be designed assuming this consolidation will eventually happen.