SEO Audit Report

tenhoopenrealty.com — Full Site Analysis
Date: March 23, 2026 Business: ten Hoopen Realty CMS: WordPress + Elementor CDN: Cloudflare AMI License: 19855
48 /100 Overall Score
Technical SEO48/100 (25%)
Content Quality62/100 (25%)
On-Page SEO55/100 (20%)
Schema / Structured Data35/100 (10%)
Performance (CWV)25/100 (10%)
Images30/100 (5%)
AI Search Readiness38/100 (5%)
🏠 Real Estate Agency — Lagos, Algarve, Portugal • International buyers • 6 languages

⚠️ Top 5 Critical Issues

  1. 1Property URLs use query parameters (/property-details?reference=XXXX) causing canonical collapse — all pages canonicalize to same URL
  2. 2Property pages likely excluded from XML sitemap — query-parameter URLs not included by Yoast
  3. 3All three Core Web Vitals failing on mobile — LCP 5-8s, INP 300-600ms, CLS 0.15-0.40
  4. 4hreflang implementation likely broken — GTranslate injects via JavaScript only, invisible to crawlers
  5. 5Content cannibalization between buying guide and blog post targeting same keywords

⚡ Top 5 Quick Wins

  1. 1Create /llms.txt file — first-mover advantage for AI search ~2 hrs
  2. 2Add author bylines with credentials to all guide/blog content ~4 hrs
  3. 3Add <link rel="preconnect"> for cdn.proppy.app, fonts.gstatic.com ~30 min
  4. 4Enable Cloudflare APO ($5/mo) for instant TTFB improvement ~30 min
  5. 5Add "Last Updated" dates to all informational pages ~2 hrs

🔧 1. Technical SEO

48 /100

1.1 Crawlability

robots.txt — Standard Yoast configuration:

User-agent: * Disallow: /wp-admin/ Disallow: /wp-login.php Disallow: /cgi-bin/ Disallow: */?s=* Disallow: /xmlrpc.php Disallow: /author/ Disallow: /tag/ Disallow: /category/ Allow: /wp-content/uploads/ Allow: /wp-content/themes/ Allow: /wp-content/plugins/ Sitemap: https://www.tenhoopenrealty.com/sitemap_index.xml
SeverityIssue
MediumNo AI crawler directives (GPTBot, ClaudeBot, PerplexityBot all allowed by default)
Medium/category/ is disallowed — may block useful category archive pages

XML Sitemap — 8 sub-sitemaps (Yoast-generated)

SeverityIssue
CriticalProperty detail pages excluded from all sitemaps (query-parameter URLs)
MediumAuthor sitemap exists but /author/ is disallowed — contradictory
Medium/pt/ and /nl/ language variants likely missing from sitemaps

1.2 Indexability

SeverityIssue
CriticalCanonical collapse — all property pages likely canonicalize to /property-details
HighGTranslate pages may create duplicate content with incorrect canonicals
MediumPagination for property listings likely unoptimized (JavaScript-loaded)

1.3 URL Structure

SeverityIssue
CriticalProperty URLs use query parameters. Recommended: /properties/villa-3-bed-lagos-th1234/
Mediumwww vs non-www inconsistency — schema uses www. prefix
MediumTrailing slash consistency needs verification

1.4 Security

SeverityIssue
PassHTTPS active via Cloudflare
HighLikely missing HSTS, CSP, X-Content-Type-Options, Permissions-Policy headers
MediumCloudflare challenge scripts may add latency for legitimate visitors

1.5 Internationalization

SeverityIssue
Criticalhreflang tags only injected via JavaScript (GTranslate) — invisible to crawlers
HighMachine-translated Portuguese for a Portugal-based business is a competitive disadvantage
MediumShould use pt-PT instead of pt for European Portuguese
MediumMissing x-default hreflang tag

1.6 JavaScript Rendering

SeverityIssue
CriticalProppy.app property listings may be client-side rendered only — invisible to crawlers
HighElementor loads ~200-400KB JavaScript regardless of page needs

📝 2. Content Quality

62 /100

2.1 E-E-A-T Assessment — Composite: 5.8/10

Experience
5.5/10
First-hand market signals present but inconsistent; lacks case studies
Expertise
6.0/10
Multilingual team suggests competence; author credentials underexposed
Authoritativeness
5.0/10
Luxury Lifestyle Award strong but likely buried; external citations weak
Trustworthiness
6.5/10
AMI license 19855 is strongest trust signal; multilingual support builds confidence

