Rekord för omdirigeringar: rangordna gamla URL:er efter de länkar de innehåller
Ett omdirigeringsrekord är en prioriteringslista, inte ett kalkylark med alla URL:er. Börja med de sidor som andra webbplatser länkar till, så blir resten av rekordet enklare.
ArchiLinks forskningsgrupp ·

Varför rangordna efter länkar
Team bygger ofta rekord från en crawlning. Det är komplett. Det behandlar också en glömd pressartikel från 2014 som startsidan.
När du kontrollerar backlinks till din webbplats och sorterar sidorna efter antal länkande domäner, visar sig ett mönster vid de flesta migrationer: ett dussintal URL:er håller för det mesta av det externa värdet. Dessa URL:er matchas manuellt, granskas två gånger och testas först.
Allt annat följer regler. Mappar mappar efter mönster, parametrar tas bort, och ensamma URL:er utan länkar eller trafik kan returnera 410 om du bestämmer så. Kombinera utdata med checklistan för migration så att rekordet testas innan lansering och kontrolleras igen på dag 45, samt med API-skripten för att schemalägga det månatliga hämtandet.
Steg 1: hämta de länkade sidorna
Ett anrop returnerar upp till 1 000 rader och kostar 2 krediter, oavsett antal rader. Fältnamnen nedan är ett exempel; titta på ett riktigt svar och justera nycklarna.
import csv, requests
BASE = "https://archilinks.com/api.php"
KEY = "sk_live_..."
def call(action, **params):
r = requests.get(BASE, params={"action": action, "key": KEY, **params}, timeout=30)
r.raise_for_status()
return r.json()
data = call("toppages", q="old-shop.com", per=1000)
rows = next(v for v in data.values() if isinstance(v, list))
with open("linked-pages.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["old_url", "links", "new_url"])
for row in rows:
w.writerow([row.get("url"), row.get("backlinks"), ""])Steg 2: fyll i den tredje kolumnen
Matcha efter betydelse
En produktsida går till samma produkt, eller till dess kategori om produkten är borta. Aldrig till startsidan om sidan inte var startsidan.
Låt en andra person kontrollera de topp 50
En trött person kl. 18:00 mappar en guide om canonicala URL:er till en bloggindex. En granskare fångar det.
Regler för den långa svansen
Skriv mönster för mappar och ta bort spårningsparametrar. Behåll varje regel i versionskontroll med en kommentar som förklarar varför.
Steg 3: generera serverregler
nginx läser en mappfil bra, och den skalar till tiotusentals rader.
# /etc/nginx/redirects.map (generated from the csv)
/old/guide-canonicals /guides/canonical-tags;
/products/blue-widget /shop/widgets/blue;
# in nginx.conf, http context
map $request_uri $new_uri {
default "";
include /etc/nginx/redirects.map;
}
# in the server block of the old host
if ($new_uri) {
return 301 https://new-shop.com$new_uri;
}
Steg 4: testa varje hopp
Misslyckas pipeline:n vid något som inte är ett enkelt 301-hopp till en 200.
while IFS=, read -r old new; do
out=$(curl -s -o /dev/null -w "%{http_code} %{num_redirects} %{url_effective}" -L "https://old-shop.com$old")
echo "$old -> $out"
done < redirect-pairs.csv | grep -v "^.* -> 200 1 " && echo "FIX ABOVE"Fel vi skulle kontrollera först
| Symtom | Trolig orsak | Åtgärd |
|---|---|---|
| Kedjor med två eller tre hopp | Gamla regler staplade på nya | Peka den gamla regeln rakt mot den slutgiltiga URL:en |
| Allt landar på startsidan | Lat catch-all-regel | Matcha efter ämne; Google kan behandla massiva omdirigeringar till startsidan som mjuka 404-fel |
| Frågestringar förloras | Regeln släpper argumenten | Behåll parametrarna som ändrar innehåll; ta bort resten |
| Topp-URL:en returnerar 404 efter lansering | Lämnades ut ur CSV-filen | Kör hämtningen igen och diff:a mot det levande rekordet |

Vilka URL:er förtjänar en manuellt matchad rad
Inte varje URL förtjänar en person. En användbar uppdelning är efter länkande domäner: varje URL med flera externa sidor som pekar på den matchas manuellt, och resten följer en uppsättning regler. Säg att du har 4 000 gamla URL:er och att 60 av dem håller för det mesta av de externa länkarna. Dessa sextio tar en eftermiddag av granskning, medan de andra 3 940 tar ett mönster och ett test.
Håll tröskelvärdet i skriptet, inte i någons huvud. Fem länkande domäner är en rimlig start för en medelstor webbplats. Börja där. Sänk talet när hela webbplatsen har få länkar, och höj det när den manuella listan blir för lång för en granskare.
Att hålla manuellt matchade och regelmatchade rader åtskilda
Manuellt matchade rader får en namngiven granskare och en anteckning om varför målet valdes. Regelmatchade rader får ett mönster testat mot hela mappen, så att ett undantag syns i testrapporten innan lansering snarare än i en trafikdiagram efteråt.
Blandade fall orsakar mest förvirring. En produkt som tagits ur sortimentet och ersatts av en efterträdare mappas till efterträdaren. En produkt som tagits ur sortimentet utan efterträdare tillhör sin kategori, aldrig startsidan.
Att använda ett andra hämtning för att se vad som flyttats
Kör refdomains för den gamla värden innan rekordet är slutgiltigt, kör sedan igen efter lansering, och matcha de två listorna efter domän. En länkande domän som saknas i det andra hämtningen är en fråga för länkinnehavaren, inte en anledning till oro, eftersom en borttagen länk kan ta lite tid att visa i indexet.
Behåll båda filerna sida vid sida i migrationsmappen, med datumet i varje namn. Diff:en berättar var du ska titta, och rekordet berättar vad du gjorde åt det.
Att bestämma vad man ska göra med URL:er som inte har några länkar
Ensamma URL:er utan länkar och utan trafik är det lätta partiet. Returnera ett tydligt 404 eller ett 410 när innehållet är borta för alltid, och omdirigera bara när en nära ersättning finns, så att besökare och crawlar båda landar någonstans användbart.
När du är osäker, lämna en kort anteckning i rekordet och kom tillbaka efter den första veckan av loggar. Din serverlogg visar vilka gamla adresser som fortfarande får förfrågningar, vilket är det bästa beviset du kommer att ha.
Hur rekordet passar in i en lansering
Ett omdirigeringsrekord ändras med webbplatsen. Ha det i åtanke. Nya sidor dyker upp, gamla döps om, och en malländring kan bryta en regel som såg säker ut förra månaden. Behandla rekordet som kod, med en fil i versionskontroll, en granskning innan varje deployment och ett körningstest vid varje ändring.
Håll rekordet i ett lager så långt det är möjligt. Omdirigeringar som sprids över applikationen, CDN:et och CMS:et är hur kedjor uppstår, och kedjor är svåra att upptäcka utan en fullständig crawlning.
Var reglerna bör bo
En servermapp är snabb och enkel att testa. Ett CMS-plugin är smidigt för ett fåtal sidor, men det är svårt att granska i stor skala. Vilket du än väljer, etthopstestet måste läsa från samma plats.
Om två lager omdirigerar samma URL rapporterar testet en kedja. Ta bort duplicaten från det lager du planerar att fasas ut.
Testa på den verkliga värden efter varje ändring
Kör hopp-testet på staging, sedan på production, efter varje ändring i regelfilen. En regel som klarar staging kan fortfarande misslyckas när en cache håller ett gammalt svar, så den andra körningen är viktig.
Spara utdata med datumet. När en topp-URL går sönder månader senare visar det gamla resultatet om regeln ändrades eller om webbplatsen gjorde det. Checklistan för migration listar när det testet hör hemma, och att köra det först gör nästa kontroll jämförbar med denna.
Att granska en ändring i regelfilen
Namnge en granskare för ändringar i rekordet, och be den personen att kontrollera tre saker: huruvida varje mål fortfarande matchar ämnet, hur många hopp regeln skapar, och huruvida mönstret är tillräckligt smalt för att bara påverka de URL:er det skrevs för. En ändring som ingen granskade är den som mest sannolikt startar en kedja.
Be om samma granskning när webbplatsen själv ändras. En ny kategori som absorberar en gammal mapp kan få en korrekt regel att peka på fel ställe utan att någon redigerar rekordet.
Lagra granskarens anteckning bredvid ändringen. Sex månader senare förklarar anteckningen en regel som annars ser godtycklig ut, och den räddar en andra undersökning av samma fråga.
Att testa ett urval innan hela körningen
Innan du kör hela listan, välj ett urval på femtio rader som blandar de topp-länkade sidorna med några vanliga. Kör hopp-testet på det urvalet först. Urvalet är snabbt att läsa, och ett fel i regeln syns i det långt innan det syns i hela filen.
Inkludera minst en rad från varje regelmönster, och en från varje manuellt matchat grupp. Ett mönster som täcker en mapp med två hundra URL:er testas bara av de rader som händelsevis finns i urvalet, så välj dem med avsikt.
Att hålla regelfiler små
En regelfil som växer bortom ett par hundra mönster blir svår att granska. Dela den efter webbplatssektioner, och håll varje fil kort nog att en granskare kan läsa den på ett pass.
Ta bort en regel den dag dess mapp försvinner. Gamla regler som lämnas kvar är de som senare skickar trafik in i en kedja.
Innan rekordet går live
- Varje rad har en ny URL, eller en avsiktlig 404 eller 410.
- Inget mål är i sig en omdirigering.
- De 50 URL:erna med flest länkande domäner granskades av en andra person.
- Frågeparametrar som ändrar innehåll tas med.
- Regelfilen är i versionskontroll, med en kommentar på varje mönster.
- En baslinje för hänvisande domäner sparas för diff:en efter lansering.
Omdirigeringsfrågor som kommer tillbaka
- Ska jag ta bort de gamla omdirigeringarna efter ett år?
- Många migrationsteam behåller dem i minst ett år. Därefter, behåll dem så länge gamla URL:er fortfarande får externa länkar eller trafik. Omdirigeringar kostar nästan inget att servera, så det finns sällan en bra anledning att ta bort dem i förtid.
- Är det okej att bara omdirigera de indexerade sidorna?
- Inte om de icke-indexerade innehåller länkar. Indexstatus säger lite om externt värde. Omdirigera varje URL som har en länkande domän, och bestäm sedan om resten efter trafik.
- Vad gäller 302 eller 307 för en permanent flytt?
- Använd 301 eller 308 för permanenta flyttar. En 302 som lämnas kvar i flera år kan behandlas som en permanent, men det utfallet lämnas åt slumpen, och andra klienter av omdirigeringen kanske inte gissar på samma sätt.
- Kan jag omdirigera 404-fel från den gamla webbplatsen till den nya?
- Bara när en nära matchning finns. En omdirigering till en relaterad sida är ett mjukt 404-fel i Googles ögon. Returnera ett riktigt 404 eller 410 när innehållet är borta.