Nie zarzynajmy serwera ESCPartners!

ESCPArtners Bardzo modne stało się ostatnio stawianie sklepów w ramach programu partnerskiego ESCPartners i dołączanie ich do systemów wymiany linków celem szybkiego pozyskiwania sporej ilości punktów, które można później przeznaczyć na “zakup” linków pozycjonujących (zaplecze seo pod systemy). Dodatkowo, sklepy pozwalają osiągać niekiedy przyzwoite dochody (przetestowałem :) ), co tym bardziej zachęca do pobrania skryptu i “wrzucenia na serwer”. Skrypt jest prosty w konfiguracji i umożliwia otworzenie własnego sklepu w ciągu kilku, góra kilkunastu minut.

Niestety, masowość wykorzystywania tych sklepów przez polskich pozycjonerów do tworzenia zaplecza spowodowała pewne reperkusje. Skrypt sklepu, przy każdej odsłonie podstrony, łączy się wielokrotnie z serwerem ESCPartners wysyłając i pobierając mnóstwo danych. Pewnie Twórcy nie przewidzieli tak dużego sukcesu i źle dobrali wydajność swojego serwera, bo sklepy ostatnio radykalnie zwolniły.

Zmniejszenie ilości połączeń do serwera ESCPartners

Powstało już kilka pomysłów optymalizacji skryptu tak, aby przyspieszyć ich działanie i ograniczyć transfer generowany przez sklep.

Jednym z pierwszych pomysłów było keszowanie pobieranych za każdym razem danych, potrzebnych do tworzenia menu. Wprowadziłem już tę modyfikację (trochę inaczej to rozwiązując). Wkrótce zabiorą się też za keszowanie informacji o danym produkcie.

Idąc tym tropem, zmodyfikowałem także w swoich sklepach, kod w pliku cart.php , eliminując przez to kolejne niepotrzebne połączenia z serwerem zewnętrznym podczas indeksowania sklepu przez boty wyszukiwarek. Proponuję, aby inni partnerzy tego programu partnerskiego też zmodyfikowali ten plik, co pewnie trochę odciąży serwer ESCPartners i mam nadzieję wpłynie na zwiększenie szybkości sklepów.

Ponieważ boty wyszukiwarek nie robią zakupów, więc nie ma sensu przechowywania ich koszyka na zewnętrznym serwerze ;) Potrafią jednak niekiedy nieźle “pohasać” (niekiedy Googlebot zasysa w ciągu doby kilkaset a nawet kilka tysięcy podstron sklepu).

Proponuję zatem otworzyć w edytorze plik include/cart.php i zamienić:

$items = $client->showCart(PASS, session_id());

na:

