SKÅNEDIGITAL

Insights

SEO and GEO (AI Search) Guide for Businesses Building a Website in Malmö

If you run a business in Malmö, Lund, Helsingborg, or anywhere else in Skåne and you're planning a new website (or rebuilding an existing one), the answer to "how do people find me?" is no longer just ranking on Google — it's being cited by AI search engines too.

This guide collects the technical and strategic items you need to think about — for both classic SEO (Google, Bing) and GEO, Generative Engine Optimization (ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini) — when you're building or rebuilding a site.


1. Technical foundation: where SEO and GEO overlap

AI search engines (LLM-based systems) expect clean, semantic, well-structured HTML to crawl, index, and summarize content. A WordPress-plus-plugins stack rarely delivers that cleanliness.

With Next.js static export, the way we build at Skåne Digital:

| Feature | SEO impact | GEO impact | |---|---|---| | Server response time of 120-200ms | Core Web Vitals (LCP/INP/CLS) ranking signal | Fast crawling, full content retrieval | | No database, PHP, or admin panel | Minimal attack surface, no wasted crawl budget | LLM bots (GPTBot, ClaudeBot, PerplexityBot) crawl without friction | | Static HTML served from a CDN edge | Optimized TTFB and LCP | Content is instantly accessible, no waiting for JavaScript render | | Semantic HTML5 (<article>, <section>, <header>, <nav>) | Google's crawler understands the structure | LLMs correctly parse sections, headings, lists | | JSON-LD structured data (build-time) | Rich results (FAQ, HowTo, LocalBusiness, Service) | AI systems read the schema to understand entities and relationships |

Rule of thumb: if your site shows 50+ requests, dozens of third-party scripts, and a TTFB over 2 seconds in the browser's F12 → Network tab, both Google and AI bots will struggle with it.


2. Local SEO: the requirements for Malmö/Lund

To show up in Google's local map pack, your Google Business Profile (GBP) and your website need to match exactly.

Checklist:

  1. NAP consistency (Name, Address, Phone)

    • Your GBP profile, site footer, LocalBusiness JSON-LD, hitta.se, eniro.se, Bing Places, Apple Maps — identical, character for character.
    • Address format consistent everywhere it appears.
  2. The right primary category

    • "Web designer" / "Webbyrå" / "Software company" — describe what you do with a single, accurate category. Add secondary categories for services you genuinely offer (SEO, e-commerce, maintenance).
  3. LocalBusiness + WebSite + Organization JSON-LD

    {
      "@context": "https://schema.org",
      "@type": "LocalBusiness",
      "name": "Skåne Digital",
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Malmö",
        "addressRegion": "Skåne",
        "addressCountry": "SE"
      },
      "geo": { "@type": "GeoCoordinates", "latitude": 55.605, "longitude": 13.0038 },
      "telephone": "+46 72 680 78 34",
      "url": "https://skanedigital.com",
      "priceRange": "$$",
      "areaServed": ["Malmö", "Lund", "Helsingborg", "Skåne län"]
    }
    

    (If you deliberately don't publish a street address — as we don't — skip the streetAddress field and stay at city/region/country level.)

    This needs to be injected into the static HTML at build time, not added later through a plugin.

  4. City / service pages

    • A dedicated page for each target city/service combination (e.g. a page for "web design in Malmö," another for "web design in Lund").
    • Content: references from that city, local search intent, a "we're here too" signal for nearby businesses.
    • Link the multilingual versions with hreflang (sv/en/tr/...).
  5. A review strategy

    • After every project, ask the client for a review with a direct link to your GBP.
    • Reply to reviews — Google treats answered reviews as a signal of an "active business."

3. Content architecture: topic clusters and semantic depth

Google no longer looks for "keyword density" — it looks for topical authority. AI search engines work on the same principle: sites that cover a topic comprehensively, in a structured way, from credible sources, come out ahead.

Example cluster structure for a Malmö/Lund business:

Pillar page: a service overview page — scope, process, pricing model, references, FAQ.

Cluster pages (examples):

  • E-commerce site for Malmö businesses
  • SEO consulting for Lund businesses
  • WordPress vs. Next.js comparison for Skåne businesses
  • Google Business Profile optimization guide
  • Core Web Vitals / site speed explained

Internal linking strategy:

  • Every cluster page links back to the pillar page
  • The pillar page links out to every cluster
  • Blog posts link to the relevant cluster/service pages
  • BreadcrumbList JSON-LD communicates the hierarchy to Google and AI systems

4. GEO (Generative Engine Optimization): optimizing for AI search engines

ChatGPT (Bing-backed), Perplexity, Google AI Overviews, Claude, Gemini — these systems don't run a classic ranking algorithm, they do LLM-based summarizing and answering. To be cited as a "source" by these systems:

4.1. Publish llms.txt and llms-full.txt

  • An /llms.txt file at the root: what your site is about, a list of key pages, brand identity.
  • /llms-full.txt: a combined markdown/text version of all key pages.
  • These files help AI bots (GPTBot, ClaudeBot, PerplexityBot) understand your site quickly and fully.

On Skåne Digital sites, these files are generated automatically as public/llms.txt and public/llms-full.txt.

4.2. Structured data (Schema.org) — build-time, not a plugin

AI systems extract JSON-LD from HTML and process it as knowledge graph nodes. The following are essential:

| Schema type | Why? | |---|---| | Organization / LocalBusiness | Who you are, where you are, what you do | | WebSite + SearchAction | On-site search can surface in AI Overviews | | Service / Product | Your services/products are recognized as entities | | FAQPage | FAQ answers get quoted directly in AI responses | | BreadcrumbList | Page hierarchy makes context clear | | Article / BlogPosting | Your blog posts can be cited as a "source" | | Review / AggregateRating | Social proof, trust score |

