Recept na přesměrovací mapu: řazení starých URL podle odkazů, které drží
Přesměrovací mapa je seznam priorit, ne tabulka všech URL. Začněte stránkami, na které odkazují jiné weby, a zbytek mapy bude snazší.
Výzkumný tým ArchiLinks ·

Proč řadit podle odkazů
Týmy vytvářejí mapy z crawlů. Je kompletní. Také ale zachází se zapomenutou tiskovou zprávou z roku 2014 jako s hlavní stránkou.
Když zkontrolujete zpětné odkazy na můj web a seřadíte stránky podle počtu odkazujících domén, při většině migrací se ukáže vzorec: několik desítek URL drží většinu externí hodnoty. Tyto URL se ručně přiřadí, zkontrolují dvakrát a otestují jako první.
Všechno ostatní se řídí pravidly. Složky se mapují podle vzoru, parametry se odstraňují a osamělé URL bez odkazů a bez provozu mohou vracet 410, pokud se tak rozhodnete. Výstup doplňte o kontrolní seznam migrace, aby mapa prošla testem před spuštěním a znovu po 45 dnech, a o skripty API pro plánování měsíčního stahování.
Krok 1: stáhněte odkazované stránky
Jeden požadavek vrátí až 1 000 řádků a stojí 2 kredity, bez ohledu na počet řádků. Názvy polí níže jsou příklad; podívejte se na jednu skutečnou odpověď a upravte klíče.
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"), ""])Krok 2: vyplňte třetí sloupec
Přiřaďte podle významu
Stránka produktu jde na stejný produkt nebo na jeho kategorii, pokud produkt již není k dispozici. Nikoli na hlavní stránku, pokud stránka nebyla hlavní stránkou.
Nechte druhou osobu zkontrolovat prvních 50
Unavená osoba ve 18:00 přiřadí průvodce kanoizací k indexu blogu. Kontroler to odhalí.
Pravidla pro dlouhý ocas
Napište vzory pro složky a odstraňte sledovací parametry. Udržujte každé pravidlo ve verzionování s komentářem vysvětlujícím proč.
Krok 3: vygenerujte serverová pravidla
nginx dobře čte soubor mapy a škáluje se na desítky tisíc řádků.
# /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;
}
Krok 4: otestujte každý krok
Zastavte pipeline u čehokoli, co není jediný přesměrovací kód 301 na 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"Chyby, které bychom kontrolovali jako první
| Příznak | Pravděpodobná příčina | Oprava |
|---|---|---|
| Řetězce dvou nebo tří kroků | Stará pravidla naskládaná na nová | Ukažte staré pravidlo přímo na konečné URL |
| Vše končí na hlavní stránce | Líné pravidlo catch-all | Přiřaďte podle tématu; Google může hromadné přesměrování na hlavní stránku považovat za soft 404 |
| Ztracené řetězce dotazů | Pravidlo zahodí argumenty | Přeneste parametry, které mění obsah; ostatní odstraňte |
| Top URL vrací 404 po spuštění | Vynecháno v CSV | Spusťte znovu stažení a porovnejte s živou mapou |

