Kort svar: Når produktimporten fejler eller går i stå, er det som regel én af tre ting: en batch tager længere tid, end serveren tillader (typisk på grund af billeder), billed-URL’erne kan ikke hentes, eller kolonner og formater matcher ikke det, WooCommerce forventer. Test med de første 10 rækker, del store filer op, og kør produktdata og billeder hver for sig. Læs importloggen bagefter – den fortæller præcis, hvilke rækker der blev sprunget over og hvorfor.
Fagligt gennemgået: 2. oktober 2026
CSV-importen er den hurtigste vej til at få mange produkter ind i WooCommerce – og et af de steder, hvor server, fil og forventninger oftest støder sammen. En import, der dør halvvejs, efterlader et katalog i limbo: nogle produkter inde, andre ikke, og måske dubletter ved næste forsøg. Med den rigtige arbejdsgang sker det ikke.
Guiden tager udgangspunkt i WooCommerce’ indbyggede importør under Produkter → Alle produkter → Importér. Principperne gælder også for de fleste importplugins.
Før du ændrer noget: Tag en backup af databasen før en stor import – en import kan ikke fortrydes med én knap. Kør gerne den første import på staging. Og gem altid en kopi af den originale fil, før du begynder at rette i den.
Sådan kører importøren
Den indbyggede importør behandler ikke hele filen i ét hug. Den kører filen igennem i små portioner via baggrundskald fra din browser – som standard 30 rækker ad gangen. Det har tre konsekvenser, der forklarer de fleste fejl:
- Timeouten rammer en enkelt portion, ikke hele filen. 30 produkter med hver fem eksterne billeder kan nemt tage længere tid end serverens tidsgrænse.
- Browserfanen skal være åben hele vejen. Lukker du den, eller går computeren i dvale, stopper importen.
- Alt imellem browser og server skal lade kaldene passere: en firewall, et sikkerhedsplugin eller en proxy med kortere tidsgrænse kan afbryde en portion, selvom PHP selv havde tid nok.
De tre måder, importen fejler på
| Symptom | Typisk årsag | Løsning |
|---|---|---|
| Går i stå ved cirka samme rækkeantal hver gang | En portion overskrider execution time eller hukommelse – ofte rækker med mange billeder | Kør billeder separat, mindre filer |
| Produkter uden billeder | Billed-URL’erne kan ikke hentes | Test URL’erne, ret kildeserveren |
| Forkerte priser, tegn eller varianter | Separator, tegnsæt, decimalformat eller manglende forældrekobling | Ret filen i en teksteditor |
| „Sprunget over“ i importloggen | SKU findes allerede, eller produktet findes ikke i opdateringstilstand | Vælg den rigtige tilstand (trin 5) |
| Stopper med 403, 413 eller 524 | Firewall, upload-grænse eller proxy-timeout | Se trin 3 |
1. Tjek filen, før du uploader
De hyppigste datafælder i danske importfiler:
- Separator: Dansk Excel gemmer ofte med semikolon, mens importøren som standard forventer komma. Du kan angive en anden separator under „Vis avancerede indstillinger“ – eller gemme filen med komma.
- Tegnsæt: Æ, ø og å bliver til spørgsmålstegn eller mærkelige tegn, når filen ikke er gemt som UTF-8. Vælg „CSV UTF-8“ ved gem i Excel, eller brug LibreOffice eller Google Sheets.
- Decimaler: Brug punktum som decimaltegn og ingen tusindtalsseparator (
149.95, ikke149,95eller1.149,95). Komma kan blive tolket forkert afhængigt af butikkens indstillinger. - Lange tal: Excel laver EAN-numre om til videnskabelig notation (
5,70123E+12) og fjerner foranstillede nuller i SKU’er. Formatér de kolonner som tekst, før du gemmer. - Kategorier: Underkategorier skrives med
>(fxTøj > Jakker), flere kategorier adskilles med komma. - ID-kolonne fra en anden butik: Eksporterer du fra én shop og importerer i en anden, så fjern ID-kolonnen eller lad være med at mappe den. ID’erne findes ikke i den nye database og giver fejl eller rammer forkerte produkter.
Åbn filen i en teksteditor – ikke kun Excel – og tjek separator og tegnsæt, før du uploader. Det, Excel viser, er ikke nødvendigvis det, der står i filen.
2. Følg den sikre arbejdsgang

