Főoldal és az index duplikátumok problematikája
Ugye SEO szempontból felmerül az a gond, hogy ugyan az a tartalom érhető el a www.domian.hu és a www.domain.hu/index.php tartalom alatt. Tehát duplikátum. A megoldás lehet a canonical használata, de szerintem sokkal elegánsabb megoldás, ha .htaccess segítségével védjük ezt ki.
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.(html?|php|asp|cfm)\ HTTP/
RewriteRule ^(.*)index\.(html?|php|asp|cfm)$ $1 [R=301,L]
Eredménye:
| http://www.domain.hu/ | http://www.domain.hu/ |
| http://www.domain.hu/index.htm | http://www.domain.hu/ |
| http://www.domain.hu/index.html | http://www.domain.hu/ |
| http://www.domain.hu/index.php | http://www.domain.hu/ |
| http://www.domain.hu/index.asp | http://www.domain.hu/ |
| http://www.domain.hu/index.cfm | http://www.domain.hu/ |
Több domain használata egy tárhelyen. Azaz a .htaccess és a multiple redirect
Vannak olyan esetek, amikor egy honlaphoz több domaint kell használni. De a duplikált tartalom ellen is küzdeni akarunk. (Tehát a honlapot csak www-vel lehessen elérni, nélküle ne)
Célunk tehát a a domain1.hu és domain2.hu tiltása és a www.domain1.hu és www.domain2.hu engedélyezése. A megoldáshoz a .htaccess hívjuk segítségre.
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain1\.hu [NC]
RewriteRule ^(.*)$ http://www.domain1.hu/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^domain2\.hu [NC]
RewriteRule ^(.*)$ http://www.domain2.hu/$1 [L,R=301]
Eredménye:
| domain1.hu | http://www.domain1.hu |
| www.domain1.hu | http://www.domain1.hu |
| http://www.domain1.hu | http://www.domain1.hu |
| sub.domain1.hu | http://sub.domain1.hu |
| domain2.hu | http://www.domain2.hu |
| www.domain2.hu | http://www.domain2.hu |
| http://www.domain2.hu | http://www.domain2.hu |
| sub.domain2.hu | http://sub.domain2.hu |
A megoldás egyetlen hátránya, hogy az összes domaint fel kell sorolni. De onnantól kezdve szépen átirányít. Arra viszont figyeljünk oda, hogy ha aldomaint is szeretnénk átirányítani, akkor azokat is fel kell sorolni. Tehát ez a megoldás alapesetben az aldomaineket nem módosítja. (sub.domain1.hu cím megmarad)
Ha nincs szükségünk aldomainekre, akkor használhatjuk a következő "univerzális" megoldást:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Eredménye:
| domain1.hu | http://www.domain1.hu |
| www.domain1.hu | http://www.domain1.hu |
| http://www.domain1.hu | http://www.domain1.hu |
| sub.domain1.hu | http://www.sub.domain1.hu |
| domain2.hu | http://www.domain2.hu |
| www.domain2.hu | http://www.domain2.hu |
| http://www.domain2.hu | http://www.domain2.hu |
| sub.domain2.hu | http://www.sub.domain2.hu |
vagy ellenkező párját, ahol a www-t távolítjuk el:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www\.(.*)//((s)on|s.*)$ [NC]
RewriteRule ^ http%3://%1%{REQUEST_URI} [L,R=301]
Duplikált tartalom – canonical
Mostanában elég sokat foglalkozom SEO kérdésekkel, így most is egy ilyen problémakört fogok feszegetni.
A keresők, s köztük is a google, igen csak gyűlöli sőt büntet is, ha ugyan azt a tartalmat el lehet érni több url alatt is. Mégis hogyan kell elképzelni az ilyen eseteket?
- Eleve van egy SEO barát url rendszered pl. egy webshopban:
Tehát cikkek alatt listázod a gyártót, vagy a gyártó alatt a termékét:http://www.boltom.hu/alaplapok/asus/
http://www.boltom.hu/asus/alaplapok/
- A meglévő PHP oldalad paraméterezed:
http://www.boltom.hu/termekek.php?sid=shda31hid321sh21 (sessionID)http://www.boltom.hu/termekek.php?keres=eztkeresem
(de ha több ilyen keresésnek sincs eredménye, akkor a lapok megegyeznek abban hogy nincs találat szöveg jelenik meg, de az url-jük eltér)
De ebbe a kategóriába esik Analytics kampánykövető kódja is.
- Vagy esetleg újraírtad az oldalad:
Régi weboldalam így volt elérhető: page.php?14, vagy page.php?8. De eldobtam a CMS rendszert, s sajátot készítettem, melyben rendesen vannak a fájlok nevei. index.php, webshop.php, stb... De mi van azon linkekkel melyek a page.php?14-re mutatnak? Vagy hagyod elveszni őket, és a látogatók csak kapkodnak a 404 láttán, vagy csinálsz egy .htaccess-es átirányítást. Esetleg eleve van valamilyen SEO url kezelésed, és emiatt PHP-vel dobod majd át őket, 301-es redirecttel. De így ugyan az a tartalom lesz elérhető 2 url-el.
- Az oldalad www.-vel és anélkül:
Elérhető az oldalad http://bolt.hu/lapom.php és http://www.bolt.hu/lapom.php url-ekkel is? Nem tudsz .htaccess-es átirányítást csinálni mert a szolgáltatód nem engedi? Ekkor is érintett vagy...
- A kezdőoldal problematikája:
És a kedvenc problémám. http://www.bolt.hu/ és a http://www.bolt.hu/index.php is ugyan azt adja, eltérő url esetén.
Mint látható nagyon sok esetben futhatunk bele ilyen problémákba, és ha egy igazán jó oldalt akarunk csinálni, akkor ezt nem hagyhatjuk figyelmen kívül. Viszont itt van segítségünkre a megoldás! A canonical. Minden olyan oldalba, mely több url-ről is elérhető, a headerbe bele kell tenni egy plusz sort, hogy melyik az eredeti tartalom. A parancsot máris támogatják a legnagyobb keresők mint pl.: Google, Yahoo, Live.
Nincs más dolgom már, csak a kódot közkincsé tenni:
<link rel="canonical" href="http://www.oldalam.hu/az/eredeti/url/" />
Google keresési trendek
A www.guglisagok.hu oldal számolt be arról, hogy a híres Insights for Search immáron elérhető magyar nyelven is!
Ezzel az eszközzel elég kényelmesen meg lehet állapítani, mely szavakra hol és mikor keresnek rá! Keresőoptimalizálás szempontjábol nagyon hasznos egy eszköz. Főleg az elején, a jó kulcsszóválasztáshoz! Az eredeti cikk itt tekinthető meg.
Ajax és a SEO – Avagy ellenségből barát
Ebben a postomban Verő Boglárka és David Walsh irományát párosítom össze, a magam szájíze szerint.
A kiindulási koncepció ugye az, hogy egy normális tartalmat a kereső robotok minden gond nélkül látják, és fel is tudnak dolgozni. Viszont mi van abban esetben, ha lapunk tele van AJAX kérésekkel? Gondolom sokan tudjátok, hogy a keresők nagy száma nem is törődik a javascriptekkel. Gyakorlatilag figyelmen kívül hagyja, észre sem veszi. Nem hogy lefuttassa őket. (De ebbe most bővebben nem mennék bele részletesebben, mert a Google néhány speciális esetben képes javascriptbe-be ágyazott linkek követésére. Állításom forrása megtalálható Longhard egyik cikkében.) Tehát azon lapok, vagy postok, hozzászólások, vagy képek de végül is legyen bármi, ami AJAX-al töltődik be a botok számára nem is léteznek. De mit tudunk olyan esetben tenni, ha nekünk mégis szükségünk van arra hogy az így betöltött tartalom is elérhető legyen a keresők, és robotok számára? Nem kell hosszasan gondolkozni! Csak nem a beidegződéseket kell követni, hanem kicsit robot fejjel gondolkodni.
Egy hagyományos AJAX request, melyet nem tud értelmezni a keresőrobot:
<a href="javascript:q(2);"> További hozzászólások megmutatása </a>
És ennek módosítása mellyel már elboldogul:
<a onclick="javascript:q(2); return false;" href="forum.php?q=2"> További hozzászólások megmutatása </a>
Elemezzük is ki, mi ennek az oka. Mint mondottam, a javascriptet figyelmen kívül hagyják. De a második esetben, a href tagot tudja követni a robot, mert az egy számára is értelmezhető url, mely indexelhető tartalmat fog neki adni. De a felhasználó is megkapja a neki szánt élményt, mert at onclick esemény lefut, így meghívódik az AJAX request, de a return false biztosítja majd számunkra, hogy a "normális link" ne működjön. Különben ezzel a megoldással két legyet üt egyszerre a webmester mert nem csak a kereső számára lesz olvasható a tartalom, hanem azon látogatóknak is, akiknek nincs, vagy éppen letiltották a javascript futtatását.
Ezen módosítás után nekünk fejlesztőknek nincs más dolgunk mint megfelelő választ adni az AJAX és normál (GET) kéréseknek. Hiszen egy AJAX kérésnek elég csak kommenteket átadnunk, míg normál kérés esetén a teljes weblapot újra elő kell állítanunk.
Lehet az egyszerű megoldás használni, (a példában használt) forum.php feldolgozza a normál kéréseket, míg a forum.ajax.php kezeli az AJAX kéréseket, ahogy egy jóbarátomtól tanultam. Bár ez a módszer azért nem nyerte el a tetszésemet, mert ha sok-sok AJAX kérés lesz, akkor minden fájlból 2 verzió lesz, és egy idő után már összefolynak a fájlnevek az FTP-n.
Vagy egy paramétert felhasználni csak azért hogy a kérés AJAX-e vagy sem, de így mindig egy változót kell átadni, melyre figyelni kell hogy nehogy elfelejtsük használni. Így ez még mindig nem nyerte el a tetszésemet.
A legjobb megoldás szerintem amit ez a David Walsh gyerek kitalált. A következő PHP kóddal szerveroldalon detektálni lehet hogy AJAX kérés futott-e le vagy normál request.
$ajax = $_SERVER['HTTP_X_REQUESTED_WITH'];
if( !empty($ajax) && strtolower($ajax) == 'xmlhttprequest') {
//AJAX kérés futott le
} else {
//normál kérés futott le
}
Hiába nekem ez tetszik a legjobban, ennek is van hátulütője. Nem minden szerver támogatja, így ha használja valaki előbb ellenőrizze, hogy a $_SERVER['HTTP_X_REQUESTED_WITH'] változó számára elérhető-e!
SEO barát katalógusok és amiket kerülni kell
Ennel a cikknek az alapjait a www.oldalgazda.hu weblapon találtam. S az iromány a keresőoptimalizálásnál használt linképítésben segédkezne. Hiszen tudjátok ez egy naghyon fontos része a SEO-nak, hogy kellő számú jó minőségű backlinket tudj felmutatni. Mert van nagyon sok olyan katalógus, amivel csak az időt vesztegeti az ember. S haszna sohasem lesz belőle. Hát had segédkezzem most én is hogy a felesleges macerákat elkerülhesse mindenki.
SEO barát magyar nyelvű katalógusok legalább 4-es pagerankig:
- lap.hu
- weblink.hu
- magyar-honlap.hu
- webkatalogus.wqw.hu
- linkweb.hu
- linkpark.hu
- hungaroo.com
- hun-web.hu
- wyw.hu
- wideweb.hu
- tuddmeg.hu
- regionalis.hu
- meteora.hu
- link-gyujtemeny.extra.hu
- hunvista.net/linktar
- whm.hu
A fenti lista a 2009 augusztus 11.-i állapotot tükrözi, a teljes cikk, és esetleg a frissebb változata megtalálható itt: Linkgyűjtemények listája PageRank szerint. Tehát ezen listákba érdemes regisztrálni mindenképpen. A további 3-2-1 -es pagerankú oldalakat érdemes átgondolni, hogy egéri-e. De ezen döntéseket mindenki maga hozza meg!
SEO barát magyar nyelvű specializálódott katalógusok:
Ez a lista olyan katalógusokat próbál össze szedni, melyek valamilyen célcsoportot fognak meg. pl.: HR, blogolók, állatorvosok, vagy épp vállalkozókat csoportosít. Így érdemes ezen listát is átnézni, hátha talál rajta olyat az ember ahová érdemes regisztrálni. Az eredeti lista megtalálható itt: Speciális magyar webkatalógusok
A kerülendő, NEM SEO barát katalógusok:
Ezek azok, ahol nofollow-el hivatkoznak az oldalakra, vagy cserelinket kérnek, vagy ami még rosszabb átirányítással linkelnek. Tehát aki teheti ezeket messziről kerülje el! A teljes listát itt nem is sorolnám fel, hanem nézzétek meg itt: Nem SEO-barát katalógusok