Important: this schema must be written into the static HTML at build time. Schema rendered client-side (in the browser) is usually not read by AI bots.

4.3. Content format: answer-first, structured, quotable

AI systems prefer short, clear, headed, listed, tabular content over long paragraphs.

Writing rules:

  • Phrase H2/H3 headings as questions: "How long does a website take in Malmö?", "Next.js or WordPress?"
  • Give the answer in the first 2-3 sentences, details after (inverted pyramid)
  • Use bulleted lists, comparison tables, numbered step lists
  • Include at least one FAQPage block (3-5 common questions) per page
  • Give statistics, sources, dates, measurable data ("40% faster," "LCP 1.2s," "2026 data")

4.4. Encode E-E-A-T signals

  • Person/Author schema attributing content to a real name, LinkedIn, photo, bio
  • Publisher/Organization for corporate identity
  • datePublished, dateModified in ISO 8601 format
  • External sources you cite should be credible (government, educational, industry bodies)

5. Multilingual structure: critical for the Skåne market

Malmö/Lund businesses typically target Swedish + English at minimum, and often Arabic, Polish, Somali, Turkish, or Farsi as well.

Technical implementation (Next.js or similar):

├── /sv/ (Swedish - default)
├── /en/ (English)
├── /ar/ (Arabic)
├── /tr/ (Turkish)
└── /pl/ (Polish)

Required techniques:

  • hreflang on every page (HTML <head> + HTTP header + sitemap)
  • x-default pointing to /sv/ or /en/
  • A language switcher that preserves context (links to the translation of the current page, not back to the homepage)
  • The JSON-LD inLanguage field set correctly on every page
  • A separate sitemap <url> entry for every language

6. Speed and Core Web Vitals: the common ground for ranking and AI crawling

| Metric | Good threshold | Why it matters | |---|---|---| | LCP (Largest Contentful Paint) | < 2.5s | Google ranking, AI crawl time | | INP (Interaction to Next Paint) | < 200ms | User experience, ranking tie-breaker | | CLS (Cumulative Layout Shift) | < 0.1 | Visual stability, trust signal | | TTFB (Time to First Byte) | < 200ms | Crawl budget, full content retrieval by AI bots | | Total requests | < 30 | Faster crawling, fewer failures | | Third-party scripts | 0-1 (excluding analytics) | Security, privacy, speed |

Testing tools:

  • PageSpeed Insights — Google's own data
  • WebPageTest — real device/network simulation
  • curl -I https://yoursite.com — check server-timing, cf-cache-status, content-encoding: br

7. Security and trust signals

Both Google and AI systems favor secure, transparent, clearly-owned sites.

  • HTTPS + HSTS (required)
  • security.txt (/.well-known/security.txt) — a security disclosure channel
  • A privacy policy and a GDPR-compliant cookie banner (Google Consent Mode v2)
  • robots.txt — decide deliberately whether you allow or restrict AI bots (GPTBot, ClaudeBot, PerplexityBot, Google-Extended)
  • On the contact page: physical address (or service area), phone, email, org number, VAT registration number

8. Measurement and process: this is never "done"

Check monthly:

  1. Google Search Console → Performance → Pages / Queries / Countries / Devices
  2. GBP Performance → Search / Maps / Directions / Search terms
  3. PageSpeed (mobile/desktop) — homepage plus your 5 most important pages
  4. Sitemap / robots.txt / llms.txt — accessibility, freshness
  5. AI visibility test: ask ChatGPT/Perplexity/Gemini "web design agency in Malmö" — which sites come up? Are you one of them?

Check quarterly:

  • Content updates (dates, pricing, references, FAQ)
  • New blog post / case study
  • Schema/JSON-LD audit (Google Rich Results Test)
  • Competitive analysis: which terms are competitors ranking for

9. The Skåne Digital difference: we hand you this checklist as a starting point

When you work with a team based in Malmö, living the Skåne market daily, coding from scratch on a Next.js static architecture:

| Process | Skåne Digital | Typical agency | |---|---|---| | Technical SEO/GEO foundation | Ready at handover (build-time) | Added later via plugin, or not at all | | LocalBusiness + Service + FAQ JSON-LD | On every page, static | Via plugin, dynamic, sometimes missing | | llms.txt / llms-full.txt | Generated automatically | Unknown / absent | | Multilingual hreflang + city pages | Built into the architecture | Manual / plugin / incomplete | | Core Web Vitals report | Included at delivery | A separate service, if offered at all | | Local SEO (GBP, NAP, review strategy) | Included as consulting | Separate fee / external package | | Portability (no vendor lock-in) | Static files, yours to keep | Dependent on the WP database |


10. Three steps to get started

  1. A free discovery call (coffee at our Malmö office, or a video call) — your goals, current site, competitors, budget.
  2. A fixed-scope quote — what's included, what isn't, timeline, cost. No surprises.
  3. Kick-off — content gathering, design approval, development, testing, launch, 30 days of support.

Bottom line

If you run a business in Malmö or Lund and you want your website to work on Google, in AI search engines, and in turning visitors into customers — don't compromise on the five-sided foundation: infrastructure, local knowledge, speed, transparency, and measurability.

Take a look at our services, browse our past work, or get in touch to schedule a free discovery call.

At our Malmö office, or online — let's talk about your project.

YOUR NEXT PROJECT
STARTS HERE

Let's talk about your project. We get back to you within 24 hours.

GET A QUOTE