Technical SEO Advisory
v1.1 · March 2026

URL Localization &
Domain Migration Plan

A two-phase technical SEO transition for iblaursen.dk — giving each language its own URL identity, then internationalizing to iblaursen.com.

41 URLs Mapped3 Languages2 Sequential Phases
00

Executive Brief

The business case, expected outcomes, and strategic rationale in plain language.

Why This Plan Exists

Ib Laursen currently serves Danish, English, and German customers from the same website addresses. A Danish product page and its English equivalent share an identical URL — meaning search engines such as Google can only index one version, and that version is almost always the Danish one. English and German customers searching in their own language are effectively invisible to Google's results pages for those markets.

This plan resolves that invisibility in two steps: first by giving each language its own unique web address on the existing domain, and then by moving the entire site to a new international domain (iblaursen.com) structured specifically for global audiences. The two steps are deliberately kept separate to protect the organic search traffic the site already earns.

After Phase 1

Three Indexable Language Versions

Google can now crawl, index, and rank the Danish, English, and German versions of every product page independently. Each language competes in its own market rather than all three competing for a single URL slot.

After Phase 2

A Truly International Domain

iblaursen.com with /da/, /en/, and /de/ subdirectories sends the correct geo and language signals to Google for all three markets simultaneously — the industry-standard structure for international e-commerce.

Throughout Both Phases

Existing Rankings Protected

By separating the two changes and waiting for Google to fully process Phase 1 before beginning Phase 2, the site avoids the 44–50% organic traffic losses documented when domain moves and URL changes are combined.

The Cost of Combining Both Changes at Once

Industry data consistently shows that changing both the URL structure and the domain simultaneously — without a stabilization window — results in a 44–50% temporary loss of organic traffic. For a site already showing a −26.5% traffic decline in the current Ahrefs data, absorbing a further 44–50% drop would be commercially damaging. The phased approach is not a preference — it is a risk management requirement.

01

The Core Problem: One URL, Three Languages

Understanding why the current structure makes URL localization technically complex — and why it cannot be done with a simple find-and-replace.

Current State — All Three Languages Share One URL

1

Single URL — serves all three languages

iblaursen.dk/produkter/lys-stager.html
language switcher
🇩🇰DADanish content
Indexed by Google ✓
🇬🇧ENEnglish content
Not separately indexed ✗
🇩🇪DEGerman content
Not separately indexed ✗

Why a Simple URL Rewrite Is Not Possible

A URL rewrite is a server-level instruction that redirects one address to another. It works when a single piece of content needs a new address. The problem here is fundamentally different: the same URL currently delivers three different pieces of content depending on which language the visitor has selected.

Rewriting /produkter/lys-stager.html to /products/candles-holders.html would only move one version — and it would break the other two. There is no server rule that can simultaneously redirect the same URL to three different destinations based on language preference, because the language preference is stored in the user's session, not in the URL itself.

The Technical Constraint

Because the language is determined by session state rather than the URL, the server cannot know which of the three language versions to redirect to when it receives a request for the current shared URL. A rewrite rule would have to pick one language and break the other two.

The Required Solution

Each language version must be built as a genuinely separate page with its own unique URL. The content management system must publish three distinct pages per product category — one per language — before any redirects can be configured.

What Phase 1 Actually Creates: 3 Pages Per URL

For every one of the 41 URLs in the current sitemap, Phase 1 results in three separate, independently addressable content pages. This is not duplication — it is the correct technical architecture for a multilingual site. Each page contains language-specific content and is linked to the others via hreflang tags so Google understands they are translations of the same product category.

Before Phase 1

/produkter/lys-stager.html

1 URL · 3 languages · 1 indexed page

Phase 1

After Phase 1

DA/produkter/lys-stager.html
EN/products/candles-holders.html
DE/produkte/kerzen-halter.html

3 URLs · 3 languages · 3 independently indexed pages

The Danish URL remains completely unchanged. Existing Danish rankings, backlinks, and indexed pages are preserved. Only two new pages are added per URL — the English and German versions. The old shared URL continues to serve Danish content and receives a redirect from any legacy English or German paths that previously pointed to it.

02

Why This Order — The Reasoning Behind the Phases

The sequence is not arbitrary. Each decision is driven by how Google processes large-scale site changes.

0
Current
State
1
URL
Localization
6–8 wks
stable
2
Domain
Migration
iblaursen
.com

There are two major changes required to reach the final desired state: (1) language-specific URL paths and (2) a new international domain. Both could theoretically be done at the same time. They are not, for a specific reason.