$ListaRobotow = array (
“szukacz”,
“webspider”,
“onet”,
“inktomi”,
“optimus”,
“netsprint”,
“winhttprequest”,
“antibot”,
“appie”,
“architext”,
“bjaaland”,
“digout4u”,
“echo”,
“fast-webcrawler”,
“ferret”,
“googlebot”,
“mediapartners”,
“mediapartners-google”,
“gulliver”,
“harvest”,
“htdig”,
“ia_archiver”,
“jeeves”,
“jennybot”,
“linkwalker”,
“lycos”,
“mercator”,
“moget”,
“muscatferret”,
“myweb”,
“netcraft”,
“nomad”,
“petersnews”,
“scooter”,
“slurp”,
“unlost_web_crawler”,
“voila”,
“voyager”,
“webbase”,
“weblayers”,
“wget”,
“wisenutbot”,
“acme.spider”,
“ahoythehomepagefinder”,
“alkaline”,
“arachnophilia”,
“aretha”,
“ariadne”,
“arks”,
“aspider”,
“atn.txt”,
“atomz”,
“auresys”,
“backrub”,
“bigbrother”,
“blackwidow”,
“blindekuh”,
“bloodhound”,
“brightnet”,
“bspider”,
“cactvschemistryspider”,
“cassandra”,
“cgireader”,
“checkbot”,
“churl”,
“cmc”,
“collective”,
“combine”,
“conceptbot”,
“coolbot”,
“core”,
“cosmos”,
“cruiser”,
“cusco”,
“cyberspyder”,
“deweb”,
“dienstspider”,
“digger”,
“diibot”,
“directhit”,
“dnabot”,
“download_express”,
“dragonbot”,
“dwcp”,
“e-collector”,
“ebiness”,
“eit”,
“elfinbot”,
“emacs”,
“emcspider”,
“esther”,
“evliyacelebi”,
“nzexplorer”,
“fdse”,
“felix”,
“fetchrover”,
“fido”,
“finnish”,
“fireball”,
“fouineur”,
“francoroute”,
“freecrawl”,
“funnelweb”,
“gama”,
“gazz”,
“gcreep”,
“getbot”,
“geturl”,
“golem”,
“grapnel”,
“griffon”,
“gromit”,
“hambot”,
“havindex”,
“hometown”,
“htmlgobble”,
“hyperdecontextualizer”,
“iajabot”,
“ibm”,
“iconoclast”,
“ilse”,
“imagelock”,
“incywincy”,
“informant”,
“infoseek”,
“infoseeksidewinder”,
“infospider”,
“inspectorwww”,
“intelliagent”,
“irobot”,
“iron33″,
“israelisearch”,
“javabee”,
“jbot”,
“jcrawler”,
“jobo”,
“jobot”,
“joebot”,
“jubii”,
“jumpstation”,
“katipo”,
“kdd”,
“kilroy”,
“ko_yappo_robot”,
“labelgrabber.txt”,
“larbin”,
“legs”,
“linkidator”,
“linkscan”,
“lockon”,
“logo_gif”,
“macworm”,
“magpie”,
“marvin”,
“mattie”,
“mediafox”,
“merzscope”,
“meshexplorer”,
“mindcrawler”,
“momspider”,
“monster”,
“motor”,
“msnbot”,
“live.com”,
“slurp”,
“mwdsearch”,
“netcarta”,
“netmechanic”,
“netscoop”,
“newscan-online”,
“nhse”,
“northstar”,
“occam”,
“octopus”,
“openfind”,
“orb_search”,
“packrat”,
“pageboy”,
“parasite”,
“patric”,
“pegasus”,
“perignator”,
“perlcrawler”,
“phantom”,
“piltdownman”,
“pimptrain”,
“pioneer”,
“pitkow”,
“pjspider”,
“pka”,
“plumtreewebaccessor”,
“poppi”,
“portalb”,
“puu”,
“python”,
“raven”,
“rbse”,
“resumerobot”,
“rhcs”,
“roadrunner”,
“robbie”,
“robi”,
“robofox”,
“robozilla”,
“roverbot”,
“rules”,
“safetynetrobot”,
“search_au”,
“searchprocess”,
“senrigan”,
“sgscout”,
“shaggy”,
“shaihulud”,
“sift”,
“simbot”,
“site-valet”,
“sitegrabber”,
“sitetech”,
“slcrawler”,
“smartspider”,
“snooper”,
“solbot”,
“spanner”,
“speedy”,
“spider_monkey”,
“spiderbot”,
“spiderline”,
“spiderman”,
“spiderview”,
“spry”,
“ssearcher”,
“suke”,
“suntek”,
“sven”,
“tach_bw”,
“tarantula”,
“tarspider”,
“techbot”,
“templeton”,
“teoma_agent1″,
“titin”,
“titan”,
“tkwww”,
“tlspider”,
“ucsd”,
“udmsearch”,
“urlck”,
“valkyrie”,
“victoria”,
“visionsearch”,
“vwbot”,
“w3index”,
“w3m2″,
“wallpaper”,
“wanderer”,
“wapspider”,
“webbandit”,
“webcatcher”,
“webcopy”,
“webfetcher”,
“webfoot”,
“weblinker”,
“webmirror”,
“webmoose”,
“webquest”,
“webreader”,
“webreaper”,
“websnarf”,
“webspider”,
“webvac”,
“webwalk”,
“webwalker”,
“webwatch”,
“whatuseek”,
“whowhere”,
“wired-digital”,
“wmir”,
“wolp”,
“wombat”,
“worm”,
“wwwc”,
“wz101″,
“xget”,
“awbot”,
“bobby”,
“boris”,
“bumblebee”,
“cscrawler”,
“daviesbot”,
“ezresult”,
“gigabot”,
“gnodspider”,
“internetseer”,
“justview”,
“linkbot”,
“linkchecker”,
“nederland.zoek”,
“perman”,
“pompos”,
“psbot”,
“redalert”,
“shoutcast”,
“slysearch”,
“ultraseek”,
“webcompass”,
“yandex”,
“robot”,
“crawl”
);

$czy_bot = ‘nie’;

$UserAgentBota = strtolower($HTTP_SERVER_VARS[’HTTP_USER_AGENT’]);

for ($i = 0; $i < count($ListaRobotow); $i++) {
if ( strstr($UserAgentBota, $ListaRobotow[$i]) ) $czy_bot = 'tak';
}

