301 átirányítás: teljes útmutató
A 301 átirányítás egy HTTP válasz, amely azt közli a böngészővel és a keresővel, hogy a kért URL véglegesen új címre költözött. A látogató automatikusan az új címre kerül, a kereső pedig idővel az új URL-t indexeli a régi helyett, és a régire mutató jeleket is oda köti. Költözéskor, URL-átalakításkor és duplikátumok összevonásakor ez az alapeszköz.
Alapfogalmak
Amikor a böngésző vagy a keresőrobot lekér egy URL-t, a szerver egy háromjegyű állapotkóddal válaszol. A 3xx tartományba tartozó kódok átirányítást jelentenek: a kért tartalom nem itt van, hanem egy másik címen, amelyet a válasz Location fejléce ad meg. A 301-es kód jelentése „Moved Permanently", vagyis az erőforrás véglegesen elköltözött. A kliens ilyenkor az új címet kéri le, és a végleges jelleg miatt a jövőben is azt használhatja.
A „végleges" szó a lényeg. A keresőnek ez azt üzeni, hogy a régi URL nem fog visszatérni, ezért a találatok között az új címet érdemes mutatni. Ebben különbözik a 301 az ideiglenes átirányításoktól, amelyeknél a kereső a régi címet tarthatja meg az indexben, mert arra számít, hogy a tartalom oda visszakerül.
Az átirányítási kódok összevetése
| Kód | Jelentés | Jelleg | Tipikus használat |
|---|---|---|---|
| 301 | Moved Permanently | Végleges | Költözés, URL-változás, duplikátumok összevonása |
| 302 | Found | Ideiglenes | Átmeneti kampány, rövid karbantartás |
| 307 | Temporary Redirect | Ideiglenes, a kérés módszere megmarad | Ideiglenes átirányítás űrlapküldésnél is |
| 308 | Permanent Redirect | Végleges, a kérés módszere megmarad | Végleges átirányítás, ahol a POST kérés sem változhat GET-re |
A keresőoptimalizálás szempontjából a 301 és a 308 egyaránt végleges átirányításnak számít, a 302 és a 307 ideiglenesnek. A különbség a kettő között a kérés módszerének kezelése, ami az egyszerű laplekéréseknél nem játszik szerepet. Az ideiglenes változatról a 302 átirányítás útmutató szól részletesen.
Kapcsolódó fogalmak
- Forrás URL: a régi cím, amelyről az átirányítás indul.
- Cél URL: az új cím, amelyre az átirányítás mutat.
- Átirányítási lánc: amikor a cél maga is továbbirányít, és a kliens több lépésben jut el a végső lapig.
- Átirányítási hurok: amikor a lánc visszaér egy korábbi címre, és a kliens sosem jut el tartalomhoz.
- Átirányítási térkép: a régi és az új URL-ek páros listája, amely egy költözés alapdokumentuma.
Mikor van szükség 301-re
A 301 minden olyan helyzetben indokolt, amikor egy URL tartalma véglegesen más címre kerül, és a régi címre még érkezhetnek látogatók vagy linkek. Tipikus esetek: domainváltás, áttérés http-ről https-re, a www és a www nélküli alak egységesítése, az URL-szerkezet átalakítása, két hasonló témájú lap összevonása egyetlen erősebb lapba, vagy egy megszűnt termék helyettesítése a közvetlen utódjával. Közös bennük, hogy a régi címnek van értelmes, tartós párja az új helyen. Ha ilyen pár nincs, az átirányítás nem a jó eszköz.
Hogyan működik?
Az átirányítás egy rövid párbeszéd a kliens és a szerver között. Ha ezt a párbeszédet érted, a hibák nagy része is érthetővé válik.
A kérés és a válasz
A kliens lekéri a régi URL-t. A szerver nem a lap tartalmát küldi vissza, hanem egy 301-es állapotkódot és egy Location fejlécet az új címmel. A böngésző ezt látva automatikusan lekéri az új címet, a látogató pedig ebből legfeljebb annyit érzékel, hogy a címsorban más URL jelenik meg.
HTTP/1.1 301 Moved Permanently
Location: https://www.pelda.hu/uj-cim/
A böngésző gyorsítótára
A végleges átirányítást a böngészők gyorsítótárazhatják. Ez azt jelenti, hogy aki egyszer már átirányítódott, annál a böngésző a következő alkalommal a szerver megkérdezése nélkül is az új címre ugorhat. Ennek gyakorlati következménye van: egy tévesen beállított 301 nem feltétlenül tűnik el azonnal, amikor a szerveren javítod, mert a látogatók böngészője még emlékszik rá. Ezért tesztelni érdemes ideiglenes átirányítással vagy gyorsítótár nélkül, és a 301 csak akkor kerüljön élesbe, amikor a cél biztosan végleges.
A kereső feldolgozása
A keresőrobot ugyanígy követi az átirányítást. A 301-et a Google erős jelzésnek tekinti arra, hogy a cél URL legyen a kanonikus változat. Idővel a régi URL helyett az új jelenik meg a találatok között, és a régi címre mutató külső linkek jelei az új címhez kapcsolódnak. Ez nem azonnali: a keresőnek előbb újra fel kell térképeznie a régi URL-t, és ennek ideje a webhely méretétől és a lap fontosságától függ. A kanonikus választásról a canonical útmutató ír részletesen.
Az átirányítás és a lap tartalma
A 301-es válasz törzse a kliens számára lényegtelen, a böngésző és a robot is a Location fejlécet követi. Ezért egy átirányító URL-en nincs értelme tartalmat, meta adatokat vagy canonical elemet karbantartani: a kereső ezeket nem a régi címen, hanem a célon értékeli. A figyelmet a célra kell fordítani, annak kell rendben lennie.
Mi nem 301 átirányítás
Léteznek kliensoldali átirányítások is. A meta refresh egy HTML elem, amely a lap betöltése után egy másik címre küldi a böngészőt. A JavaScript átirányítás a szkript futása után vált címet. A kereső ezeket is felismerheti, de kevésbé megbízható és lassabb jelzés, mint a szerveroldali 301. Ahol a szerver beállításaihoz hozzáférsz, a 301 a helyes megoldás; a kliensoldali változat csak végső eset.
Fő módszerek
A 301 beállításának módja a szerver típusától és a tartalomkezelőtől függ. A cél mindegyiknél ugyanaz: egyetlen lépésben, közvetlenül a végső címre vigyen.
Szerverkonfiguráció
Apache szerveren a leggyakoribb a .htaccess fájl vagy a virtuális host konfigurációja. Egyedi címhez a Redirect utasítás, mintákhoz a RewriteRule használható. Nginx szerveren a return utasítás az egyszerűbb és gyorsabb megoldás. Az alábbi minták szemléltetik a szerkezetet; élesítés előtt mindig teszt környezetben ellenőrizd őket.
# Apache, egyetlen cím
Redirect 301 /regi-cim/ https://www.pelda.hu/uj-cim/
# Nginx, egyetlen cím
location = /regi-cim/ {
return 301 https://www.pelda.hu/uj-cim/;
}
Tartalomkezelő és bővítmény
Sok tartalomkezelő saját átirányításkezelőt kínál, vagy bővítménnyel egészíthető ki. Ez kényelmes, ha a szerkesztők maguk kezelik az URL-változásokat, és sok egyedi átirányítás van. Ellenőrizd, hogy a bővítmény valóban 301-es kódot küld, nem 302-t, és hogy az átirányítás a tartalomkezelő betöltése előtt vagy után fut. Nagy számú szabálynál a szerverszintű megoldás általában gyorsabb.
Mintaalapú átirányítás
Ha egy teljes könyvtárszerkezet változik, például a /blog/ útvonal /cikkek/ lett, nem kell minden címhez külön szabály. Egy reguláris kifejezésen alapuló szabály a régi útvonal minden címét a megfelelő újra viszi. Itt különösen fontos a tesztelés, mert egy rosszul megírt minta egy egész webhelynyi címet vihet rossz helyre.
Webhelyköltözés
Domainváltáskor minden régi URL-nek a pontos új párjára kell átirányítania, nem a kezdőlapra. Az alapdokumentum az átirányítási térkép: egy táblázat, amelyben minden régi címhez tartozik egy új cím. A Google Search Console a domainváltáshoz külön eszközt is kínál (Címváltoztatás), amely a 301-ek mellett tájékoztatja a keresőt a költözésről. Az átirányításokat a költözés után hosszú ideig érdemes fenntartani; a Google dokumentációja legalább egy évet javasol, de ha van rá mód, tartsd meg őket tartósan.
Döntési szabály: hová mutasson a 301
- Van a régi lapnak közvetlen, azonos tartalmú utódja: oda.
- Nincs pontos utód, de van szorosan kapcsolódó lap, amely a látogató kérdésére felel: oda.
- Nincs releváns cél: ne irányíts át, hanem adj 404 vagy 410 választ, lásd a 404 hiba útmutatót.
- A régi lap csak átmenetileg nem elérhető: ne 301, hanem ideiglenes átirányítás kell.
Gyakori hibák
A 301-es hibák egy része azonnal látszik, más része csak hónapokkal később, a forgalom vagy a helyezések változásában. A leggyakoribbak ugyanabból a hibás gondolkodásból fakadnak: az átirányítást egyszeri technikai lépésnek tekintik, nem a webhely hosszú távú karbantartásának.
Tömeges átirányítás a kezdőlapra
Költözéskor vagy törléskor csábító minden régi címet a kezdőlapra küldeni. A látogató ilyenkor nem azt kapja, amit keresett, a kereső pedig az ilyen, nem releváns célra mutató átirányítást soft 404-ként kezelheti. Ez azt jelenti, hogy a régi URL-re mutató jelek nem kerülnek át az új helyre, és az átirányítás gyakorlatilag nem ér semmit.
Láncok és hurkok
Minden újabb átalakításnál egy újabb réteg átirányítás kerül a régiekre: A a B-re, B a C-re mutat. Az ilyen redirect chain lassítja a betöltést, feleslegesen terheli a feltérképezést, és egy bizonyos hossz felett a robot nem is követi végig. Rosszabb eset a redirect loop, amikor a lánc visszaér önmagába, és a lap elérhetetlenné válik. A javítás mindkét esetben ugyanaz: minden régi cím közvetlenül a végső célra mutasson.
302 a 301 helyett
Sok rendszer alapértelmezetten ideiglenes átirányítást küld. Ha egy végleges költözést 302-vel oldasz meg, a kereső sokáig a régi címet tarthatja meg az indexben. A Google tartósan fennálló 302-t idővel véglegesként is kezelhet, de erre nem érdemes építeni: a helyes kód egyértelmű jelzés.
Egyéb gyakori hibák
- A belső linkek a régi címekre mutatnak, így minden kattintás egy átirányításon megy át. A belső linkeket az új címekre kell frissíteni.
- A sitemap a régi, átirányított címeket sorolja fel.
- A canonical a régi címre mutat, miközben az átirányít, így a két jelzés ellentmond egymásnak.
- Az átirányításokat néhány hét után törlik, és a régi linkek 404-re futnak.
- A protokoll- és domainátirányítás két külön lépésben történik, például http-ről https-re, aztán www-re, ami felesleges láncot hoz létre.
Tévhit: a 301 elveszíti a link értékét
Régebben elterjedt nézet volt, hogy minden átirányítás „elveszít" valamennyit a régi címre mutató linkek értékéből. A Google nyilvános közlései szerint a 3xx átirányítások nem okoznak ilyen veszteséget. Ettől még nem közömbös, hogyan irányítasz át: a nem releváns cél, a lánc és a hurok valódi probléma, de nem egy rejtett levonás miatt, hanem mert a jelzés zavaros lesz.
Mérés
A 301 átirányítások ellenőrzése egyedi és tömeges szinten is fontos. Egyedi szinten azt nézed, egy adott cím jól működik-e, tömeges szinten azt, hogy a webhely egésze tiszta-e.
Egyedi ellenőrzés
A legegyszerűbb módszer a parancssor. A curl egy fejléckérésre megmutatja az állapotkódot és a Location fejlécet, a böngésző gyorsítótára nélkül.
curl -I https://www.pelda.hu/regi-cim/
Ha a válaszban 301 és a helyes új cím szerepel, az átirányítás jó. Ha a teljes láncot is látni akarod, a -L kapcsolóval a curl végigköveti az átirányításokat, és minden lépést kiír. A böngésző fejlesztői eszközeinek hálózati lapja ugyanezt mutatja, de ott figyelni kell a gyorsítótárra.
Tömeges ellenőrzés
Egy SEO feltérképező eszközzel végigjárhatod a webhelyet, és kigyűjtheted az összes átirányító belső linket, a láncokat és a hurkokat. Költözés után az átirányítási térkép régi címeit listaként is betöltheted, és ellenőrizheted, hogy mindegyik egyetlen lépésben, 301-gyel, a megfelelő új címre visz-e, és az új cím 200-as választ ad-e.
Search Console
Az oldalindexelési jelentésben az átirányított URL-ek külön állapotban jelennek meg (angol felületen „Page with redirect"). Ez önmagában nem hiba, hiszen a régi címek átirányítása szándékos. A figyelmeztető jel az, ha ebben a csoportban olyan címek vannak, amelyeknek indexelhető lapnak kellene lennie, vagy ha a sitemap átirányított címeket tartalmaz. Az URL-ellenőrző eszközzel egy konkrét régi címnél is megnézheted, mit lát a kereső.
Kidolgozott példa 1: URL-szerkezet átalakítása
Egy webhely a dátumot tartalmazó cikk-URL-ekről rövid, beszédes címekre állt át. Az átirányítást egy mintaalapú szabály végezte, de a régebbi, már korábban egyszer átirányított cikkeknél kétlépéses lánc jött létre. A feltérképezés kimutatta a láncokat; a javítás az volt, hogy a régi szabályok is közvetlenül a végső címre mutattak, a belső linkeket pedig az új címekre frissítették. Így minden régi cím egyetlen lépésben ért célba, és a belső navigáció már egyáltalán nem érintett átirányítást.
Kidolgozott példa 2: megszűnt termékek
Egy webáruház a megszűnt termékeket rendszeresen a kezdőlapra irányította. A Search Console-ban ezek egy része soft 404-ként jelent meg. Az új szabály szerint a megszűnt termék a közvetlen utódjára irányít, ha van; ha nincs, a szűkebb kategóriájára, ha az valóban hasonló termékeket kínál; ha pedig egyik sem releváns, 410-es választ ad. Ez a döntési szabály a látogatónak is jobb, mert oda kerül, ahol a keresett dolog legközelebbi megfelelője van.
Ellenőrzőlista
- Minden végleges változás 301-et (vagy 308-at) használ, nem 302-t.
- Minden régi cím egyetlen lépésben a végső célra mutat.
- A cél 200-as, indexelhető, releváns lap.
- Nincs tömeges átirányítás a kezdőlapra.
- A belső linkek, a sitemap és a canonical az új címeket használják.
- Költözésnél van teljes átirányítási térkép, és minden sora ellenőrizve.
- Az átirányítások hosszú távon, legalább a Google által javasolt ideig fennmaradnak.
- A Search Console-ban nincsenek fontos lapok váratlanul az átirányított csoportban.
Kapcsolódó részletes útmutatók
Csináltassuk meg helyetted
Ha ez sok, mi elvégezzük. Egy munkanapon belül konkrét ajánlatot kapsz.