Å flytte WordPress-nettstedet ditt kan virke som en skremmende oppgave, men med riktig kunnskap og forberedelser blir det en håndterbar prosess. Enten du endrer domene, oppgraderer hosting eller restrukturerer nettstedarkitekturen, vil denne komplette guiden veilede deg gjennom hvert trinn i WordPress-migreringsprosessen.
WordPress-adresse og nettstedsadresse forklart
Før vi dykker ned i migreringsteknikker, er det avgjørende å forstå de to grunnleggende URL-innstillingene i WordPress:
- WordPress-adresse (URL): Der kjernefilene dine i WordPress ligger
- Nettstedsadresse (URL): Dette er adressen besøkende skriver i nettleseren for å nå nettstedet ditt
Begge innstillingene må inkludere https://-delen og må ikke ha skråstrek / på slutten. Disse innstillingene kontrollerer hvordan WordPress viser URL-er over hele nettstedet ditt, inkludert admin-seksjonen og frontend.
Når må du flytte et WordPress-nettsted
Flere scenarier kan kreve migrering av WordPress-nettstedet ditt:
- Domeneendringer: Rebranding eller overgang til et bedre domenenavn
- Hosting-migrering: Overgang til en bedre hosting-leverandør
- Serverendringer: Oppgradering av serverinfrastruktur
- Nettstedrestrukturering: Flytting av WordPress til en undermappe eller rotmappen
- Utvikling til produksjon: Flytting fra staging-miljø til produksjon
- HTTP til HTTPS: Implementering av SSL-sertifikater
Backup og testmiljø før WordPress-flytting
Hva du bør ta backup av før flytting
Før du prøver noen migrering, lag komplette sikkerhetskopier:
- Databasebackup: Eksporter WordPress-databasen din via phpMyAdmin eller WP-CLI
- Filbackup: Last ned alle WordPress-filer og kataloger
- Konfigurasjonsbackup: Lagre wp-config.php-filen din separat
- Plugin/tema-innstillinger: Dokumenter tilpassede konfigurasjoner
Teste flyttingen i et staging-miljø
Test alltid migreringer i et staging-miljø før du går til produksjon:
## Opprett test-undermappe
mkdir /var/www/html/test-site
## Kopier filer til teststed
cp -r /var/www/html/wordpress/* /var/www/html/test-site/Flytte WordPress med plugin, wp-config eller manuelt
Metode 1: endre WP_HOME og WP_SITEURL i wp-config.php
For raske migreringer der du bare trenger å oppdatere URL-er:
// I wp-config.php
define('WP_HOME', 'https://nyttnettsted.com');
define('WP_SITEURL', 'https://nyttnettsted.com');Når du skal bruke: Enkle domeneendringer, utvikling til produksjon Fordeler: Raskt, ingen databaseendringer nødvendig Ulemper: Migrerer ikke innhold, bare oppdaterer URL-er
Metode 2: flytte med en migreringsplugin
Populære plugins:
- All-in-One WP Migration: Brukervennlig grensesnitt, komplett migrering
- Duplicator: Lager komplette pakker for migrering
- WP Migrate Lite (tidligere WP Migrate DB): databaseeksport med søk og erstatt
Typisk prosess:
- Installer migreringsplugin
- Eksporter migreringspakke
- Importer til ny lokasjon
- Kjør migreringsprosess
Metode 3: manuell flytting steg for steg
Trinn 1: Komplett backup
## Hvordan ta databasebackup ved WordPress-migrering?
mysqldump -u bruker -p database_navn > backup.sql
## Filbackup
tar -czf backup_filer.tar.gz /sti/til/wordpress/Trinn 2: Overfør filer
## Via SCP
scp -r /sti/til/wordpress/ bruker@server:/var/www/html/
## Via rsync (anbefalt for store nettsteder)
rsync -avz /sti/til/wordpress/ bruker@server:/var/www/html/Trinn 3: Importer database
## Via WP-CLI
wp db import backup.sql --path=/var/www/html/
## Via MySQL
mysql -u bruker -p database_navn < backup.sqlTrinn 4: Oppdater wp-config.php
// Oppdater databaselegitimasjon
define('DB_NAME', 'ny_database');
define('DB_USER', 'ny_bruker');
define('DB_PASSWORD', 'nytt_passord');
define('DB_HOST', 'localhost');Trinn 5: Oppdater URL-er i database
-- Oppdater hoved-URL-er
UPDATE wp_options SET option_value = REPLACE(option_value, 'gammel.com', 'ny.com') WHERE option_name IN ('siteurl', 'home');
-- Oppdater URL-er i innhold
UPDATE wp_posts SET post_content = REPLACE(post_content, 'gammel.com', 'ny.com');
-- guid-kolonnen endres aldri. Metadata og serialiserte innstillinger tar du med wp search-replace, ikke med SQLEndre nettstedsadressen via functions.php, RELOCATE eller phpMyAdmin
Når du ikke kommer inn i WordPress-administrasjonen etter flyttingen, finnes det tre andre måter å sette siteurl og home på (Moving WordPress).
functions.php. Har du FTP-tilgang, men ikke tilgang til administrasjonen, legg disse linjene rett etter åpningstaggen <?php i functions.php i det aktive temaet:
update_option('siteurl', 'https://ny.com');
update_option('home', 'https://ny.com');Last opp filen, åpne administrasjonen én gang og fjern linjene igjen når nettstedet fungerer.
RELOCATE-konstanten. Legg til define('RELOCATE', true); i wp-config.php før linjen That's all, stop editing!, gå til wp-login.php på den nye adressen og logg inn som vanlig. Kontroller adressene under Innstillinger > Generelt og fjern konstanten etterpå. Å la den stå i wp-config.php er usikkert.
phpMyAdmin. Åpne databasen, finn tabellen wp_options (prefikset kan være et annet) og endre option_value i radene siteurl og home. Ta alltid en sikkerhetskopi av databasen før du redigerer den direkte.
Uansett metode gjelder én regel fra håndboken: guid-kolonnen i wp_posts endres aldri. GUID står for Global Unique Identifier, og en endring kan få RSS-lesere til å vise gamle innlegg som nye.
Flytte WordPress multisite, domene og HTTPS
Flytte WordPress fra undermappe til nytt domene
Scenario: fra blogg.gammel.com/blogg til ny.com
Løsning:
- Flytt filer til ny rotmappe
- Oppdater wp-config.php
- Kjør URL-erstatning
- Konfigurer 301-videresendinger
Flytte WordPress multisite med WP-CLI
Utfordringer:
- Flere databaser eller delte tabeller
- Komplese nettverksinnstillinger
- Delte plugins
Løsning med WP-CLI:
## Migrer alle nettsteder i nettverket
wp search-replace 'gammel.com' 'ny.com' --network --skip-columns=guid --dry-run
wp search-replace 'gammel.com' 'ny.com' --network --skip-columns=guidHvordan bytte WordPress fra HTTP til HTTPS
Nødvendige trinn:
- Installer SSL-sertifikat
- Oppdater URL-er i database
- Konfigurer tvungen videresending
- Oppdater .htaccess
.htaccess-konfigurasjon:
## Tving HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Sjekkliste etter WordPress-flytting
Teknisk sjekk av sider, plugins og skjemaer
- Hovedside laster korrekt
- Interne lenker fungerer
- Admin-område tilgjengelig
- Plugins fungerer
- Tema vises korrekt
- Skjemaer fungerer
- Mediaopplasting fungerer
301-videresendinger, sitemap og hastighet
- Konfigurer 301-videresendinger
- Oppdater XML-sitemap
- Verifiser Google Search Console
- Test nettstedshastighet
- Verifiser metatagger
- Test intern søk
Sikkerhetssjekk etter flytting
- Fjern migreringsfiler
- Tøm cacher
- Verifiser filtillatelser
- Oppdater passord om nødvendig
- Konfigurer brannmur hvis aktuelt
Vanlige feil etter WordPress-flytting og løsninger
Problem 1: hvit skjerm etter flytting
Mulige årsaker:
- Databasekoblingsfeil
- Utilstrekkelig PHP-minne
- Inkompatibel plugin
Løsninger:
// Øke PHP-minne i wp-config.php
define('WP_MEMORY_LIMIT', '256M');
// Aktivere feilsøking
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);Problem 2: ødelagte lenker etter flytting
Årsak: URL-er ikke oppdatert korrekt
Løsning med WP-CLI:
## Søk og erstatt URL-er
wp search-replace 'http://gammel.com' 'https://ny.com' --dry-run
wp search-replace 'http://gammel.com' 'https://ny.com'Problem 3: feil ved databasetilkobling
Kontroller:
- Legitimasjon i wp-config.php
- MySQL-server aktiv
- Databasebrukertillatelser
- Korrekt databasenavn
Problem 4: mediaopplasting feiler
Løsninger:
## Sjekk tillatelser
chmod 755 wp-content
chmod 755 wp-content/uploads
chmod 644 wp-content/uploads/*
## Kontroller opplastingsstien i databasen (tom verdi betyr standard wp-content/uploads)
wp option get upload_pathWP-CLI og plugins for WordPress-migrering
Nyttige WP-CLI-kommandoer for migrering
Nyttige kommandoer:
## Eksporter database
wp db export
## Erstatt URL-er
wp search-replace 'gammel.com' 'ny.com'
## Tøm cache
wp cache flush
## Verifiser databaseintegritet
wp db checkPlugins for URL-erstatning og HTTPS
- Better Search Replace: brukervennlig grensesnitt for URL-erstatning, med støtte for serialiserte data (Velvet Blues Update URLs ble stengt i utvidelseskatalogen 3. mai 2024)
- SSL Insecure Content Fixer: retter blandet HTTP/HTTPS-innhold
- Really Simple Security (tidligere Really Simple SSL): automatisk HTTPS-konfigurasjon
Verktøy for lokal testing og ytelse
- Local by Flywheel: Lokalt miljø for testing
- XAMPP/MAMP: Lokale servere
- BrowserStack: Cross-browser-testing
- GTmetrix: Ytelsesanalyse
Hvordan planlegge en WordPress-migrering
Før migreringen
Detaljert Planlegging
- Dokumenter komplett prosess
- Identifiser kritiske punkter
- Definer tidsplan
Redundant Backup
- Lokal backup
- Skybackup
- Separat databasebackup
Komplette Tester
- Identisk staging-miljø
- Test alle flyter
- Inkluder teamet
Under migreringen
Aktiv Overvåking
- Sanntidslogger
- Statusverifisering
- Teamkommunikasjon
Kontinuerlig Validering
- Verifiser hvert trinn
- Test kritiske funksjoner
- Dokumenter problemer
Etter migreringen
Omfattende Verifisering
- Komplett nettstedstest
- SEO-verifisering
- Ytelsesanalyse
Optimalisering
- Rydding av unødvendige data
- Databaseoptimalisering
- Cache-konfigurasjon
Flytte WordPress til VPS eller skyhosting
Hva er annerledes på VPS og skyhosting
Skymiljøer:
- Lastbalanseringskonfigurasjon
- CDN-integrasjon
- Automatisk backup
- Skalerbarhet
VPS/Dedikert:
- Serverkonfigurasjon
- Ytelseoptimalisering
- Avansert sikkerhet
- Overvåking
Nginx-konfigurasjon for WordPress
server {
listen 80;
server_name ny.com www.ny.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name ny.com www.ny.com;
root /var/www/html;
index index.php index.html;
# SSL-konfigurasjon
ssl_certificate /sti/til/cert.pem;
ssl_certificate_key /sti/til/private.key;
# WordPress-konfigurasjon
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# Cache for statiske filer
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}Beholde Google-rangeringer etter WordPress-flytting
Hvordan beholde rangeringer med 301-videresendinger
Strategier:
- Permanente 301-videresendinger
- Bevaring av URL-struktur
- Bevaring av metadata
- Overvåking av rangeringer
Google Search Console
Nødvendige handlinger:
- Legg til ny eiendom
- Send inn nytt sitemap
- Overvåk indekseringsfeil
- Verifiser indeksering
Hvilke målinger du bør følge etter flytting
Metrikker å overvåke:
- Organisk trafikk
- Nøkkelordrangeringer
- Fluktfrekvens
- Lastetid
- Konverteringer
Flytte WordPress uten nedetid med DNS-TTL
En resolver kan mellomlagre en DNS-post så lenge TTL-en tillater (RFC 1035, avsnitt 3.2.1). Det bestemmer rekkefølgen:
- Senk TTL-en i god tid. Sett A- og AAAA-postene til en kort TTL, for eksempel 300 sekunder, minst én hel gammel TTL før byttet. Var den gamle verdien 86400 sekunder, betyr det et døgn i forveien, for inntil den utløper, svarer resolvere fortsatt med den gamle IP-adressen.
- Test den nye serveren via hosts-filen. Pek domenet mot den nye IP-adressen i din lokale hosts-fil og gå gjennom kasse, innlogging og skjemaer på målserveren før den offentlige posten endres. Besøkende kommer fortsatt til den gamle serveren.
- Frys skriving under den siste dumpen. Bestillinger, kommentarer og skjemainnsendinger som kommer inn på den gamle serveren etter siste
wp db export, blir ikke med over. Sett det gamle nettstedet i vedlikeholdsmodus, eller stopp publisering, under den siste eksporten og importen.
Overføre et stort mediebibliotek med rsync
FTP kopierer hver fil på nytt ved hvert forsøk. rsync over SSH sammenligner kilde og mål og sender bare forskjellene, så en ny kjøring flytter bare det som er endret siden den første (rsync-manualen).
- Kjør den to ganger. Første runde kopierer
wp-content/uploadsmens det gamle nettstedet fortsatt er live. Andre runde, under skrivestoppen, henter filene som er lagt til i mellomtiden. - Bytt URL-er med WP-CLI, ikke med SQL. WordPress lagrer innstillinger og widgetoppsett som serialiserte PHP-arrayer med lagrede strenglengder.
wp search-replaceskriver om disse lengdene, en vanlig SQL-REPLACE()gjør det ikke. - Lag miniatyrbilder på nytt hvis temaet endres.
wp media regeneratelager miniatyrbilder på nytt for bildestørrelsene som er registrert i den nye installasjonen, og--only-missingbegrenser det til bilder som mangler størrelser (WP-CLI: wp media regenerate).
Sjekke SEO, SSL og Core Web Vitals etter flytting
- Gjennomsøk listen over gamle URL-er. Hver gamle URL skal svare med en 301 til sin nye motpart, og ingen intern lenke skal gi 404. Google anbefaler permanente videresendinger på serversiden fra gamle til nye URL-er ved flytting av et nettsted, og en adresseendring i Search Console når domenet endres (Google Search Central: flytting av nettsted med URL-endringer).
- TLS og HSTS. Installer sertifikatet på den nye serveren før byttet. HTTP Strict Transport Security får nettlesere til å bruke bare HTTPS mot domenet i hele max-age-perioden (RFC 6797), så slå det på først når HTTPS fungerer på alle underdomener det dekker.
- Mål før og etter. Kjør PageSpeed Insights på de samme malene på den gamle og den nye serveren. Sidebuffer, OPcache, objektbuffer og gzip- eller Brotli-komprimering hos den nye verten viser seg i serverens responstid.
GDPR-krav ved bytte av WordPress-hosting
For nettstedet til en virksomhet i EØS er en ny vert også en ny databehandler for personopplysninger:
- Databehandleravtale med den nye verten. Artikkel 28 i personvernforordningen krever en avtale som fastsetter formål, varighet, art og gjenstand for behandlingen og binder databehandleren til sikkerhetstiltakene i artikkel 32 (GDPR, forordning (EU) 2016/679).
- Oppdater personvernerklæringen. Legger flyttingen til et CDN, et nytt sted for sikkerhetskopier eller en ny vert, endres listen over mottakere i personvernerklæringen med den.
- Sletting hos den gamle verten. Etter artikkel 28 nr. 3 bokstav g sletter eller returnerer databehandleren personopplysningene når tjenesten avsluttes, etter den behandlingsansvarliges valg. Når den nye serveren går stabilt, be den gamle verten bekrefte at filer, databaser og sikkerhetskopier er slettet.
WordPress-utrulling med GitHub Actions og tilbakerulling
- Rull ut fra repositoriet. En arbeidsflyt i GitHub Actions eller GitLab CI bygger temaets ressurser og leverer koden ved hver push til hovedgrenen, så serveren har ingen filer som er endret for hånd.
- Behold forrige versjon. Hver versjon legges i sin egen katalog, og en symbolsk lenke peker på den aktive. Å rulle tilbake koden betyr å peke lenken på forrige versjon. Ta en
wp db exportfør hvert steg som endrer databasen, for en tilbakerulling av koden angrer ikke endringer i tabeller eller innhold. - Samme versjoner overalt. Hold PHP- og MySQL- eller MariaDB-versjonene like mellom lokalt miljø, staging og produksjon, slik at en migrering testet på staging oppfører seg likt i produksjon.
Hvordan wp search-replace håndterer serialiserte data
WordPress-håndboken advarer om at et generelt søk og erstatt over hele databasen kan ødelegge serialiserte data, og at guid-kolonnen i wp_posts aldri skal endres (Moving WordPress). wp search-replace er laget for akkurat dette: den håndterer serialiserte PHP-data og endrer ikke primærnøkkelverdier (WP-CLI: wp search-replace). Flaggene som betyr noe ved migrering:
--dry-runrapporterer hva som ville blitt endret, og lagrer ingenting.--skip-columns=guidlar GUID-ene til innleggene være som de er.--precisetvinger PHP-behandling for hver kolonne. Det er tregere og mer pålitelig for komplekse serialiserte data.--networkdekker alle tabellene i et multisite-nettverk. Uten flagget søkes bare tabellene til gjeldende nettsted.--all-tables-with-prefixtar med tabeller som utvidelser har opprettet med WordPress-prefikset uten å registrere dem, og--all-tablestar hver tabell i databasen.--export=fil.sqlskriver de endrede dataene til en SQL-fil i stedet for til databasen, nyttig når måldatabasen står på en annen server.
Tabeller uten primærnøkkel hoppes over, så en utvidelsestabell uten en slik nøkkel trenger en egen kontroll. For multisite lister håndboken også opp hva som må sjekkes for hånd: tabellene wp_blogs og wp_site og innstillingene home, siteurl og fileupload_url for hvert nettsted.
wp db export og wp db import fullfører verktøykassen. Eksporten kjører mysqldump med påloggingsdataene fra wp-config.php og godtar alle mysqldump-flagg, og wp db export - skriver til STDOUT (WP-CLI: wp db export). Importen oppretter ikke databasen, den kjører bare SQL-en fra filen, og wp db import - leser fra STDIN (WP-CLI: wp db import). Opprett den tomme databasen på målserveren først.
Konklusjon
WordPress-migrering trenger ikke å være overveldende når den tilnærmes systematisk. Ved å følge denne komplette guiden, forberede deg grundig og teste nøye, kan du migrere WordPress-nettstedet ditt med suksess med minimal forstyrrelse for brukere og SEO-ytelse.
Husk at forberedelse er nøkkelen, prøv aldri migrering uten komplette sikkerhetskopier og en klar tilbakeføringsplan. Ta deg tid, test grundig og ikke nøl med å søke profesjonell hjelp for komplekse migreringer.
Med riktig planlegging og utførelse kan din WordPress-migrering være en jevn prosess som forbereder nettstedet ditt for fremtidig vekst og suksess.
Se våre WordPress-migreringer til Astro og Next.js.
Tilbakeføringsplan før du endrer DNS
Konklusjonen over sier at en migrering aldri bør startes uten en klar tilbakeføringsplan. I praksis betyr det tre avgjørelser før du endrer DNS. Den første er hvor lenge den gamle serveren skal stå urørt. Så lenge den kjører med samme database, kan du peke domenet tilbake hvis det nye miljøet svikter. Den andre er når innholdet fryses. Kommentarer, skjemainnsendinger og nye innlegg som kommer inn på den gamle serveren etter at wp db export er kjørt, blir ikke med over, så redaksjonen må vite når de skal stoppe å publisere.
Den tredje er hvilken kopi som gjelder. Ta en fersk eksport rett før importen, og kjør wp search-replace med --dry-run først, slik at du ser hvor mange forekomster som endres før databasen røres. Etter byttet går du gjennom sjekklisten over: skjemaer, mediaopplasting, 301-videresendinger og Search Console. Først når alle punktene holder, er det trygt å slå av den gamle serveren.
På leveransesiden holder vi dette temaet under Next.js- eller Astro-migrering.







