Menü
Telefonszám
Kapcsolat
Technikai SEO: robotlátogatások kitiltása

2020. augusztus 27, csütörtök 21:25 (Frissítve: 2023-02-28) | MOZ DA, Technikai SEO, Index

Robotlátogatások kitiltása

Technikai SEO: oldal betöltési sebesség növelése a link feltérképező robotok kitiltásával

Az oldal betöltődési sebesség nem csak a Google rangsorolás miatt fontos. A felhasználók hozzászoktak a gyorsasághoz. Ha 3mp alatt nem tölt be a weboldal, klikk a vissza gombra. Nagyon sok ponton lehet optimalizálni az oldal betöltődési sebességét. Most egy olyat ismerhet meg, amire kevesen gondolnak: robotlátogatások visszaszorítása. Botrány, amit az orosz / kínai / amerikai robotok végeznek. Akár 80% is lehet a robotlátogatások aránya.

A weboldal betöltődési sebessége elsősorban a szerver terheltségétől függ. De erős, gyors szervert is könnyen megfektethet a rossz webprogramozás. Főleg a hanyag adatbáziskezelés. Gyengén vagy rosszul indexelt táblák lekérdezése rettentően lassú. Borzalmas élményt nyújt a felhasználóknak.

A Wordpress weboldalak sem menekülnek könnyen. A plugin-ek gyakran összeakadnak, rengeteg felesleges lekérdezést futtatnak. Egyetlen oldalbetöltéshez gyakran 100+ adatbázis lekérdezés történik, elég megnézni a szervernaplót. Ezért van egyre több és jobb cache (gyorsítótár) modul, ami igazából csak a második megtekintéstől teszi gyorsabbá a weboldalakat. Főleg statikus tartalomnál élvezhető előnyt nyújt.

Képek tömörítése, optimalizálása is nagy segítség, a DOM struktúra optimalizálása (pl aszinkron szkriptek használatával) is segít a gyors oldalbetöltésben.

Ezek is fontos tényezők, de van egy ennél még érdekesebb lehetőség: a szerver terhelés csökkentése, mégpedig a robotlátogatások visszaszorításával.

A robotlátogatások terhelik a webszervert

Szerver terhelés: 1 óra alatt hány oldalbetöltés történik. Minél több látogatót kell kiszolgálni, értelemszerűen annál lassabb az oldalbetöltés. Itt a probléma: a robotlátogatások belassíthatják a szervert. Nagyon népszerű téma a SEO, főleg a linképítés. Ma már számtalan webapp létezik, ami a linkek feltérképezését szolgálja. Idehaza a Moz (a keresőoptimalizálás hőskorában SEOMOZ néven futott, de erre ki emlékszik már, ugye?) és talán az Ahrefs (legnagyobb adatbázis) a leginkább ismert. Azonban a szervernaplóból könnyen kiderül, hogy a teljes forgalom 30-60 százalékát is kitehetik a robotlátogatások.

Általánban a szerveren a /var/log/apache2 mappában érdemes megnézni a naplófájlokat. Valami botrány, amit benne találunk: robotok százai zabálják az erőforrást. Yandex, Megaindex, Petalbot, Blexbot... Ezek az orosz, kínai, amerikai robotok egy-egy látogató elől veszik el az erőforrást

Elvileg pont az ilyen durva terhelések miatt találták ki a robots.txt rendszerét. Ez egy szöveges fálj a szerver főkönyvtárában, ami a robotok viselkedését irányítja. Itt meg lehet adni, hogy milyen robotokat engedünk be és tiltunk ki a weboldalunkról.

Figyelmen kívül hagyják a botok a robos.txt tartalmát

Robotok kitiltása a robots.txt-vel... Hoppá, nem működik a gyakorlatban: a robots.txt tartalmát gyakran figyelmen kívül hagyják a link feltérképező robotok. A Googlebot figyelembe veszi a robots.txt tartalmát, de sajnos az ilyen orosz-kínai link feltérképező robotok csak röhögnek ezen egy jót. Kipróbáltam: a teljes indexből való kitiltás után pont ugyanannyi robotlátogatást rögzített a szervernapló.

Normál esetben így működik a robots.txt:

User-agent: {robot neve}
Allow: {engedélyezett oldalcím}
Disallow: {letiltott oldalcím}

Például:

User-agent: *
Allow: /
Disallow: /admin

Ez a kód minden robotnak (user-agent: *) engedi a teljes hozzáférést (allow: /) a weboldalhoz, kivéve a /admin kezdetű webcímeket.

Ezzel a módszerrel elvileg ki lehet tiltani például a MegaIndex orosz linkfeltérképező robotot:

User-agent: MegaIndex
Disallow: /

Elindulhat a vadászat a rosszindulatú robotok után. Hamarosan kapunk egy szép listát és már több száz soros lesz a robots.txt. Valami ilyesmi (kivonat):

User-agent: *
Allow: /
Disallow: /admin

User-agent: SemrushBot
Disallow: /

User-agent: AhrefsBot
Disallow: /

User-agent: DotBot
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: spbot
Disallow: /

User-agent: SeznamBot
Disallow: /

User-agent: Yandex
Disallow: /

User-agent: YandexBot
Disallow: /

User-agent: DeuSu
Disallow: /

User-agent: Qwantify
Disallow: /

Robotok kitiltása PHP-vel

