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

316 lines
8.9 KiB
Markdown

# Landvex SEO Fixes - Actionable Commands
## K8: Canonical Fix (CRITICAL)
### CloudFront Function Approach (Recommended - fixes ALL pages at once)
Create a CloudFront Function to rewrite canonical headers:
```javascript
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:
```bash
# 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:**
- /methodology/ → https://www.landvex.com/methodology/
- /enterprise/ → https://www.landvex.com/enterprise/
- /about/ → https://www.landvex.com/about/
- /careers/ → https://www.landvex.com/careers/
- /contact/ → https://www.landvex.com/contact/
- /privacy/ → https://www.landvex.com/privacy/
- /terms/ → https://www.landvex.com/terms/
- /security/ → https://www.landvex.com/security/
- /trust/ → https://www.landvex.com/trust/
- /compliance/ → https://www.landvex.com/compliance/
- /cookie-policy/ → https://www.landvex.com/cookie-policy/
- /dpa/ → https://www.landvex.com/dpa/
- /data-lineage/ → https://www.landvex.com/data-lineage/
- /data-quality/ → https://www.landvex.com/data-quality/
- /subprocessors/ → https://www.landvex.com/subprocessors/
- /sla/ → https://www.landvex.com/sla/
- /reports/ → https://www.landvex.com/reports/
- /pilot/ → https://www.landvex.com/pilot/
- /blog/ → https://www.landvex.com/insights/
- /accessibility/ → https://www.landvex.com/accessibility/
- /verticals/* (all 6 verticals)
- /intelligence/* (all 10 indexes)
- /cities/* (all 11 cities)
- /insights/* (all articles)
---
## K6: /comparison Fix
### Option A: 301 Redirect (Recommended)
Add to CloudFront function or S3 redirect:
```
/comparison → 301 → /
```
S3 redirect metadata:
```bash
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:
```html
<div class="dd-label">Compare</div>
<a href="/comparison/">
Compare →
...
</a>
```
---
## K7: /intelligence-map Content-Type
```bash
# 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:
```html
<p class="hero-sub">Five interlocked layers — from global field observation to verified intelligence.</p>
```
To:
```html
<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:
```html
<a class="vertical-card" href="/intelligence/investment-attractiveness-index/">
<h3>Location Attractiveness Index</h3>
```
To:
```html
<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)
### Recommended Fix:
**Option A: Add step 5 to Enterprise (RECOMMENDED)**
Add after step 4:
```html
<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:
```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):
```html
<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
### Copyright Format (apply to ALL footers):
```html
<div class="footer-copy">© 2026 Landvex Inc. · Landvex AB (org.nr 559141-7042)</div>
```
### HQ Format (apply consistently):
```html
Landvex Inc. · Houston, Texas (US) · Landvex AB · Org.nr 559141-7042 · Tyresö, Sweden (EU)
```
### Status Banner (add to all pages or remove from methodology):
```html
<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>
```
### TLS/Security Statement (add to footer on all pages):
```html
<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:
```html
<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
```bash
# 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