Files
boc/landvex-seo-fixes.md
T
Bernt aee0f09db8 landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar
- Vision: Identify-modell, FAISS, OCR alla testade
- API: Alla 7 integrationstester passerade
- Upplösare: Entitetsupplösning verifierad
2026-07-05 06:41:32 +00:00

8.9 KiB

Landvex SEO Fixes - Actionable Commands

K8: Canonical Fix (CRITICAL)

Create a CloudFront Function to rewrite canonical headers:

function handler(event) {
    var request = event.request;
    var response = event.response;
    
    // Replace www.landvex.com with landvex.com in response headers
    if (response.headers && response.headers['link']) {
        for (var i = 0; i < response.headers['link'].length; i++) {
            response.headers['link'][i].value = response.headers['link'][i].value.replace(/www\.landvex\.com/g, 'landvex.com');
        }
    }
    
    return response;
}

Alternative: S3 Batch Fix Commands

If you have AWS CLI access to the S3 bucket:

# Download all HTML files
aws s3 sync s3://landvex-prod/ ./landvex-html/ --exclude "*" --include "*.html"

# Replace all www.landvex.com with landvex.com
find ./landvex-html/ -name "*.html" -exec sed -i 's/www\.landvex\.com/landvex.com/g' {} +

# Upload back
aws s3 sync ./landvex-html/ s3://landvex-prod/ --exclude "*" --include "*.html"

Pages confirmed with wrong canonical:


K6: /comparison Fix

Add to CloudFront function or S3 redirect:

/comparison → 301 → /

S3 redirect metadata:

aws s3api put-object \
    --bucket landvex-prod \
    --key comparison \
    --website-redirect-location / \
    --content-type text/html

Option B: Remove from Navigation

Remove this from the nav dropdown on all pages:

<div class="dd-label">Compare</div>
<a href="/comparison/">
    Compare →
    ...
</a>

K7: /intelligence-map Content-Type

# Check current metadata
aws s3api head-object --bucket landvex-prod --key intelligence-map

# Fix if needed
aws s3 cp s3://landvex-prod/intelligence-map s3://landvex-prod/intelligence-map \
    --metadata-directive REPLACE \
    --content-type "text/html; charset=utf-8" \
    --cache-control "max-age=3600"

H15: Taxonomy Fix

File: /methodology/

Change:

<p class="hero-sub">Five interlocked layers — from global field observation to verified intelligence.</p>

To:

<p class="hero-sub">Six interlocked layers — from global field observation to verified intelligence.</p>

Verify the 6 dimensions are consistently listed:

  1. Opportunity
  2. Growth
  3. Commercial Vitality
  4. Infrastructure Stability
  5. Tourism Potential
  6. Investment Confidence

H16: Location → Investment Attractiveness

File: / (homepage)

Change:

<a class="vertical-card" href="/intelligence/investment-attractiveness-index/">
    <h3>Location Attractiveness Index</h3>

To:

<a class="vertical-card" href="/intelligence/investment-attractiveness-index/">
    <h3>Investment Attractiveness Index</h3>

H30: Pipeline Numbering

Current State:

  • Methodology: 5 layers (01-05)
  • Enterprise: 4 steps (1-4)
    1. Discovery call
    2. Pilot definition
    3. Pilot delivery
    4. Enterprise subscription
  • How it works: 4 steps (1-4)

Option A: Add step 5 to Enterprise (RECOMMENDED) Add after step 4:

<div class="process-step">
    <div class="step-num">5</div>
    <h3>Scale & Optimize</h3>
    <p>Continuous intelligence delivery with quarterly reviews, expanded coverage, and integration into your decision workflows.</p>
</div>

Update CSS:

.process-steps {
    grid-template-columns: repeat(5, 1fr);
}

Option B: Standardize all to 4 steps Change Methodology from 5 to 4 layers by merging "Contradiction Engine" and "Red Team Analysis"


H12: Navigation Standardization

Standard Nav (apply to ALL pages):