Google's crawlers process site changes incrementally. When a large number of URLs change simultaneously, Google must re-evaluate every affected page from scratch — re-crawling, re-indexing, and re-assessing relevance signals. If the domain also changes at the same time, Google must additionally transfer all historical trust signals from the old domain to the new one. Combining these two workloads creates a compounding uncertainty that consistently produces significant temporary ranking losses across all affected pages.

Phase 1 First

Establish language-specific URLs on the trusted domain

The .dk domain has years of accumulated trust with Google — 403 referring domains and a known crawl history. Introducing new URL paths on a domain Google already understands is far less disruptive than introducing them simultaneously with a domain change.

By launching Phase 1 on iblaursen.dk, the new English and German URLs inherit the domain's existing trust immediately. Google begins indexing them with a head start rather than treating them as entirely new, unknown pages.

Any ranking disruption from the URL changes is contained to the URL structure only. The domain authority is not in question, which limits the recovery time.

Stabilization Window

Wait 6–8 weeks for Google to fully process Phase 1

Google does not process all URL changes instantly. A full re-crawl and re-indexing cycle for a site of this size typically takes 4–8 weeks. Starting Phase 2 before this cycle completes would mean moving the domain while Google is still mid-process on Phase 1 — stacking two incomplete migrations on top of each other.

The stabilization criteria are measurable: all new EN and DE URLs must appear as 'Indexed' in Google Search Console, hreflang errors must be zero, and organic traffic to the new language stores must have returned to or exceeded pre-Phase-1 levels.

Phase 2 Second

Move to iblaursen.com only after Phase 1 is fully stable

At this point, Google has already indexed all three language versions of every page on iblaursen.dk. The domain migration is now a single, clean operation: move known, indexed pages from one domain to another via 301 redirects.

The .com gTLD sends no country-specific signal, making it the correct domain for a site serving multiple international markets. The .dk ccTLD, by contrast, signals Denmark-only relevance to Google — a structural disadvantage for English and German market visibility.

Google's Change of Address tool in Search Console is used to formally notify Google of the domain transfer, accelerating the re-attribution of historical trust signals from .dk to .com.

In summary: Phase 1 is done first because it is safer to change URLs on a trusted domain than on a new one. Phase 2 is done second because it is safer to move a domain whose URL structure is already stable and indexed than one that is mid-migration. The stabilization window exists because Google needs time to finish processing Phase 1 before Phase 2 introduces a second major change signal.

1
Phase 1

URL Path Localization

Publish three separate content pages per URL with language-translated slugs. Implement hreflang and 301 redirects. Remain on iblaursen.dk throughout.

What Gets Built in Phase 1

🇩🇰DADanish

Existing pages

No URL changes. Danish content and rankings are fully preserved.

No action required on existing DA pages

🇬🇧ENEnglish

New pages published

English content is published at new English-language URL slugs. These are brand-new pages from Google's perspective.

Publish 41 new EN pages with translated slugs

🇩🇪DEGerman

New pages published

German content is published at new German-language URL slugs. These are brand-new pages from Google's perspective.

Publish 41 new DE pages with translated slugs

Total new pages created in Phase 1: 82 (41 English + 41 German). The 41 existing Danish pages are untouched. After Phase 1, the site has 123 language-specific pages where it previously had 41 shared ones. Each page is connected to its translations via hreflang tags — see the Hreflang section for details.

Redirect Strategy in Phase 1

Once the new English and German pages are live and indexed, 301 permanent redirects are configured for any legacy paths that previously served those language versions. This ensures that any external links pointing to old shared URLs pass their value to the correct new language-specific page, and that users who bookmarked old URLs land on the right content.

Legacy /en/ paths (e.g. /en/products)
301
New EN page (e.g. /products/candles-holders.html)80 RDs recovered from legacy store paths
Legacy /de/ paths (e.g. /de/produkte)
301
New DE page (e.g. /produkte/kerzen-halter.html)Legacy DE store paths redirected
Legacy /da/ paths (e.g. /da/produkter)
301
Existing DA page (e.g. /produkter/lys-stager.html)Legacy DA store paths redirected

Phase 1 → Phase 2 Gate: Stabilization Criteria

Phase 2 must not begin until all four of the following are confirmed in Google Search Console and analytics:

All new EN and DE URLs show status 'Indexed' in GSC Coverage report
Zero hreflang errors in GSC International Targeting report
Organic traffic to EN and DE storefronts at or above pre-Phase-1 baseline
No significant crawl errors or coverage drops in GSC
01.4

URL Localization in Practice — Illustrative Examples

