W dniu dzisiejszym przedstawię kolejną całkowicie darmową alternatywę tym razem dla komercyjnego softu do monitorowania pozycji Stat4Seo lub innego bezpłatnego – SeoPanel. Aplikacja dostępna jest już od dawna. Gdy projekt startował myślałem, że nic z tego nie wyjdzie a tu proszę. Aplikacja którą przedstawię jest rozwijana i aktualizowana, w związku z czym postanowiłem opisać ją na blogu. Zapraszam do zapoznania się z prezentacją.
Mowa o SERPoscope – skrypcie do monitorowania pozycji w Google instalowanym na serwerze WWW. Podstawowe wymagania to: Serwer (Apache, Nginx, Lighttpd), PHP 5.3.8, MySQL, rozszerzenia CURL i COM. Najświeższą wersję możesz pobrać ze strony autora.
Instalacja SERPoscope
Rozpakuj archiwum serposcope-1.0.7.zip i prześlij pliki na serwer przy użyciu aplikacji WinSCP, FileZilla, MuCommander lub innej.
Uruchom instalację, wpisz w pole adresu przeglądarki:
http://sub.twojadomena.pl/install/
Jeśli Twój serwer spełnia wszystkie wymagania możesz przejść do kolejnego kroku. Na powyższym zrzucie jak widać musimy zmodyfikować zmienną max_execution_time znajdującą się w pliku php.ini oraz zmienić domyślną wersję PHP z 5.2.17 na przynajmniej 5.3.8.
W katalogu subdomeny sub.twojadomena.pl utwórz plik .htaccess z następującym kodem:
Oczywiście Twój serwer musi wspierać daną wersję interpretera, w przeciwnym wypadku otrzymasz komunikat o błędzie. W przypadku edycji php.ini na hostingu współdzielonym nie jest tak łatwo, wielu usługodawców nie zezwala na własnoręczną edycję pliku php.ini (między innymi Unixstorm), dlatego szukaj konkretnych informacji na stronie swojego dostawcy.
Po wyeliminowaniu wszystkich błędów przejdź do kolejnego etapu, w którym zdefiniujesz dane dostępowe do bazy danych SERPoscope. Następnie postępuj zgodnie z zaleceniami kreatora instalacji.
Monitorowanie pozycji w SERPoscope
Po zainstalowaniu skryptu zobaczysz prosty i miły dla oka interfejs.
Nie znajdziemy tutaj wypasionych opcji konfiguracyjnych, choć trzeba przyznać że i tak nie są one skromne.
Monitorowanie rozpoczynamy od przejścia do zakładki Options i skonfigurowania sposobu wykonywania zapytań. Do dyspozycji mamy następujące opcje:
- timeout – czas trwania jednego zapytania do Google, po upływie czasu nastąpi wykonanie kolejnego zapytania z listy zadań,
- fetch_retry – w przypadku błędu ile razy skrypt będzie ponawiać zapytanie,
- rm_bad_proxies – opcja usuwająca proxy z listy po osiągnięciu określonej liczby nieudanych zapytań,
- proxy_auto_rotate – rotacja serwerów proxy, każde słowo odpytywane będzie poprzez inne proxy,
- rendering – sposób wyświetlania danych w panelu widoku pozycji,
- dbc_user/dbc_pass – nazwa użytkownika i hasło usługi DeathByCaptcha. Jeśli zdecydujemy się skorzystać z tego serwisu, podajemy nazwę użytkownika oraz hasło dostępowe,
- page_sleep – liczba sekund opóźnienia między kolejnymi zapytaniami do Google,
- captcha_basesleep – jeśli podczas wykonywania zapytania stwierdzono wyświetlenie komunikatu z kodem captcha, skrypt czeka podaną ilość sekund zanim dokona kolejnego zapytania,
- tld – precyzujemy z której wyszukiwarki chcemy skorzystać np. www.google.com, www.google.pl etc.
Po skonfigurowaniu skryptu zabieramy się za stworzenie pierwszego projektu. Klikamy New Group.
Wprowadzamy nazwę dla projektu (Group name), słowa kluczowe (Keywords), nazwę domeny do monitorowania bez http. Opcjonalnie możemy także wskazać konkretne Google datacenter, które będzie odpytywane, dodatkowe parametry w zapytaniu np. hl=pl oraz lokalizację (np. Katowice).
Po zapisaniu projektu pojawi się on w lewej części okna w sekcji Groups.
Dane prezentowane są w postaci wykresu lub w tabeli. Użytkownik może filtrować zakres danych, eksportować dane do pliku CSV czy też zapisać dane z wykresu do formatu PNG, JPEG, PDF lub SVG.
Dla każdej domeny można zrobić adnotacje, możliwe jest także dodanie notki dla każdego dnia (Calendar). Na szczególną uwagę zasługuje opcja ręcznego wywołania sprawdzania pozycji (Force run), zarówno w stosunku do konkretnej domeny (grupy, projektu), jak również uruchomienie manualne zadania dla wszystkich zdefiniowanych projektów (RUN ALL).
Jak przystało na dobry skrypt do monitorowania pozycji, SERPoscope pozwala zastosować proxy, publiczne i prywatne. Przed użyciem koniecznie zapoznaj się z dokumentacją.
Na koniec warto jeszcze zwrócić uwagę na zakładkę Logs i Import. Usuwając konkretne pozycje z sekcji Logs pozbywamy się zgromadzonych danych, inaczej mówiąc tracimy zebrane dane, dlatego nie należy usuwać logów, chyba że dane wyeksportowaliśmy wcześniej do pliku CSV. Wtedy to korzystając z opcji Import możemy wczytać ów dane do SERPoscope. Dość niekonwencjonalne rozwiązanie dlatego należy uważać by odruchowo nie usunąć danych (Logs).
Jak ze skutecznością sprawdzania? Powiem krótko – wysoka i o dziwo dokładna, dokładniejsza nawet niż w komercyjnym Stat4Seo.
Dodam, że ręczne sprawdzanie odbywało się w przeglądarce Google Chrome w trybie Incognito. Swoją drogą bardzo mnie zaskoczyła niedokładność Stat4Seo. To nie pierwszy raz, gdzie ów skrypt okazuje się gorszy niż darmowe narzędzia, co nie zmienia faktu że posiada więcej funkcji. To nie miejsce na recenzję Stat4Seo, być może będzie okazja ocenić skuteczność narzędzia i opublikować wyniki w przyszłości.
Na koniec przedstawię instrukcję, w jaki sposób zainstalować SERPoscope na lokalnym serwerze WWW.
SERPoscope na localhost – instrukcja
Pobieramy najnowszą wersję XAMPP – xampp-win32-1.8.3-3-VC11-installer.exe i instalujemy.
Tworzymy katalog dla domeny i konfigurujemy vhosta.
Zakładam, że XAMPP został zainstalowany na partycji D:\XAMPP. W katalogu D:\xampp\htdocs tworzymy katalog pod pliki SERPoscope. Ja nazwę go adekwatnie do nazwy domeny, pod którą usługa SERPoscope będzie widniała – czyli serposcope.local.
Aby to wszystko miało sens, katalog trzeba podpiąć pod domenę. W tym celu definiujemy nowego vhosta. Przechodzimy do lokalizacji D:\xampp\apache\conf\extra i otwieramy do edycji plik httpd-vhosts.conf. Zdejmujemy komentarze z przykładowego wpisu i zabieramy się do podpięcia domeny serposcope.local.
Po wyedytowaniu danych zapisujemy plik.
Kolejnym krokiem jest modyfikacja pliku hosts. Przechodzimy do C:\windows\system32\drivers\etc tworzymy kopię zapasową pliku, następnie otwieramy hosts w notatniku i dodajemy linijkę – 127.0.0.1 serposcope.local. Jeśli dostaniesz odmowę dostępu, przekopiuj plik na pulpit, dokonaj modyfikacji, następnie podmień oryginalny plik akceptując komunikat UAC.
Mamy już podpiętą domenę, teraz pora uruchomić XAMPPa i sprawdzić czy wszystko działa jak należy. W lokalizacji D:\xampp uruchamiamy xampp-control.exe i startujemy z usługami Apache oraz MySQL.
W przeglądarce wpisujemy adres serposcope.local, jeśli pojawi się listowanie (Index of) i informacja o Apache jesteśmy w domu. Pozostanie tylko zmodyfikować odrobinę konfigurację serwera i zainstalować skrypt SERPoscope na localhost.
Kopiujemy pliki SERPoscope do katalogu D:\xampp\htdocs\serposcope.local, uruchamiamy przeglądarkę i rozpoczynamy instalację poprzez wpisanie adresu http://serposcope.local/install/
Przed przystąpieniem do kolejnego etapu musimy zmodyfikować konfigurację. Błędy Max execution time i COM extension. W prawym górnym rogu klikamy na phpinfo i odczytujemy informacje zawarte w wierszu Loaded Configuration File (D:\xampp\php\php.ini). Wiemy już gdzie znajduje się nasz plik php.ini, otwieramy go do edycji i szukamy zmiennej max_execution_time i zmieniamy jej wartość z 30 na 0.
Następnie zabieramy się za włączenie modułu COM. W pliku php.ini dopisujemy extension=php_com_dotnet.dll, zapisujemy plik i restartujemy serwer poprzez panel sterowania XAMPP.
Odświeżamy stronę http://serposcope.local/install/ i przechodzimy do kolejnego kroku instalacji.
O czym zapomnieliśmy? Musimy mieć stworzoną bazę SQL pod nasz skrypt. W tym celu posłużę się linią poleceń. Możesz stworzyć nową bazę ręcznie poprzez http://serposcope.local/phpmyadmin.
Uruchamiamy wiersz poleceń w trybie administratora, przechodzimy do katalogu D:\xampp\mysql\bin…
cd /D "D:\xampp\mysql\bin"
Ustawiamy wpierw hasło dla roota…
mysqladmin -u root password mojehaslo
Następnie…
mysql.exe -u root -p
CREATE DATABASE serposcope;
exit
Zostanie utworzona baza o nazwie serposcope, użytkownik root, hasło – mojehaslo.
Przechodzimy do instalacji i w kroku drugim podajemy dane dostępowe do serwera bazodanowego, po czym klikamy Next.
Dalej postępujemy zgodnie z zaleceniami kreatora, na dwóch kolejnych etapach klikamy Next i po sekundzie mamy zainstalowany skrypt na localhost, do którego dostęp uzyskać możemy z poziomu domeny serposcope.local.
W ten o to sposób w kilkanaście minut możemy postawić w pełni sprawny system monitorowania, który można odpalać nie tylko na żądanie, ale również podczas każdego uruchomienia komputera, dodając odpowiedni skrypt BAT uruchamiający CRONa. Oczywiście z tego typu skryptów największy pożytek, gdy zainstalujemy wszystko na realnym serwerze, aczkolwiek metoda z localhostem sprawdza się całkiem dobrze, o ile każdego dnia odpalamy komputer z uruchomionym XAMPPem. Niektórzy ludzie sprawdzają pozycje domen sporadycznie co 5-7 dni, zatem to rozwiązanie dla nich może być idealne.
Jak automatycznie uruchomić XAMPPa i sprawdzanie pozycji pod Windows? Wystarczy skorzystać z Harmonogramu zadań, uruchomić skrypty apache_start.bat oraz mysql_start.bat i wywołać wykonanie zadania spod CMD (skrypt BAT z poleceniem: explorer http://serposcope.local/cron.php). Można również zainstalować apache i mysql jako usługi systemowe (poprzez xampp-control.exe – tryb administratora), wtedy wywołanie ich przy starcie systemu Windows nie stanowi żadnego problemu. Sposobów jest wiele, pozostawiam to Wam do testów. UWAGA! Autouruchamianie serwera wraz ze startem Windows powoduje czasem spore opóźnienia w załadowaniu systemu, dlatego osoby sporadycznie sprawdzające pozycje niech lepiej ręcznie uruchamiają serwer i zadania, tym bardziej, że to ledwie niecała minuta roboty.
Jeśli spodobał Ci się ten artykuł udostępnij go w mediach społecznościowych 🙂
zapowiada sie swietnie 🙂
mam tylko problem na localhoscie xampp wysypuje sie przy sprawdzaniu zaraz na poczatku z katalogiem temp:
C:\DOCUME~1\michal\USTAWI~1\Temp/serposcope_cache/,C:\DOCUME~1\michal\USTAWI~1\Temp/serposcope_cache/) … function.opendir
Bez dostępu do cache skrypt też sprawdzi. Jak odświeżyłeś stronę z logiem to nie było informacji o wykonaniu zapytania do Google? W php.ini możesz odkomentować open basedir i dodać konkretną ścieżkę do katalogu do wykluczenia.
Niezła zabawka. Bardzo dobrze wszystko wytłumaczone. Duży plus 🙂
Z nieba mi spadłeś z tym wpisem, jutro chciałem kupować skrypt do sprawdzania pozycji, a tu taka niespodzianka 🙂
Z tych serwerowych darmowych masz jeszcze:
SeoPanel – https://techformator.pl/konfiguracja-seo-panel-sprawdzanie-pozycji-w-google-pl/
SEO Rank Reporter – https://techformator.pl/monitorowanie-pozycji-w-wordpress-seo-rank-reporter/
Tak różowo z tym cronem nie będzie. Na współdzielonym przy średnio 60-90sec czasu wykonania skryptu, nawet przy użyciu kilkunastu proxy sprawdzanie się wyłoży. Albo z powodu przekroczenia czasu, albo tymczasowego szlabanu od googla.
Chyba że w tym sofcie jest inaczej ? Np. skrypt odpalany co godzinę, sprawdza jedną frazę i w zadanym przedziale (np. 48h) pomija ją.
Dlatego autor wymaga ustawienia zmiennej max_execution_time w php.ini na 0. W przypadku bana w Google skrypt pomija wpierw zbanowane proxy, następnie zadanie i przechodzi do kolejnego. Jest jeszcze rozwiązywanie captcha ale tego akurat nie sprawdzałem.
Jaki hosting polecacie pod ten skrypt?
Każdy gdzie można zmodyfikować php.ini i usunąć limit czasu wykonywania skryptów.
Na Unixstorm nie pozwalają na zmianę także ten hosting odpada.
Ps. Linki do pytania z szeptanki, które pojawią się w komentarzach będą usuwane.
Świetny poradnik! Przyda się do monitorowania pozycji SEO na mojej fotograficznej stronie.
Dzięki!
Niezła aplikacja. Szkoda tylko, że nie ma okna/strony logowania 🙂 W przypadku podpięcia jej na subdomenie/katalogu będzie problem z ukryciem się przed ewentualnymi podglądaczami. No ale, zawsze to „za free” 🙂 pozdrawiam
W sieci znajdziesz gotowe rozwiązania, które wystarczy podłączyć do skryptu i masz system logowania.
Dla osób nie znających się na programowaniu pozostaje system logowania bazujący na .htaccess i .htpasswd, który także spełni swoje zadanie.
Oczywiście przydałby się system z możliwością definiowania wielu użytkowników i poziomów dostępu, może w kolejnych wersjach autor takie rozwiązanie wdroży. Sam skrypt do monitorowania pozycji wygląda perspektywicznie.
Zainstalowałem Vertrigo zamiast Xamp ale coś skrypt nie hula. Wie ktoś jak uruchomić to na serwerze VertrigoServ?
Nie wiem po co się tak męczyć ja monitoruję za pomocą {szeptanka}. Nie dość że jest łatwa w obsłudze to wygląda profesjonalnie i daje rzetelne wyniki.
Jeszcze raz będę widział reklamę z szeptanki to zbanuję na amen. To już nie pierwszy raz, kiedy wciskacie tę tandetę.
Proszę mi tego dziadostwa więcej nie reklamować.
Na blogu rekomenduję solidne systemy monitorowania, płatne bezpłatne nie ma to znaczenia, tandety nie reklamuję i proszę mi nie zaśmiecać komentarzy takimi spamami.
Używałem seopanel sprawdze co potrafi twój skrypt wygląda ciekawie.
@Paweł, SERPoscope to nie jest mój skrypt, nawet nie myślałem by coś takiego stworzyć, zwyczajnie jest za duża konkurencja na rynku by takie coś tworzyć i udostępniać, nawet odpłatnie, nie ma sensu, lepiej stworzyć coś czego jeszcze nie ma na rynku 😉
Coś mi nie do końca bangla :/
2 errory:
1) Zainstalowałem Xamppa. Niestety tylko z localhost otwiera mi się strona.
2) Działa, ale tylko około 30 minut :/ Pomimo ostrzeżenie na głównej stronie serposcope, że: „Warning: cron is still running (PID: 4028 started: 2015-09-18 21:50:38)” i po odświeżaniu logów (logs.php?id=last) klawiszem F5 nic się nie dopisuje :/ Tak, jakby się zawiesił. Jedynie mogę zatrzymać Crona przyciskiem STOP znajdujący się na głównej stronie. Oczywiście, zmieniłem max_execution_time na cyfrę 0. Dodatkowo zmieniłem „session.gc_maxlifetime=1440” na „session.gc_maxlifetime=1440” ale to nie wydłużyło pracy programu o kolejne 30 minut :/ Wyczytałem na forum projektu: http://forum.serphacker.com/viewtopic.php?id=6 że to może być problem bazy danych. Coś się do niej zapisuje(?) ale nie potrafię namierzyć, co?
Szkoda, zapowiadało się fajne narzędzie, a tak jest ćwierć fajnie. Tworzę nowe grupy po maksymalnie osiem fraz i puszczam sobie co pół godziny 😉
Dzięki za artykuł + tutorial.
Miałem napisać: na „session.gc_maxlifetime=2880” ale pewnie się domyśliliście 😉
XAMPP na Windows 7 nie miał problemów z obsługą tego skryptu.
U mnie problem jest.
Przeważnie korzystałem z hostingów. Niestety, ale w tym wypadku nie mogłem uruchomić tego skryptu na wykupionym przeze mnie hosting w netmarku ponieważ nie można zmieniać max_execution_time. Support też nie pozwala. Zresztą, nie dziwię się, dlaczego.
No nic, spróbuję na drugim kompie.
Zawsze można na VPSie zainstalować i odpalić. Tylko dostawcy darmowych VPS-ów mocno ograniczają uruchamianie skryptów SEO więc to raczej rozwiązanie na bardzo krótką metę – tylko do testów online.
VPS to nie rozwiązanie. Lepiej mieć w domu, na drzewie (czytaj w chmurce).
Testuję na wampserver. Niestety, tu też nie jest pięknie:
„mysql_connect(): The mysql extension is deprecated and will be removed in the future”
Grzebię w plikach i podmieniam mysql_connect() na mysqli_connect().
Wyłączenie opcji, jak radzi serphacker, tu: http://forum.serphacker.com/viewtopic.php?id=13 nie rozwiązuje problemu. Nie da się dodać grupy :/
Autora trochę pomęcz ale wątpię by zupdejtował skrypt chyba żeby byłby wtedy odpłatny to prędzej. Wiele darmowych skryptów SEO tak kończy.
cześć, zainstalowałem serposcope 2.7.1. Gdy dodałem 5 fraz to działało. Gdy liczbę fraz zwiększyłem do 125 to za każdym razem przy check ranks pojawia się błąd.
Captchas 26
Errors 125
Status DONE_WITH_ERROR
Czy jest jakaś ograniczona liczba fraz czy przyczyna może być inna?
@Konrad, najprawdopodobniej problem dotyczy proxy, zostały zbanowane i stąd problemy w sprawdzaniu. Niestety serposcope nie ma wsparcia dla feedów z proxy (w rotacji), dzięki czemu sprawdzanie byłoby znacznie przyjemniejsze. Oczywiście zawsze można dodać do aplikacji prywatne proxy, które będą miały wyższą wydajność, publiczne niestety słabo się sprawdzają.
SERPscope na komputerze. Zainstalowane, jednak nie do końca działa. Sprawdza pozycje po kliknięciu słowa kluczowego (pokazuje top 100 w SERP-ach). Ale nie pokazuje pozycji w głównym widoku.
Ktoś się spotkał z podobnym problemem?
@Damian, kiedy korzystałem z Serposcope niestety z taką sytuacją się nie spotkałem.