2.2 Page-by-Page Scores

Page Quality E-E-A-T AI Top Issue
Homepage 65 6.0 4 Too long (3,500-4,200 words); should be 800-1,200
About Us 55 5.0 3 Missing individual team bios with credentials
Buying Guide 68 6.5 6 Verify regulatory accuracy; add update dates
Blog Post 55 5.0 4 Cannibalizes buying guide keywords
Location (Lagos) 60 5.5 5 Missing specific price data and neighborhoods
Selling Page 55 5.0 3 No fee/commission transparency

2.3 Cross-Site Content Issues

SeverityIssue
CriticalContent cannibalization between /buying-property-in-algarve/ and /buying-a-property-in-portugal/
CriticalYMYL content may be outdated — Golden Visa suspended Oct 2023, NHR closed Jan 2024
HighNo author attribution on any content pages
HighNo "Last Updated" dates on informational pages
HighSelling page lacks fee/commission transparency
MediumHomepage too content-heavy — dilutes keyword focus and buries CTAs
MediumBlog publishes primarily in Dutch, limiting English AI citation potential

2.4 Readability

MetricCurrentTarget
Flesch-Kincaid Grade Level10-128-9
Portuguese legal terminology (escritura, CPCV, IMT) pushes complexity higher. Recommendation: Add glossary or tooltip definitions.

📄 3. On-Page SEO

55 /100

3.1 Title Tags & Meta Descriptions

ElementValueAssessment
Homepage TitleReal Estate Agents in Lagos, Portugal | ten Hoopen RealtyGood — includes primary keyword + brand
Meta Description"Deeply rooted in the Algarve region..."Adequate but could be more action-oriented

3.2 Heading Structure

SeverityIssue
MediumMultiple H1 elements on homepage
MediumDuplicate H2s ("DISCOVER THE ALGARVE" appears in variations)
MediumHeadings are descriptive, not question-based — poor for AI extraction
MediumHeading hierarchy skips levels on some pages

3.3 Internal Linking

SeverityIssue
MediumNavigation is thin — only 2 primary items (Properties, Contact)
MediumService pages not linked from primary navigation
MediumBlog/insights section not in main navigation
Low/blog/ returns 404 — content lives at /insights/ or /news/

3.4 Images

SeverityIssue
HighVast majority of images lack descriptive alt text
HighProperty carousel images have no alt text or titles
MediumLogo, partner logos, team photo, award badge — all missing alt text
MediumFlag icons for language switching lack alt text

🔬 4. Schema / Structured Data

35 /100

4.1 Current Implementation

Detected: Organization + RealEstateAgent (dual type), WebSite schema

SeverityIssue
CriticalMissing @context if standalone schema block
CriticalMissing telephone — required for LocalBusiness rich results
CriticalMissing geo coordinates — essential for local search
HighLogo uses SVG — Google prefers raster images (PNG/JPG/WebP)
HighMissing openingHoursSpecification
HighMissing sameAs social profile links
MediumMissing contactPoint with availableLanguage
MediumMissing priceRange
MediumMissing areaServed

4.2 Missing Schema by Page Type

Property Pages
Missing: RealEstateListing + Offer
Priority: Critical
All Interior Pages
Missing: BreadcrumbList
Priority: High
Blog Posts
Missing: Article / BlogPosting + author
Priority: High
Listing Pages
Missing: ItemList + ListItem
Priority: High
About Us
Missing: Person schema for team
Priority: High
Buying Guides
Missing: FAQPage
Priority: High

4.3 Rich Results Eligibility

Rich ResultStatusAction Needed
Local Business PanelPartialAdd telephone, geo, hours, sameAs
BreadcrumbsMissingEnable in Yoast or add manually
ArticleMissingAdd to blog posts with Person author
Product / ListingMissingAdd RealEstateListing on property pages
ItemList CarouselMissingAdd to listing and location pages
FAQMissingAdd to guide pages

5. Performance / Core Web Vitals

25 /100

5.1 Core Web Vitals (Mobile Estimates)

LCP
5.0-8.0s
Threshold: ≤2.5s
POOR
INP
300-600ms
Threshold: ≤200ms
POOR
CLS
0.15-0.40
Threshold: ≤0.1
POOR

Estimated PageSpeed Score: 20-35 (mobile) / 50-65 (desktop)