<nav>
    <a href="/" class="nav-logo">LandveX</a>
    <div class="nav-links">
        <a href="/#how-it-works">How it works</a>
        <div class="nav-dropdown">
            <a href="/#verticals">Verticals</a>
            <div class="nav-dropdown-menu">
                <a href="/verticals/municipalities/">Municipalities</a>
                <a href="/verticals/infrastructure/">Infrastructure</a>
                <a href="/verticals/property/">Property & Real Estate</a>
                <a href="/verticals/retail/">Retail & F&B</a>
                <a href="/verticals/insurance/">Insurance</a>
                <a href="/verticals/security/">Security</a>
            </div>
        </div>
        <a href="/methodology/">Intelligence</a>
        <a href="/#cities">Cities</a>
        <a href="/insights/">Insights</a>
        <a href="/enterprise/">Enterprise</a>
        <a href="/#contact">Contact</a>
    </div>
    <a href="/#contact" class="btn btn-outline">Get in touch →</a>
</nav>

Pages needing nav fix:

  • /methodology/ (currently minimal nav)
  • /enterprise/ (has different structure)
  • /verticals/* (has minimal "Back to Landvex" nav)
  • /insights/* (need to verify)
  • /intelligence/* (need to verify)

K9: Standardization

<div class="footer-copy">© 2026 Landvex Inc. · Landvex AB (org.nr 559141-7042)</div>

HQ Format (apply consistently):

Landvex Inc. · Houston, Texas (US) · Landvex AB · Org.nr 559141-7042 · Tyresö, Sweden (EU)

Status Banner (add to all pages or remove from methodology):

<div style="background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:12px 18px;margin:16px 0;font-size:.875rem;color:#92400e;">
    <strong>Pre-launch:</strong> All documentation describes the system as designed for August 2026 launch. No live intelligence is being generated or sold at this time.
</div>
<div style="font-size:11px;color:var(--text-muted,#aaa);margin-top:4px">
    All data stored and processed on AWS eu-north-1 (Stockholm). TLS 1.3 encrypted. GDPR compliant.
</div>

Additional Issues Found

Intelligence Index Canonicals Pointing to Home

These pages have canonical pointing to / instead of themselves:

  • /intelligence/development-forecast-index/
  • /intelligence/risk-resilience-index/

Fix: Change canonical to self-referencing:

<link rel="canonical" href="https://landvex.com/intelligence/development-forecast-index/">
<link rel="canonical" href="https://landvex.com/intelligence/risk-resilience-index/">

CloudFront Cache Errors

Response shows: x-cache: Error from cloudfront This may indicate cache configuration issues that should be investigated.

/comparison is Duplicate Content

Diff between / and /comparison shows identical content. This should be 301 redirected.


Quick Verification Commands

# Check canonical on any page
curl -s https://landvex.com/PAGE/ | grep canonical

# Check all pages for www in canonical
for page in methodology enterprise about contact privacy terms security; do
    echo "=== $page ==="
    curl -s https://landvex.com/$page/ | grep canonical
done

# Check Content-Type
curl -sI https://landvex.com/intelligence-map | grep content-type

# Check redirect chain
curl -sIL https://www.landvex.com/methodology/ | grep -E "(HTTP|Location)"

# Check for CloudFront cache errors
curl -sI https://landvex.com/ | grep x-cache

# Check all intelligence indexes
for idx in city-health infrastructure-risk investment-attractiveness commercial-opportunity development-forecast growth-velocity neighbourhood-quality risk-resilience urban-growth; do
    echo "=== $idx ==="
    curl -s https://landvex.com/intelligence/$idx-index/ | grep canonical
done

Priority Order

  1. P0 - K8 (Canonicals): Fix immediately - affects SEO indexing
  2. P1 - K6 (/comparison): 301 redirect or remove
  3. P1 - K7 (Content-Type): Fix if confirmed
  4. P2 - H15/H16/H30: Content consistency
  5. P2 - H12: Navigation standardization
  6. P3 - K9: Footer/standardization