if ($czy_bot == 'nie') $items = $client->showCart(PASS, session_id());

// edit
Ponieważ skrypt WordPress modyfikuje pewne istotne z punktu widzenia PHP znaki (jak np. ‘), zamiast kopiować powyższy kod, pobierz go tutaj: kod_php.txt.

Oczywiście ilość botów w tabeli $ListaRobotow można zmniejszać lub powiększać wg własnego uznania.

Zablokowanie niepotrzebnych botów

W przypadku wykorzystywania sklepu przede wszystkim jako “zaplecze pod systemy”, z botów można wpuścić tylko Googlebota, a resztę wyciąć w htaccess. Np., gdy zechcemy zablokować bota Yahoo! Slurp i msnbota (są dość mocno transfero-żerne), to powinniśmy wpisać do htaccess:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} ^Slurp [OR]
RewriteCond %{HTTP_USER_AGENT} ^msnbot
RewriteRule .* - [F]

Można w ten sposób zablokować także inne zbędne boty, np. wg tej listy.

Spowolnienie Yahoo! Slurp i msnbota

Jak ktoś się jednak zdecyduje wpuścić do sklepu Yahoo! Slurp i mnsbota, to przynajmnie warto je spowolnić poprzez wpisanie do pliku robots.txt:

User-agent: Slurp
Crawl-delay: 120
Disallow: /cart.php

User-agent: msnbot
Crawl-delay: 120
Disallow: /cart.php

User-agent: *
Disallow: /cart.php

Dzięki temu, boty tych wyszukiwarek będą zaglądać nie częściej niż co 2 minuty. Linie Disallow: /cart.php zapobiegną wchodzeniu botów pod adresy typu /cart.php?action=add&id=nr_produktu.

Utworzenie/modyfikacja pliku robots.txt wg powyższych wskazówek, również trochę odciąży serwer ESC Partners.

7 Komentarzy dla wpisu “ Nie zarzynajmy serwera ESCPartners!”

  1. breja napisał(a):

    Linki do koszyka sa nofollow wiec sie chyba gbot nie bedzie pchal ;p ale przydala by sie jakas opcja wlasny mirror bazy czy cos ;)

  2. Nawigator napisał(a):

    U mnie nie są nofollow. Sklepy tworzyłem już jakiś czas temu i pewnie wtedy jeszcze nie były nofollow. Zresztą, jedna linijka więcej w robots.txt nie zaszkodzi :)

    Własna baza? Chyba lepsze będzie jednak keszowanie przy wykorzystaniu plików.

  3. breja napisał(a):

    Ale jak ktos robi pod site i stawia 100 sklepow ;) to cache raczej malo da gbot nie odwiedza za czesto tych samych podstron a normalnych wejsc pewnie bedzie mniej niz gbota.

  4. Nawigator napisał(a):

    Faktycznie, dopiero pierwsze przejście jednego czy drugiego bota po stronach wygenerowało by pliki. Jednak ich “aktualność” można by ustawić nawet na kilka lat (tak zamierzałem zrobić).

    Z drugiej strony, trochę tych plików by powstało (w sklepach jest sporo produktów) :???:

  5. Nawigator napisał(a):

    Nastąpiła w końcu reakcja ze strony ESCPartners na problem zwalniających sklepów.

    Tutaj: http://www.blog.escpartners.pl/?p=11 , Tomasz Kapelak z ESC Partners przedstawił modyfikację, która aktywuje cachowanie plików.

    Proszę, dopiszcie jak najszybciej te kilka linijek kodu, bo mi całkiem sklepy staną :evil:

  6. Jak obniżyć koszty prowadzonych sklepów ESC Partners? | e-Biznes i Programy Partnerskie napisał(a):

    […] artykule “Nie zarzynajmy serwera ESC Partners!” nawigator proponuje nam wycięcie niektórych robotów zżerających nam transfer. […]

  7. serder napisał(a):

    z tymi sklepami to nie zły pomysł, ale ja się na tym nie znam i wolę się za to nie brać. Mam inne sposoby na pozycjonowanie serwisu, jednym z nich jest generowanie oryginalnej treści na stronie, bo polski internet w wiedzę nadal jest ubogi.

Skomentuj wpis

XHTML: Możesz używać tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Kalendarz

wrzesień 2010
P W Ś C P S N
« lipca    
 12345
6789101112
13141516171819
20212223242526
27282930  

RSS

Administracja


This blog is protected by dr Dave's Spam Karma 2: 10489 Spams eaten and counting...