5.2 JavaScript Payload (~1.0-1.3MB uncompressed)

Elementor
~350KB
Tidio Chat
~300-500KB
jQuery + Migrate
~90KB
Google Tag Manager
~80KB
Facebook Pixel
~60KB
GTranslate
~50-100KB
Google Analytics
~50KB
Owl Carousel
~40KB

5.3 LCP Bottlenecks

#BottleneckEst. Impact
1Owl Carousel hero — browser can't discover image until JS executes+1.5-3.0s
2Render-blocking CSS chain — Elementor loads 500-700KB CSS+1.5-3.0s
3No fetchpriority="high" on LCP imageModerate
4No <link rel="preload"> for hero imageModerate
5Cloudflare challenge scripts on first visit+1-3s

5.4 CLS Sources

SourceEst. CLS
Owl Carousel initialization0.05-0.20
Tidio Chat widget injection0.02-0.10
Web font swap (FOUT)0.02-0.08
GTranslate bar insertion0.01-0.05
Images without dimensions0.01-0.10

🤖 6. AI Search Readiness

38 /100

6.1 GEO Health Breakdown

Citability30/100
Structural Readability45/100
Multi-Modal Content25/100
Authority & Brand Signals40/100
Technical Accessibility50/100

6.2 AI Crawler Access

CrawlerStatusRecommendation
GPTBot (OpenAI)AllowedExplicitly Allow
OAI-SearchBotAllowedExplicitly Allow
ClaudeBot (Anthropic)AllowedExplicitly Allow
PerplexityBotAllowedExplicitly Allow
CCBot (Common Crawl)AllowedBlock (training only)
cohere-aiAllowedBlock (training only)

6.3 llms.txt Status

NOT PRESENT (404)
No Algarve real estate agency has one yet — first-mover advantage available

6.4 Platform Scores

Google AI Overviews
35/100
No FAQ schema, no sourced statistics
ChatGPT Web Search
30/100
No llms.txt, weak brand signals
Perplexity
35/100
No inline citations, no data attribution
Bing Copilot
40/100
Better due to Bing's on-page SEO weighting

6.5 Brand Signal Gaps

SignalStatusImpact
Wikipedia entityNoneHigh negative
Reddit mentionsMinimalHigh negative
YouTube presenceMinimalHighest negative (~0.737 correlation)
Google Reviews4.9/5 (39)Moderate positive (low count)

7. Accessibility Issues

SeverityIssue
HighVast majority of images lack descriptive alt attributes
MediumEmail subscription form field lacks associated <label> element
MediumNo ARIA labels on interactive elements (carousels, modals)
Medium"READ MORE" links lack context-specific titles or aria-labels
MediumSocial media icon buttons may lack text alternatives
LowFocus management issues with custom JavaScript click handlers
LowElementor popup modals need keyboard accessibility verification

🏗 Appendix: Site Architecture

Internal Link Map

Navigation

  • /properties/
  • /contact-us/
  • /pt/home-pt/
  • /nl/home-nl/

Location Pages

  • /meia-praia-lagos/
  • /property-for-sale-in-lagos/
  • /luz/
  • /burgau/
  • /salema/
  • /portimao/
  • /sagres/

Services

  • /selling/
  • /buying-property-in-algarve/
  • /construction/
  • /pools/
  • /development/

Content

  • /about-us/
  • /insights/
  • /category/property-market/
  • /category/general-news/
  • /category/lifestyle/

Legal

  • /terms-and-conditions/
  • /privacy-policy/

Property Listings (Query-Parameter URLs)

ReferenceLocation
V1292Caliças, Lagos
T1182ACanavial, Lagos
T1142Cabanas Velhas, Vila do Bispo
V1291Praia da Luz, Lagos
A1290Meia Praia, Lagos
A1289Burgau, Lagos
T1286Centro, Lagos
V1285Vale Da Lama, Lagos
V1284Atalaia, Lagos
T1227ALuz, Lagos

Third-Party Integrations

Analytics & Marketing

  • GTM: GTM-PZ9NW482
  • GA4: GT-P8ZPM8V
  • FB Pixel: 335856...

Site Features

  • Tidio Chat
  • GTranslate
  • Proppy.app
  • Owl Carousel

Infrastructure

  • Elementor (builder)
  • Cloudflare (CDN)
  • WordPress (CMS)
  • Yoast SEO