- Test med 10 rækker: Kopiér filens første rækker til en testfil, og kør den igennem. Alle mapping- og formatfejl viser sig her – på sekunder i stedet for efter 20 minutters kørsel. Slet testprodukterne bagefter, eller brug staging.
- Del filen op: 500-1.000 rækker pr. fil er robust på de fleste webhoteller. Importen kan køres ad flere omgange med samme kolonnemapping – vælg „Brug tidligere kolonnemapping“, så du ikke skal mappe igen.
- Kør billeder separat: Importér først produktdata uden billedkolonnen, og kør derefter en import med „Opdater eksisterende produkter“ og kun SKU + billeder. Så vælter billedhentningen aldrig selve produktimporten.
- Varianter efter forældre: Variable produkter skal stå før deres varianter i filen, og hver variant skal pege på sin forælder i kolonnen „Parent“ (forælder) via SKU eller
id:123.
3. Timeouts, upload-grænser og blokerede kald
Billederne er næsten altid den tunge del: Hver billed-URL skal hentes, gemmes og have genereret alle billedstørrelser. Har du et billedoptimeringsplugin, der komprimerer ved upload, lægges det arbejde oven i. Overvej at sætte optimeringen på pause under importen og køre den bagefter.
- Filen kan slet ikke uploades (413 eller fejl ved upload): Det er upload-grænsen – se guiden om upload-grænser. Under avancerede indstillinger kan du alternativt angive stien til en fil, der allerede ligger på serveren.
- Kørslen dør undervejs: Tjek PHP-fejlloggen for maximum execution time eller „Allowed memory size exhausted“. Mindre filer og billeder for sig løser det oftest.
- 403 midt i importen: En firewall eller et sikkerhedsplugin har blokeret et af baggrundskaldene. Find reglen i loggen, og lav en målrettet undtagelse for importen – slå ikke beskyttelsen fra generelt.
- 524 bag Cloudflare: Cloudflare afbryder svar, der tager mere end cirka 100 sekunder. Mindre portioner hjælper – se Cloudflare Error 524.
Er du udvikler, kan portionsstørrelsen sænkes med filteret woocommerce_product_import_batch_size (standard 30). Det giver flere, men kortere kald – nyttigt, når hvert produkt har mange billeder:
add_filter( 'woocommerce_product_import_batch_size', function () {
return 10;
} );
4. Når billederne mangler
Billedkolonnen tager en eller flere URL’er adskilt af komma; den første bliver produktets hovedbillede. Serveren skal selv kunne hente hver URL. Det fejler typisk, når:
- linket er dødt eller kræver login (fx et delt drev eller en leverandørportal);
- kildeserveren har et ugyldigt eller udløbet SSL-certifikat;
- URL’en indeholder mellemrum eller æøå, der ikke er kodet korrekt;
- kildeserveren blokerer mange hurtige forespørgsler fra samme IP.
Test tre af URL’erne i et privat browservindue. Kan du ikke hente dem dér, kan serveren heller ikke. Ligger billederne allerede i mediebiblioteket, kan du referere til dem med filnavnet i stedet for en ekstern URL.
5. Vælg den rigtige tilstand ved genkørsel
Fluebenet „Opdater eksisterende produkter“ ændrer, hvad importøren gør med hver række – og det er her, de fleste misforståelser opstår:
| Tilstand | Produkt findes (samme ID eller SKU) | Produkt findes ikke |
|---|---|---|
| Uden „Opdater eksisterende“ | Springes over | Oprettes |
| Med „Opdater eksisterende“ | Opdateres | Springes over |
Gik en kørsel i stå, så kør hele filen igen uden „Opdater eksisterende produkter“. De allerede importerede produkter med SKU springes over, og resten oprettes. Skal de første produkter også have rettet data, så kør bagefter en opdateringskørsel. Dubletter opstår kun, når produkterne hverken har SKU eller ID at matche på – ryd i så fald de halvimporterede ud før genkørslen (filtrér på oprettelsesdato).
6. Læs importloggen
Når importen er færdig, viser WooCommerce, hvor mange produkter der blev oprettet, opdateret, sprunget over og fejlede – og en importlog med rækkenummer og årsag for hver række, der ikke gik igennem. Gennemgå den, før du kører igen. Typiske beskeder handler om en SKU, der allerede findes, et ugyldigt produkt-ID eller en forælder, der ikke kan findes for en variant.
Vises varianterne ikke korrekt efter importen, samler variant-guiden op. Tjek også synligheden på stikprøver – importfiler sætter af og til katalogsynligheden forkert.
Store kataloger og faste importer
WooCommerce har ingen indbygget WP-CLI-kommando til CSV-import. Til rigtig store kataloger eller faste importer fra en leverandør er der tre stabile veje: et importplugin, der kører i baggrunden via cron i stedet for i din browser; WooCommerce’ REST API, hvor batch-endpointet kan oprette eller opdatere op til 100 produkter pr. kald; eller et lille WP-CLI-script, som udvikleren skriver til netop jeres feed. Fælles for dem er, at de ikke er afhængige af en åben browserfane. Se også produkt-feeds fra leverandører.
7. Verificér resultatet
Importen er i mål, når:
- antallet af produkter i wp-admin matcher antallet af rækker i filen (husk, at varianter tælles separat);
- stikprøver viser korrekte priser med decimaler;
- æøå står rigtigt i titler og beskrivelser;
- billederne ligger på produkterne, og hovedbilledet er det rigtige;
- varianterne kan vælges på produktsiden og har lagerstatus;
- importloggen ikke viser rækker, du ikke har forklaring på.
Gem den færdige, fungerende importfil sammen med indstillingerne – næste sæsonimport bliver et genbrug i stedet for en ny fejlrunde.
Læs også
- Hub: WooCommerce fejl og fejlfinding
- Produkter vises ikke i butik eller kategori
- Maximum execution time exceeded
- Prisopdateringer i bulk: CSV, API eller plugin?
- Skift fra Shopify til WooCommerce
- WooCommerce hosting hos Hostious – staging fra Woo StartUp, så store importer kan testes først
Ofte stillede spørgsmål om CSV-import
Hvor stor må importfilen være?
Teknisk sættes grænsen af serverens upload- og tidsgrænser – men i praksis er 500-1.000 rækker pr. kørsel det robuste valg. Store kataloger køres ad flere omgange, via et baggrundsimportplugin eller via REST API’et.
Hvorfor mangler billederne efter importen?
Fordi billed-URL’erne ikke kunne hentes: døde links, beskyttede mapper eller https-fejl på kildeserveren. Test tre af URL’erne i et privat browservindue – kan du ikke hente dem dér, kan serveren heller ikke.
Opretter en genkørsel dubletter?
Ikke når produkterne har SKU. Uden „Opdater eksisterende produkter“ springes rækker med en eksisterende SKU over, og med fluebenet opdateres de. Dubletter opstår kun, når rækkerne hverken har SKU eller ID at matche på.
Hvorfor bliver æ, ø og å til mærkelige tegn?
Fordi filen ikke er gemt som UTF-8. Gem den som „CSV UTF-8“ i Excel, eller eksportér fra LibreOffice eller Google Sheets med UTF-8, og importér igen med „Opdater eksisterende produkter“ for at rette de berørte produkter.
Udgivet 30. august 2026Opdateret 3. oktober 2026Fagligt gennemgået 2. oktober 2026