The following examples are drawn from the current sitemap to show how the URL translation pattern applies across different content types. The full URL mapping will cover every page on the site — these examples demonstrate the naming logic and structure.

Show URLs for:

Top-level category

The root product listing page — the broadest category slug is translated in full.

DAiblaursen.dk/produkter.html
ENiblaursen.dk/products.html
DEiblaursen.dk/produkte.html

Candles & holders

The example used throughout this plan. Both the category name and the descriptor are translated independently.

DAiblaursen.dk/produkter/lys-stager.html
ENiblaursen.dk/products/candles-holders.html
DEiblaursen.dk/produkte/kerzen-halter.html

Kitchen sub-category

Multi-word slugs are hyphenated and translated word-for-word. Compound nouns in German are joined without hyphens where natural.

DAiblaursen.dk/produkter/kokken/tekstiler-servietter.html
ENiblaursen.dk/products/kitchen/textiles-napkins.html
DEiblaursen.dk/produkte/kuche/textilien-servietten.html

Brand page (untranslated)

Registered brand names (Mynter, Altum R, Stillenat R) are never translated — only the parent path segment changes language.

DAiblaursen.dk/brands/mynter.html
ENiblaursen.dk/brands/mynter.html
DEiblaursen.dk/marken/mynter.html

Seasonal / campaign page

Seasonal terms are translated to their market-native equivalents. 'Påske' becomes 'Easter' in English and 'Ostern' in German.

DAiblaursen.dk/produkter/saesonvarer/paske.html
ENiblaursen.dk/products/seasonal/easter.html
DEiblaursen.dk/produkte/saisonware/ostern.html

These examples are illustrative only. The sitemap currently lists a subset of the full site. The complete URL mapping exercise — covering every indexable page — must be completed as the first step of Phase 1, before any redirects or new pages are published. Toggle between Phase 1 and Phase 2 above to see how the same URL evolves across both migrations.

03

Hreflang — Telling Google Which Page Belongs to Which Language

Hreflang tags are the technical mechanism that connects the three language versions of each page. Without them, Google may treat the new pages as duplicate content rather than translations.

What Hreflang Does

When Phase 1 creates three separate pages for each product category, Google needs to understand that /produkter/lys-stager.html, /products/candles-holders.html, and /produkte/kerzen-halter.html are translations of the same content — not three competing pages about the same topic. Hreflang tags, placed in the HTML of every page, provide this signal.

Google uses this information to serve the correct language version to users based on their browser language and location settings. Without hreflang, a German user searching in German might be shown the Danish version of a page — or Google might consolidate all three into a single result, defeating the purpose of the localization entirely.

1

Phase 1 — on iblaursen.dk

Each of the three language pages carries identical hreflang tags pointing to all three versions. The x-default tag designates the English version as the fallback for users whose language is not explicitly listed.

<link rel="alternate" hreflang="da"
  href="…dk/produkter/lys-stager.html" />
<link rel="alternate" hreflang="en"
  href="…dk/products/candles-holders.html" />
<link rel="alternate" hreflang="de"
  href="…dk/produkte/kerzen-halter.html" />
<link rel="alternate" hreflang="x-default"
  href="…dk/products/candles-holders.html" />
2

Phase 2 — updated for iblaursen.com

All hreflang tags are updated to reference the new .com URLs with ISO 639 language prefixes. The structure is identical — only the domain and path prefix change.

<link rel="alternate" hreflang="da"
  href="…com/da/produkter/lys-stager.html" />
<link rel="alternate" hreflang="en"
  href="…com/en/products/candles-holders.html" />
<link rel="alternate" hreflang="de"
  href="…com/de/produkte/kerzen-halter.html" />
<link rel="alternate" hreflang="x-default"
  href="…com/en/products/candles-holders.html" />

Non-Negotiable Hreflang Rules

Tags must be reciprocal

If the English page points to the Danish page, the Danish page must point back to the English page. One-directional tags are silently ignored by Google.

Every page must reference itself

Each page must include a hreflang tag pointing to its own URL, in addition to all other language variants.

URLs must be fully qualified