Která URL si zaslouží řádek s ručním přiřazením
Ne každé URL si zaslouží člověka. Užitečné rozdělení je podle odkazujících domén: každé URL s několika externími odkazy se přiřadí ručně, zbytek se řídí sadou pravidel. Řekněme, že máte 4 000 starých URL a 60 z nich drží většinu externích odkazů. Těchto šedesát zabere odpoledne kontroly, zatímco dalších 3 940 vyžaduje vzor a test.
Udržte prah v skriptu, ne v hlavě někoho. Pět odkazujících domén je rozumný začátek pro střední web. Začněte tam. Snížte číslo, když má celý web málo odkazů, a zvyšte ho, když je seznam ručních přiřazení pro jednoho kontrolera příliš dlouhý.
Oddělení řádků s ručním přiřazením a řádků s pravidlovým přiřazením
Řádky s ručním přiřazením mají jmenovaného kontrolera a poznámku, proč byl cíl vybrán. Řádky s pravidlovým přiřazením mají vzor otestovaný proti celé složce, takže výjimka se projeví v testovacím reportu před spuštěním, nikoli v grafu provozu afterwards.
Smíšené případy způsobují většinu zmatení. Produkt, který byl ukončen a nahrazen nástupcem, se přesměruje na nástupce. Jeden ukončený bez nástupce patří do své kategorie, nikoli na hlavní stránku.
Použití druhého stažení k zobrazení toho, co se přesunulo
Spusťte refdomains pro starý host předtím, než bude mapa finální, pak znovu po spuštění, a porovnejte dva seznamy podle domény. Doména, která chybí v druhém stažení, je otázkou pro majitele odkazu, nikoli důvodem k poplachu, protože odstraněný odkaz se může v indexu objevit až po nějaké době.
Udržujte oba soubory vedle sebe v migrační složce s datem v každém názvu. Diff vám řekne, kam se podívat, a mapa vám řekne, co jste s tím udělali.
Rozhodování o URL bez odkazů
Osamělé URL bez odkazů a bez provozu jsou snadnou částí. Vraťte jasný 404 nebo 410, pokud je obsah navždy pryč, a přesměrujte pouze tehdy, pokud existuje blízká náhrada, aby návštěvníci i crawlerové dopadli někde užitečně.
Když si nejste jisti, nechte v mapě krátkou poznámku a vraťte se po prvním týdnu logů. Váš serverový log ukazuje, které staré adresy stále dostávají požadavky, což je nejlepší důkaz, jaký budete mít.
Jak se mapa hodí do vydání
Přesměrovací mapa se mění s webem. Mějte to na paměti. Nové stránky se objevují, staré se přejmenovávají a změna šablony může rozbít pravidlo, které vypadalo bezpečně minulý měsíc. Zacházejte s mapou jako s kódem, s jedním souborem ve verzionování, revizí před každým nasazením a testovacím během u každé změny.
Udržujte mapu v jedné vrstvě, pokud je to možné. Přesměrování rozložená mezi aplikaci, CDN a CMS jsou způsob, jakým se objevují řetězce, a řetězce je těžké odhalit bez plného crawlu.
Kde by pravidla měla žít
Serverová mapa je rychlá a snadno otestovatelná. Plugin CMS je užitečný pro hrstku stránek, ale je těžké ho auditovat ve velkém. Jakoukoli z nich vyberete, test jednoho kroku musí číst z toho samého místa.
Pokud dvě vrstvy přesměrovávají stejné URL, test nahlásí řetězec. Odstraňte duplikát z vrstvy, kterou plánujete vyřadit.
Testování na skutečném hostiteli po každé změně
Spusťte test kroků na stagingu, pak na produkci po každé změně souboru pravidel. Pravidlo, které projde na stagingu, může stále selhat, jakmile cache drží starou odpověď, takže druhý běh má význam.
Uložte výstup s datem. Když se top URL rozbije o několik měsíců později, starý výsledek ukáže, zda se změnilo pravidlo, nebo web. Kontrolní seznam migrace uvádí, kdy tento test patří, a jeho spuštění dříve udržuje další kontrolu srovnatelnou s touto.
Revize změny souboru pravidel
Jmenujte jednoho kontrolera pro změny mapy a požádejte tuto osobu, aby zkontrolovala tři věci: zda každý cíl stále odpovídá předmětu, kolik kroků pravidlo vytváří a zda je vzor dostatečně úzký, aby zasáhl pouze URL, pro která byl napsán. Změna, kterou nikdo nekontroloval, je ta, která nejvíce pravděpodobně začne řetězec.
Požádejte o stejnou revizi, když se změní samotný web. Nová kategorie, která absorbuje starou složku, může způsobit, že správné pravidlo ukazuje na špatné místo, aniž by někdo upravil mapu.
Uložte poznámku kontrolera vedle změny. O šest měsíců později poznámka vysvětlí pravidlo, které jinak vypadá libovolně, a ušetří druhé vyšetřování stejné otázky.
Testování vzorku před plným během
Než spustíte celý seznam, vyberte vzorek padesáti řádků, který mixuje nejvíce odkazované stránky s několika běžnými. Spusťte test kroků na tomto vzorku jako první. Vzorek je rychlý ke čtení a chyba v pravidle se v něm projeví dlouho předtím, než se projeví v celém souboru.
Zahrňte alespoň jeden řádek z každého pravidlového vzoru a jeden z každé skupiny s ručním přiřazením. Vzorek, který pokrývá složku dvou set URL, je testován pouze řádky, které se náhodou nacházejí ve vzorku, takže je vybírejte záměrně.
Udržování souborů pravidel malých
Soubor pravidel, který přesáhne několik set vzorů, se stává těžkým na revizi. Rozdělte ho podle sekce webu a udržujte každý soubor dostatečně krátký, aby ho kontroler mohl přečíst na jedno sezení.
Odstraňte pravidlo den, kdy je jeho složka pryč. Stará pravidla ponechaná vzad jsou ta, která později posílají provoz do řetězce.
Předtím, než mapa půjde live
- Každý řádek má nové URL, nebo záměrný 404 nebo 410.
- Žádný cíl není sám o sobě přesměrováním.
- 50 URL s nejvíce odkazujícími doménami zkontrolovala druhá osoba.
- Parametry dotazu, které mění obsah, jsou přeneseny.
- Soubor pravidel je ve verzionování s komentářem k každému vzoru.
- Báze odkazujících domén je uložena pro diff po spuštění.
Přesměrovací otázky, které se stále objevují
- Měl bych po roce odstranit stará přesměrování?
- Mnoho týmů pro migraci je udržuje alespoň rok. Poté je udržujte, dokud stará URL stále dostávají externí odkazy nebo provoz. Přesměrování stojí téměř nic na obsluhu, takže je zřídka dobrý důvod je brzy smazat.
- Je v pořádku přesměrovat pouze indexované stránky?
- Ne, pokud ty neindexované nesou odkazy. Stav indexace říká málo o externí hodnotě. Přesměrujte každé URL, které má odkazující doménu, pak se rozhodněte o zbytku podle provozu.
- Co 302 nebo 307 pro trvalý přesun?
- Použijte 301 nebo 308 pro trvalé přesuny. 302 ponechaný na místě po léta může být považován za trvalý, ale tento výsledek je ponechán náhodě a jiní klienti přesměrování to nemusí hádat stejně.
- Můžu přesměrovat 404 ze starého webu na nový?
- Pouze když existuje blízká shoda. Přesměrování na nesouvisející stránku je v očích Google soft 404. Vraťte skutečný 404 nebo 410, když je obsah pryč.