Robotlálátogatások kitiltása erővel: a robotok által használt böngésző típusok egyezését vizsgálja egy rövid PHP szkript. Ha robotlátogatást érzékel, azonnal megszakítja a program futtatását. Nem kell hozzá sok PHP ismeret, hogy egy rövid szkript megírása felszabadítsa a szervert a robotlátogatások terhe alól. Az elv egyszerű:

  1. egy tömbbe gyűjtsük össze robotokhoz tartozó User-Agent értéket.
  2. gyorsan fussunk végig minden oldalbetöltéskor ezen a tömbön
  3. egyezésél azonnal szakítsa meg a program futtatását

Ez nagyon jól működik keretrendszereknél. Például Wordpress is ilyen, az index.php fálj elejére gond nélkül be lehet illeszteni ezt a szkriptet.

A SEOzseni saját szkriptje így néz ki (kivonat, a robotok listáját csökkentettem az olvashatóság miatt):

<?php
#
# Disable Bad Robots
#
$ua=array(
'SemrushBot', // Ez a SemRush robotja
'AhrefsBot', // Ez az Ahrefs robotja
'DotBot', // Ez a MOZ robotja
'MJ12bot',
'spbot',
'SeznamBot',
'Yandex',
'DeuSu',
'SiteExplorer',
'BUbiNG',
'BLEXBot',
'ExtLinksBot',
'alphabot',
'rogerbot',
'Qwantify',
'MegaIndex'
);

foreach ($ua as $u) {
if (strpos($_SERVER['HTTP_USER_AGENT'],$u)!==false) {
header("HTTP/1.1 403 Forbidden");
die();
}
}

Mejgegyzés fejlesztőknek:
#1) a strpos() funkció betűérzékeny, de jóval gyorsabb mint a stripos(), ami ennek a betűérzéketlen megfelelője. Gyakran használják még a strstr() funkciót is - de mind közül az a leglassabb, mellőzni. Figyelni kell a PHP automatikus típus meghatározására is, mert a strpos() nulla értékkel tér vissza, ha a sztring a keresett adattal kezdődik. A nulla pedig nem egyenlő a false értékkel, ezért kell a három egyenlőségjel - jelen esetben pontos típusegyezés miatt !== jelet használni az IF-ben.
#2) Brutál megoldás minden bot kitiltása, kivéve a Googlebot. Ez is egyszerű, egyetlen sor: if (strpos($_SERVER['HTTP_USER_AGENT'],'oogle')===false && (strpos($_SERVER['HTTP_USER_AGENT'],'bot')!==false || strpos($_SERVER['HTTP_USER_AGENT'],'crawler')!==false)) {die();} - itt a google helyett csak "oogle" van, mert az AdSense-hez a Google "Mediapartners-Google" User-Agentet használ, a strpos pedig betűérzékeny. A logikai operátorok miatt fontos, hogy a második OR teljes egészében zárójelben legyen és ennek az eredményét vesse össze az AND-del.

A SEOzseni is tiltja a link-robotokat

A SEOzseni hálózata is kitiltja a robotokat. Köztük a MOZ és AHREFS robotjait is - itt az ügyfelek védelme a cél. A MOZ jellemzően jóval alacsonyabb DA értékétet mutat a teljes hálózatban, mert hozzá sem fér a linkekhez. Gondoljon bele - vajon Ön szeretné, ha az összes konkurense a MOZ lekérdezésével megtudhatja, hogyan kell lemásolni az első hely sikerének (egyik) titkát? Ugyan, dehogy! Inkább mutasson kevesebb DA értéket több száz domainhez, mert ez amúgy sem rangsorolási faktor.

Ezt a trükköt akkor érdemes használni, amikor a kíváncsi szemek elől szeretnénk elrejteni a weboldalunk linkprofilját - és rendelkezünk elég nagy saját hálózattal. Nekünk nincs ráhatásunk például a Startlap rendszerére. Egy link feltérképező robot gyorsan indexeli a Startlapot és rögtön megmondja, hogy a konkurensek hova regisztráltak.

SEOzseni Linkkatalógus kereső funkció

A SEOzseni Linkkatalógus kereső funkciója még azt is megmondja, hogy melyik dobozba regisztráltak a konkurensek. Éppen az ilyen jellegű kíváncsiskodók elől van elrejtve az egész hálózat

Ez is csak akkor működhet, ha saját magunk fejlesztjük a saját hálózatunkat. Bérelt webáruházak esetén nem működik.

2000 óta foglalkozom PHP fejlesztéssel, ezért szívesen segítek a független programozóknak. Most szeptemberben lesz épp 20 éve

1 hozzászólás

Tamás | 2023. december 04, hétfő 06:11
Én is egy Php kód segítségével oldottam meg a robotlátogatások tiltását! :)

Te mire szeretnél megoldást? Írd le a kérdésed, észrevételed:

*Név:

E-mail cím (Nem publikus. Értesítést kapsz, ha érkezik válasz a kommentedre):

*Hozzászólás:

--
Köszönöm megtisztelő figyelmed, tisztelettel:

Verdes János
Verdes János
Weboldal készítés, keresőoptimalizálás (SEO) és online marketing 2005 óta.

© 2005 - 2024 seozseni.hu | Az oldalon található anyagok kizárólag a szerző hozzájárulásával és a forrás megjelölésével használhatóak fel.