All hreflang href values must include the full domain (https://). Relative paths are not supported.

x-default for unmatched languages

The x-default tag designates the fallback page for users whose browser language does not match any listed variant. Set English as x-default for international reach.

Never canonicalize across languages

Canonical tags must point to the same-language version only. Setting a German page's canonical to the Danish page would tell Google to ignore the German version entirely.

All referenced URLs must return 200

Any hreflang URL that redirects or returns a 404 causes the entire tag set for that page to be ignored. All URLs must be live before hreflang is deployed.

03.5

Canonical URLs — Preventing Duplicate Content Across the Migration

Canonical tags work alongside hreflang to tell Google which URL is the authoritative version of a page. They are especially important during this migration because the same content temporarily exists at multiple addresses.

Why Canonicals Are Critical in This Migration

A canonical tag is a single line in the HTML of a page that says: "This URL is the definitive version — consolidate all ranking signals here." Without it, Google must guess which of several similar URLs to treat as the primary one. In a migration that creates new pages, changes domains, and runs two environments in parallel, the risk of Google making the wrong guess is high.

The core rule is simple: every page's canonical tag must point to itself — its own full URL, including domain and path. A page must never canonicalize to a different language version, and during Phase 2 the old .dk pages must not canonicalize to the new .com pages (or vice versa) while both are live. Cross-domain canonicals used incorrectly are one of the most common causes of traffic loss in domain migrations.

Today's Shared URL Is the Root of the Canonical Problem

Currently, /produkter/lys-stager.html serves Danish, English, and German content depending on the user's session language. From Google's perspective, this is a single URL with a single canonical — but it is actually three different pages sharing one address. Google cannot distinguish between them, so it indexes only one version and treats the others as invisible.

Phase 1 resolves this by giving each language its own URL. At that point, a proper self-referencing canonical can be set on each page for the first time. Until Phase 1 is complete, canonical tags cannot be used to differentiate language versions — there is simply no unique URL to point to.

1

Phase 1 — Self-referencing canonicals on iblaursen.dk

Each of the three language pages carries a canonical pointing to its own URL. This is the first time Google can distinguish between the three versions as separate, authoritative pages.

DAcanonical →…dk/produkter/lys-stager.html
ENcanonical →…dk/products/candles-holders.html
DEcanonical →…dk/produkte/kerzen-halter.html

The Danish page's canonical points to the Danish URL. The English page's canonical points to the English URL. They are independent — never cross-referencing each other.

2

Phase 2 — Updated canonicals on iblaursen.com

Once pages are live on the new domain, each page's canonical is updated to reference its own .com URL. The .dk pages remain live with 301 redirects — their canonicals are not changed, as Google will follow the redirect and consolidate authority to the .com destination.

DAcanonical →…com/da/produkter/lys-stager.html
ENcanonical →…com/en/products/candles-holders.html
DEcanonical →…com/de/produkte/kerzen-halter.html

Do not set the .dk pages to canonicalize to .com while both are live. The 301 redirect is the correct signal — adding a cross-domain canonical on top creates a conflicting instruction that can confuse Googlebot.

Canonical Rules for This Migration

Always self-referencing

Every page's canonical tag must point to its own full URL. This applies to all three language versions independently, in both Phase 1 and Phase 2.

Canonical and hreflang must agree

The URL in a page's canonical tag must match the URL used for that language in the hreflang tag set. Mismatches cause Google to distrust both signals.

Use absolute URLs

Canonical tags must include the full domain (https://www.iblaursen.dk/…). Relative paths are not supported and will be ignored by Google.

Canonical must return HTTP 200

The URL in a canonical tag must be a live page returning a 200 status code. A canonical pointing to a 301 or 404 is treated as absent — no consolidation occurs.

Never canonicalize across languages

Setting the English page's canonical to the Danish URL tells Google the English page does not exist as an independent entity. All ranking signals for the English page are discarded.

Never cross-domain canonical during live migration

While both .dk and .com are serving live pages, do not set .dk canonicals to .com URLs. Use 301 redirects as the consolidation signal — not canonicals.

Do not remove .dk canonicals prematurely

If the .dk pages lose their canonical tags before the .com pages are fully indexed, Google may temporarily treat .dk content as canonical again, splitting link equity.

Staging must block indexing — not canonicals

During development and QA, block staging pages with robots.txt or noindex — not by pointing their canonicals to production. Canonical-based staging blocks are unreliable and risk leaking signals.

Canonical and Hreflang: Complementary, Not Interchangeable

Hreflang tells Google which language audience each page is for. Canonical tells Google which URL is the authoritative address of that page. Both signals must be present and consistent. A page with correct hreflang but no canonical may still be consolidated with a duplicate. A page with a correct canonical but no hreflang may be served to the wrong language audience. The two tags solve different problems and must be implemented together.

2
Phase 2

Domain Internationalization

Move the fully-indexed, language-separated site from iblaursen.dk to iblaursen.com with ISO 639-1 language subdirectories.

Final URL Architecture on iblaursen.com

🇩🇰DAISO prefix: /da/
iblaursen.com/da/produkter/lys-stager.html
🇬🇧ENISO prefix: /en/
iblaursen.com/en/products/candles-holders.html
🇩🇪DEISO prefix: /de/
iblaursen.com/de/produkte/kerzen-halter.html

The ISO 639-1 subdirectory structure (/da/, /en/, /de/) is Google's recommended approach for multilingual sites on a single domain. It consolidates all domain authority under one root while giving each language a clearly separated section of the site.

Critical: Avoiding Redirect Chains

When Phase 2 launches, the Phase 1 redirect rules must be updated to point directly to the final .com URLs. If they are left pointing to the Phase 1 .dk URLs, which then redirect to .com, a two-hop redirect chain is created. Each hop in a redirect chain reduces the amount of link equity passed to the final destination — and chains longer than two hops are frequently not followed by search engine crawlers at all.

✗ WRONG — Two-hop chain (link equity lost at each hop)

iblaursen.dk/produkter/lys-stager.htmliblaursen.dk/products/candles-holders.htmliblaursen.com/en/products/candles-holders.html

✓ CORRECT — Single hop (full link equity passed)

iblaursen.dk/products/candles-holders.htmliblaursen.com/en/products/candles-holders.html

Google Search Console — Change of Address

Google Search Console provides a formal Change of Address tool that notifies Google of an intentional domain migration. Submitting this accelerates the transfer of historical trust signals from iblaursen.dk to iblaursen.com. It requires that 301 redirects are already in place and that the destination property (iblaursen.com) is verified in GSC before submission.

01Verify iblaursen.com as a new property in Google Search Console
02Confirm all 301 redirects from iblaursen.dk to iblaursen.com are live and resolving correctly
03Navigate to the iblaursen.dk GSC property → Settings → Change of Address → select iblaursen.com
04Submit new language-specific sitemaps for iblaursen.com in the new GSC property
05Maintain all iblaursen.dk → iblaursen.com redirects permanently — removing them in future will permanently lose accumulated link equity
04

Post-Migration Monitoring Plan

A structured 6-month schedule to detect and resolve issues before they cause lasting ranking damage.

TimeframeActionTool
Day 1–7Monitor crawl errors and coverage drops dailyGoogle Search Console
Day 1–7Verify 301 redirects are resolving correctly for all 41 mapped URLsScreaming Frog
Day 1–7Confirm hreflang tags are being parsed without errorsGSC International Targeting
Week 2–4Track organic traffic by language store vs. pre-migration baselineGoogle Analytics 4
Week 2–4Monitor keyword ranking changes for top 50 priority termsSemrush / Ahrefs
Month 2–3Audit backlink profile for broken links pointing to old URLsAhrefs
Month 3–6Confirm full index migration from .dk to .com in GSCGoogle Search Console
OngoingKeep all .dk → .com redirects live permanentlyServer configuration

Redirect permanence is not optional. The 301 redirects from iblaursen.dk to iblaursen.com must remain active indefinitely. Removing them at any point in the future — even years later — will result in a permanent loss of all historical link equity that was accumulated on the .dk domain and transferred to .com.

05

Interactive Checklists

Track migration progress. State is saved automatically in your browser.

1

Phase 1 — URL Localization

Progress0/14 completed
Complete full site crawl and export all current URLs
Export 12-month GA4 organic traffic data by page
Export backlink profile to identify high-value pages
Create master URL mapping spreadsheet (DA / EN / DE for all 41 URLs)
Set up staging environment with crawl blocking (robots.txt + noindex)
Implement translated URL slugs for EN and DE storefronts
Configure 301 redirects from old DA slugs to new EN/DE slugs
Update all internal links to point to new localized URLs
Implement hreflang tags (DA, EN, DE, x-default) on all pages
Add self-referencing canonical tags on all pages
Generate and submit three language-specific sitemaps in GSC
Test all redirects and hreflang tags in staging
Deploy to production and monitor GSC daily for 6–8 weeks
Confirm all Phase 1 stabilization criteria are met before proceeding
2

Phase 2 — Domain Migration

Progress0/10 completed
Configure iblaursen.com DNS, SSL, and server routing
Verify iblaursen.com property in Google Search Console
Update Phase 1 redirect rules to point directly to .com URLs (no chains)
Deploy new content on iblaursen.com with updated hreflang tags
Update canonical tags to reference iblaursen.com URLs
Generate and submit new sitemaps for iblaursen.com in GSC
Submit Change of Address from iblaursen.dk to iblaursen.com in GSC
Verify all 301 redirects from .dk to .com are resolving correctly
Monitor GSC, GA4, and ranking tools daily for first 2 weeks
Maintain all .dk redirects permanently