Automatyczne-dodawanie-wielu-adresów-URL-do-Google-Search-Console-900x506

Automatyczne dodawanie wielu adresów URL do GSC

Zarówno podczas tworzenia nowej witryny oraz w trakcie jej rozbudowy zależy nam, aby zmiany zostały jak najszybciej zauważone przez roboty wyszukiwarek. Na rynku Polskim chodzi przede wszystkim o wyszukiwarkę Google. Oczywiście na samym początku warto przygotować plik sitemap.xml, który będzie zawierał wszystkie istotne podstrony w naszym serwisie i należy zgłosić go do Google Search Console. Nie zawsze jednak nasze nowe podstrony są szybko indeksowane. Częstą praktyką jest korzystanie z różnych zewnętrznych indekserów linków, które nie zawsze cechują się wysoką skutecznością. Jest jeszcze kilka różnych metod, które działają lepiej lub gorzej, są płatne lub darmowe. W tym artykule skupimy się na najbardziej skutecznym rozwiązaniu i całkowicie bezpłatnym.

Google Search Console – ręczne zgłaszanie linków?

Jednym z najskuteczniejszych rozwiązań mających na celu indeksacje linków z naszej witryny jest zgłoszenie ich przez narzędzie Google Search Console.

Jeszcze w 2018 roku mogliśmy korzystać z publicznego przesyłania adresów URL do indeksu (Submit URL), który został wycofany przez Google. Można było także zauważyć spadek skuteczności tej metody w perspektywie czasu.

Wracając natomiast do obecnej formy zgłaszania własnych adresów URL – jest to rozwiązanie skuteczne, ale bardzo niewygodne w przypadku, gdy chcemy zgłosić kilkadziesiąt lub kilkaset linków dziennie. Pierwszym problemem jest czas w którym musimy wkleić link, poczekać na przetworzenie treści przez Google, a następnie zaakceptować zgłoszenie. Przy większej ilości linków zaczyna pojawiać się Captcha, której rozwiązanie trwa czasami dłuższą chwilę.

 

Automatyczne zgłaszanie linków

 

Jeżeli chcemy zaoszczędzić czas, warto sprawdzić rozwiązanie, które oferuje nam Google. Wymaga to chwili konfiguracji, natomiast pozwoli nam robić to w pełni automatycznie w przyszłości. Rozwiązanie to Google Indexing API. Pewnie zastanawiacie się co na to Google?

Źródło: https://developers.google.com/search/apis/indexing-api/v3/quickstart

Myślę, że powyższy akapit rozwiewa większość wątpliwości i wyjaśnia różnicę w indeksacji pomiędzy mapą witryny, a interfejsem Indexing API.

Mając już potwierdzoną słuszność tego rozwiązania, zaczynamy konfigurację.

 

Konfiguracja Google Indexing API – Google Cloud Platform

 

Rozpoczynamy od stworzenia konta w Google Cloud Platform ( https://console.cloud.google.com/home/dashboard). Następnie wybieramy z bocznego menu „Strona główna” i klikamy w łącze „Utwórz”:

 

 

Po otwarciu nowego formularza, uzupełniamy pole „Nazwę projektu” i klikamy Utwórz. Warto zwrócić uwagę na nadany identyfikator projektu, z którego będziemy w przyszłości korzystać.

 

 

Po utworzeniu przechodzimy ponownie do menu i wybieramy Administracja > Konta Usługi

 

 

Wybieramy opcję UTWÓRZ KONTO USŁUGI

 

 

Wypełniamy pole Nazwa konta usługi i automatycznie uzupełni się kolejne pole. Następnie klikamy przycisk Utwórz.

 

 

Punkt drugi możemy pominąć i przechodzimy do punktu trzeciego wybierając przycisk UTWÓRZ KLUCZ. Wysunie nam się nowe okno w którym wybieramy domyślną opcję typu klucza JSON i wybieramy przycisk UTWÓRZ:

 

 

Po poprawnej operacji powinniśmy otrzymać następujący komunikat:

 

 

Dodatkowo na nasz komputer pobierze się automatycznie plik JSON, który stanowi klucz prywatny. Należy go przechowywać w bezpiecznym miejscu.

Po zamknięciu powyższego okna, klikamy przycisk GOTOWE. Teraz w zakładce Konta usługi mamy stworzony nasz klucz:

 

Google Cloud Platform – uruchomienie API

 

Aby uruchomić dostęp do API, przechodzimy na stronę https://console.developers.google.com/apis/library/indexing.googleapis.com i klikamy przycisk WŁĄCZ

 

Konfiguracja Google Indexing API – Google Search Console

 

Przechodzimy do naszego panelu Google Search Console w którym mamy zweryfikowaną domenę. Z menu bocznego wybieramy opcję Ustawienia > Użytkownicy i uprawnienia:

 

 

Następnie wybieramy opcję DODAJ UŻYTKOWNIKA.

Otrzymamy nowe okno modalne w którym musimy wpisać adres e-mail wygenerowany przez Google Cloud. Dostępny jest w zakładce Konta usługi, o którym pisałem wcześniej.

Wzór adresu e-mail: my-service-account@project-name.google.com.iam.gserviceaccount.com

 

 

Po wybraniu opcji DODAJ, wpisany adres e-mail znajdzie się na liście Użytkowników w Google Search Console.

Jeżeli chcemy zgłaszać linki dla więcej niż jednego serwisu, musimy powtórzyć operację nadania dostępów w Google Search Console.

UWAGA!

Warto dodać również dostępy do maila z Google Cloud Platform w dawnym GSC ( https://www.google.com/webmasters/verification/home). Często zdarza się, że podczas uruchamianie skryptu wyskakuje błąd autoryzacji, jeżeli dostępy nadaliśmy tylko poprzez nowe GSC.

 

Tworzenie skryptu

 

Jesteśmy już coraz bliżej końca. W ostatnim etapie konieczne będzie stworzenie programu, który będzie zgłaszał nam listę stron do wyszukiwarki Google. Uruchamiamy dowolny edytor kodu, może to być Visual Studio Code, Atom, Brackets.

1. Tworzymy folder w którym będą znajdowały się wymagane zasoby. Ja nazwę go GSC-API.
2. W tym folderze tworzymy następujące pliki:

lista_stron.txt (zwykły plik tekstowy – pusty)
gscAPI.py (plik w którym będzie znajdował się kod źródłowy)

3. Do folderu GSC-API kopiujemy plik (klucz prywatny), który pobrał nam się przy tworzeniu unikalnego klucza w Google Cloud Platform. Zmieniamy jego nazwę na service_account_file.json
4. Nasza struktura plików powinna wyglądać w następujący sposób:

5. Otwieramy plik lista_stron.txt i wklejamy linki, które chcemy żeby zostały zauważone i zaindeksowane / przeindeksowane po czym zapisujemy zmiany.

 

6. Teraz najważniejsze, czyli umieszczenie kodu źródłowego w pliku gscAPI.py

[php] from oauth2client.service_account import ServiceAccountCredentials
import httplib2
import googleapiclient
import time
global urls
with open("lista_stron.txt") as f:
urls = f.readlines()
pass
i = 0
urls = ([s.strip(‘\n’) for s in urls])

for urlindexing in urls:

SCOPES = ["https://www.googleapis.com/auth/indexing"] ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

# service_account_file.json is the private key that you created for your service account.
JSON_KEY_FILE = "service_account_file.json"

credentials = ServiceAccountCredentials.from_json_keyfile_name(
JSON_KEY_FILE, scopes=SCOPES)

http = credentials.authorize(httplib2.Http())

content = "{{\"url\": \"{0}\",\"type\": \"URL_UPDATED\"}}".format(urlindexing)
response, content = http.request(ENDPOINT, method="POST", body=content)

print(response)
print(content)
[/php]

Do uruchomienia powyższego kodu będzie potrzebny Python (https://www.python.org/downloads/) oraz instalacja kilku bibliotek. Wymagania oraz proces ich instalacji znajdziemy na stronie https://github.com/googleapis/google-api-python-client.

W kodzie źródłowym zawarta jest pętla, która pozwoli zgłosić wszystkie linki jakie umieścimy w pliku lista_stron.txt. Dodatkowo w celu potwierdzenia zgłoszenia do GSC, wykorzystamy metodę print (response oraz content), która wyświetli nam status odpowiedzi.

7. Uruchamiamy skrypt wpisując w terminal: python gscAPI.py

Jeżeli wszystko poszło pomyślnie to otrzymamy kod odpowiedzi 200 i datę zgłoszenia danego adresu URL:

 

Ile linków dziennie możemy zgłosić za pomocą API?

Domyślnie ustawionym limitem jest 200 adresów URL w ciągu 24 godzin. Natomiast możemy przejść na stronę https://console.developers.google.com/apis/library/indexing.googleapis.com, wybieramy zakładkę LIMITY i klikamy w sekcji Publish requests na symbol ołówka.

 

 

Uruchomi nam się dodatkowe okno modalne, w którym klikamy w hiperłącze „podnieś limit”, po czym uzupełniamy formularz i go akceptujemy.

 

 

Gotowe! Właśnie stworzyliśmy skrypt, który pozwoli nam regularnie zgłaszać nowe lub zmienione podstrony/adresy w GSC.

Python SEO

PYTHON W ŚRODOWISKU SEO cz.II

Tak jak obiecałem w pierwszej części wpisu o wykorzystaniu Pythona w środowisku SEO, kontynuujemy serie, rozbudowując nasz skrypt o kolejne funkcjonalności. Seria skierowana jest dla osób, które nigdy wcześniej nie miały do czynienia z programowaniem. Dla osób które próbowały już swoich sił, zapraszam na przyszłe artykuły związane z zawansowanym wykorzystywaniem Pythona. Jeżeli nie widziałeś pierwszej części zapraszam Ciebie pod adres: https://wolfbrothers.net/python-w-srodowisku-seo/. Nie przedłużając wstępu – zaczynamy!

User-agent

Przypomnijmy sobie kod naszego skryptu:

Co w przypadku gdy zmienimy adres URL, na domenę która posiada zabezpieczenie przed botami? W tym celu zmieniamy domenę na np. https://wolfbrothers.net oraz drukujemy zmienną „r” pod którą kryje się nasze połączenie z wybraną domeną.

Po uruchomieniu skryptu otrzymujemy wydruk zmiennej „r”, w której znajduje się informacja o kodzie odpowiedzi 403 (Response [403]). Oznacza to nic innego, jak to że serwer poprawnie zinterpretował nasze zapytanie, natomiast konfiguracja zabroniła dostępu do zasobów ze względów bezpieczeństwa.

W jaki sposób możemy zmienić swoją tożsamość? Rozwiązaniem będzie User-agent, ale co to właściwie jest?

User-Agent to nic innego jak ciąg znaków, który przeglądarka lub aplikacja wysyła do każdej odwiedzonej przez nas strony internetowej przekazując naszą „tożsamość”. Typowy ciąg user-agent zawiera: rodzaj oraz wersję przeglądarki, system operacyjny, dostawcę oprogramowania. Serwery wykorzystują te dane do oceny możliwości komputera, optymalizacji wydajności strony i jej wyświetlania.

W zaimportowanej przez nas wcześniej bibliotece request mamy możliwość ustawienia własnego user-agenta.

Najpierw tworzymy zmienną „headers” do której dopisujemy wybrany przez nas User-Agent. Jak można zauważyć będziemy „podszywać” się pod użytkownika Maca z systemem operacyjnym Mac OS X oraz wykorzystującego przeglądarkę Chrome w wersji 39.0.2171.95. Dodatkowo będziemy korzystać z silnika przeglądarki internetowej (layout engine): AppleWebKit 537.36.

Silnik przeglądarki to oprogramowanie, które przetwarza nam pliki z których strona się składa(HTML,CSS, grafiki), a następnie renderuje nam ich rezultat

Ciekawym programem, który rozszyfrowywuje nam ciąg znaków User-Agenta, jest strona:

http://www.browser-info.net/useragent .

W polu User-Agent wkleiłem następujący ciąg znaków i wybrałem przycisk Analyze:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36

Po chwili możemy zobaczyć dokładne szczegóły naszego User-Agent, podzielonego na dane kategorie: Browser, OS, Platform, Layout Engine. W Internecie dostępnych jest bardzo dużo konfiguracji, które możemy wybrać i z nich korzystać.

Wracając do naszego kodu, dodaliśmy argument headers=headers w naszej zmiennej „r”.

Oznacza to że metoda request, przyjmuje argument w którym może przekazać User-Agent do odwiedzanej przez nas strony internetowej. Aby go przekazać musimy przypisać do stałej wartości headers (zaznaczona na niebiesko), że nasza nowa „tożsamość” znajduje się w zmiennej headers (zaznaczona na biało). Dla ułatwienia możemy zmienić nazwę zmiennej na np. „tozsamosc”.

Przetestujmy teraz czy nasz kod działa i pobiera meta title oraz meta description.

Otrzymaliśmy meta tagi oraz informację, że kod odpowiedzi wynosi 200.

Zapisywanie danych

Jeżeli nasz skrypt potrafi połączyć się z wybraną przez nas stroną internetową oraz pobrać podstawowe informację jak meta title oraz meta description, warto skupić się na ich zapisywaniu. Mamy kilka możliwości zapisu informacji. Najprostszym i najszybszym będzie zapisywanie do pliku txt, kolejną opcją jest zapis do arkuszów: .xlsx oraz .csv oraz zapis do bazy danych. Nie są to oczywiście wszystkie możliwości zapisów danych. Najwygodniejszym sposobem zapisu, dzięki któremu będziemy mogli analizować nasze dane i je rozbudowywać będzie zapis do formatu .xlsx (znanego z arkusza kalkulacyjnego Microsoft Excel).

Pomocna będzie tutaj biblioteka openpyxl, która pozwoli na zapisywanie informacji do arkusza kalkulacyjnego. Dodajmy kilka nowych linijek kodu, które obsłużą zapisywanie danych.

  • from openpyxl import load_workbook

Z biblioteki openpyxl importujemy moduł load_workbook, który odpowiada za zarządzanie arkuszem kalkulacyjnym. Jeżeli nie mamy zainstalowanej tej biblioteki, w terminalu wprowadzamy następujący ciąg znaków: pip install openpyxl

Dodatkowo importujemy bibliotekę datetime, która będzie zapisywała nam datę sprawdzenia meta title oraz meta description.

  • now = datetime.datetime.now().strftime(“%d-%m-%Y”)

Tworzymy nową zmienną o nazwie „now”, do której będziemy zapisywać obecną datę. Musimy określić także format daty – wybierzemy standardowy obowiązujący w Polsce „dzień-miesiąc-rok”. W kodzie musimy zapisać to w następujący sposób: .strftime(“%d-%m-%Y”).

  • wb = load_workbook(‘dane.xlsx’)

Pierwszym krokiem zanim program załaduje nasz arkusz kalkulacyjny, będzie stworzenie w folderze pliku dane.xlsx. Powyższe polecenie przypisuje nam do zmiennej „wb”, załadowanie pliku o nazwie dane.xlsx, abyśmy mogli wykonywać na nim operacje.

  • sheet = wb[‘Arkusz1’]

Po załadowaniu całego pliku, musimy zdefiniować z którego arkusza będziemy korzystać. Podczas tworzenia nowego pliku w programie excel, mamy domyślnie kilka arkuszy:

Do zminnej “sheet” dopisaliśmy informację, aby skrypt wpisywał lub pobierał dane z arkusza o nazwie „Arkusz1”. Dla swoich potrzeb możemy dowolnie modyfikować zmienne i nazwy.

  • row_counter = sheet.max_row +1

Kolejnym problemem z którym musimy się zmierzyć jest to, aby skrypt po każdym uruchomieniu zapisywał wynik w nowej linii, a nie nadpisywał pierwszej. Skorzystamy tutaj z właściwości biblioteki, która umożliwia policzenie wszystkich wierszy (.max_row).

Tworzymy nową zmienną o nazwie row_counter i przypisujemy do niej właściwość max_row, którą ma wykorzystać na obiekcie sheet, czyli tym w którym zdefiniowaliśmy „Arkusz1”. Inkrementujemy także otrzymaną wartość, dopisując +1, zapewni nam to że program zbada ile wierszy w arkuszu jest zajętych i doda kolejny wiersz w którym będziemy wpisywać nowe dane.

 

  • sheet[“A”+str(row_counter)] = now

Przedostatnim już etapem będzie zapis danych do wybranej kolumny  i wiersza. Wykorzystujemy nasz „Arkusz1” który kryje się pod zmienną „sheet”, następnie wybieramy kolumnę „A”, w której umieścimy datę oraz określamy żeby wpisywał wartość w nowym wierszu. Na samym końcu mamy przypisanie do wybranego przez nas wiersza, zmiennej „now”, w której znajduje się obecna data.

  • save(‘dane.xlsx’)

Ostatnim etapem jest zapis naszego arkusza kalkulacyjnego, bez tego wprowadzone zmiany nie zostaną zachowane.

 

Aby przetestować nasz skrypt, uruchomimy go kilkukrotnie i zobaczymy rezultat:

Tak jak spodziewaliśmy się w kolumnie „A”, skrypt dopisał nam obecną datę w kilku wierszach odpowiadających ilości jego uruchomienia. Usuniemy teraz otrzymane daty i dopiszemy linijki kodu odpowiadające za zapis Meta title oraz Meta description.

Do kolumny „B” dopisujemy meta title, natomiast do kolumny „C” dopisujemy meta description.

Zapis pliku przenosimy na sam koniec skryptu i uruchamiamy. Poniżej efekt naszej pracy:

Cały kod skryptu dostępny pod adresem: https://paste.ofcode.org/r9B6vJ3etneSq9sgdTzt5y

W trzeciej części skonfigurujemy harmonogram zadań, aby skrypt uruchamiał się każdego dnia o wybranej przez nas porze oraz zbudujemy mechanizm, który porównuje nowe meta dane i wysyła nam informację, jeżeli coś się zmieniło.

[kkstarratings]

Python w środowisku SEO

Jednym z bardzo czasochłonnych wyzwań wśród specjalistów, jest ciągłe nadzorowanie stron klientów lub własnych. Niejednokrotnie zdarza się, że na stronie zostaną dokonane zmiany, kluczowe w kontekście SEO oraz niestety nie zostaniemy o nich poinformowani na czas. Pierwszym sygnałem informujących nas, że coś zostało zmienione, mogą być zarówno spadki, jak i wzrosty w widoczności. Warto zaznaczyć, że ręczne weryfikowanie zmian na stronie lub chociażby codzienne crawle serwisu zajmą nam ogromną ilość czasu, który moglibyśmy poświęcić na bardziej rozwojowe działania.

Na szczęście mamy wiele możliwości automatyzacji naszej pracy, chociażby wykorzystując bardzo popularny soft, jakim jest Zennoposter, o którym niejednokrotnie pisałem. Najtańszy pakiet licencyjny można nabyć już za 87$, natomiast jeśli chcemy faktycznie wykorzystać jego możliwości, musimy liczyć się z kwotami rzędu 200-400 USD, co przy dożywotniej licencji i kosztach programowania nie jest dużym wydatkiem.

Automatyzacja „za darmo”

Co w przypadku gdy nie chcemy wydawać wyżej wspomnianej sumy, a mamy chęci, aby samemu coś stworzyć i zdobyć nowe kompetencje?

Idealnym rozwiązaniem, a właściwie językiem programowania będzie bardzo popularny w ostatnich latach – Python (język wysokiego poziomu) z rozbudowaną gamą bibliotek. Jeśli nigdy nie programowałeś/aś nie przejmuj się. Już po krótkim zapoznaniu się z tym językiem, będziesz mógł/mogła stworzyć swój pierwszy, a co najważniejsze przydatny i darmowy program (nie licząc wysiłku i czasu włożonego w jego stworzenie).

Założenia aplikacji

Celem aplikacji jest codzienne uruchamianie wybranej przez nas strony internetowej i pobieranie z niej znaczników meta title oraz meta description, a następnie informowanie nas w przypadku, gdy znaczniki meta będą inne niż w poprzednim dniu. Nasz program będziemy mogli rozbudować do funkcjonalności pomagających pobierać setki podstron z wybranych witryn ze szczegółowymi informacjami o meta danych, nagłówkach, hreflangach, canonicalach i informowaniu nas o zmianie jakiegokolwiek elementu. Brzmi ciekawie – zaczynajmy!

Instalacja Pythona w wersji 3.7.2

Kluczowym elementem, aby nasz kod był interpretowalny przez komputer, będzie instalacja Pythona w wersji 3.7.2 w zależności od posiadanego systemu operacyjnego. W moim przypadku będzie to kopia dla wersji Windowsa. Możemy pobrać ją pod poniższym linkiem:

https://www.python.org/downloads/

Instalacja Pythona

Nie będę przedstawiał samego procesu instalacji, ponieważ jest niezwykle prosty, a szczegółowe informacje oraz nagrania możemy znaleźć w serwisie Youtube.

Edytor kodu

Aby wygodnie tworzyło nam się kod naszej aplikacji, konieczne będzie zainstalowanie edytora  kodu. Jest to temat rzeka, niemniej jednak z darmowych polecam Sublime Text 3, Atom lub Visual Studio Code (z którego obecnie korzystam).

Linki do pobrania:

https://www.sublimetext.com/3

https://atom.io/

https://code.visualstudio.com/

Zaczynamy

Zaczynamy od stworzenia nowego pliku z rozszerzeniem Pythona (.py). Wybieramy z menu File > New File lub klikamy CTR+N.

Następnie zapisujemy plik i wybieramy mu nazwę roboczą.

Kolejnym krokiem będzie, aby nasz skrypt uruchomił wybraną przez nas stronę, z której chcemy pobierać znacznik meta title oraz description. W ramach artykułu  będziemy pobierać dane ze strony: https://wolfbrothers.net/.

Zacznijmy od zdefiniowania zmiennej, czyli potocznie mówiąc pojemnika na dane, z którego skrypt będzie pobierał informację. Naszą zmienną nazwiemy „url” i przypiszemy do zmiennej adres url wybranej przez nas strony internetowej.

zmienna python

Znak „=” powoduje to, że do zmiennej przypisujemy daną wartość, w tym przypadku będzie to zmienna tekstowa (String), zawierająca adres URL. W celu sprawdzenia czy faktycznie pod tą zmienna, spotkamy przypisaną wartość, możemy skorzystać z wydrukowania wartości w konsoli / terminalu za pomocą linijki print(nazwa_zmiennej) > print(url). Wystarczy teraz w terminalu wpisać python skaner.py, aby uruchomić nasz skrypt.

terminal python

Jak można zauważyć pod zmienną kryje się przypisana przez nas wartość.

Teraz potrzebujemy mechanizmu, który pobiera cały kod wybranej przez nas strony, abyśmy mogli następnie wyciągnąć meta title oraz meta description. Wykorzystamy w tym wypadku dwie biblioteki requests oraz bs4, które mają na celu pobranie kodu strony i wyciągnięciu dla nas istotnych informacji. Aby zainstalować powyższe biblioteki na naszym komputerze, w terminalu wpisujemy następująco:

pip install requests      

Klikamy klawisz Enter i czekamy, aż się zainstaluje, a następnie:

pip install bs4

Poniżej dodałem kilka  linijek kodu, które zaraz postaram się objaśnić.

kod python

Pierwsze dwie to importy zainstalowanych przed chwilą bibliotek, tak abyśmy mogli z nich korzystać w obecnym projekcie. Następnie mamy zdefiniowaną zmienną „url”, pod którą kryje się przypisany adres url strony.

Kolejno musimy połączyć się z wybranym adresem internetowym. Definiujemy zmienną np. „r” od słowa request i przypisujemy metodę requests.get(url). Jest to gotowe zapytanie, które znajdziemy w dokumentacji. Następnie po stworzeniu połączenia, potrzebujemy pobrać kod źródłowy strony. Pomocna będzie tutaj biblioteka BeautifulSoup (bs4).

Tworzymy nową zmienną np. „html”, w której będziemy trzymać cały kod źródłowy strony. Następnie definiujemy metodę, aby pobrała nam całą zawartość.

bs4.BeautifulSoup(r.text,’lxml’)

Jeśli zastanawiasz się, czym jest argument ‘lxml’, to nic innego jak rodzaj parsera, który pobiera nam kod źródłowy. Beautifulsoup oferuje cztery różne parsery, każdy ma swoje zalety oraz wady, co ukazuje poniższa tabela. W obecnej chwili nie musisz się tym przejmować.

lxml

Pozostała ostatnia linijka kodu:

print(html.title.text)

Jak już wiesz, komenda print służy do wyświetlania zawartości danej zmiennej w terminalu. Jednak zastanówmy się, co właściwie jest w środku:

html.title.text

html – to nasza zmienna, w której mamy cały kod źródłowy pobranej strony

Tworząc konstrukcję html.title, wskazujemy bibliotece, że z całego kodu strony potrzebujemy pobrać znacznik title. Spróbujmy więc wywołać samo print(html.title)

Rezultat:

rezultat

Otrzymaliśmy wprawdzie tag title, ale w formie HTML’a. Aby uzyskać wewnętrzną treść, wystarczy dopisać html.title.text

Wywołajmy teraz cały obecny kod:

pełny kod python

W jaki sposób pobrać meta description:

Aby pobrać ten tag, musimy wykorzystać trochę inne właściwości biblioteki. W tym celu wprowadźmy następujące dwie linijki kodu:

pobieranie tagu python

meta_description = html.find(‘meta’, attrs={‘name’: ‘description’})

meta_description – jest to dowolna zmienna, w której będziemy trzymać okrojony kod źródłowy strony

html.find – sugeruje że będziemy szukać danych elementów w zmiennej html, gdzie posiadamy cały kod źródłowy strony.

html.find(‘meta’, attrs={‘name’: ‘description’}) – nastepnie podajemy pierwszy argument, czyli szukamy znacznika „meta”, który ma nazwę description.

Jak można zauważyć mamy trochę inną formę printu:

print(meta_description[‘content’])

Jeśli wywołamy samą zmienną tj. meta_description otrzymamy treść w formie HTML’a, jeśli natomiast chcemy wykorzystać tylko zawartość tagu, konieczne będzie dopisanie [‘content’]. W przypadku meta title było łatwiej, ponieważ wystarczyło podać .text.

Podsumowanie

W tym artykule udało nam się zainstalować edytor kodu, interpreter Pythona oraz stworzyć podwaliny programu, który będzie automatyzował naszą pracę. Aby nie tworzyć artykułu tasiemca, w kolejnych częściach zgłębimy wiedze jeszcze bardziej, powiemy sobie jak uniknąć sytuacji, gdy dana strona blokuje dostęp naszego skryptu. Zaczniemy pracę nad zapisywaniem danych do pliku txt lub excela i informowaniu o zmianach w meta danych. Mam nadzieję, że chociaż trochę zaciekawiłem cię tematyką programowania, która w najbliższych latach jeszcze bardziej będzie się rozwijała. Co więcej, okazuje się niezwykle pomocna w codziennych czynnościach specjalistów.

[kkstarratings]

Scrapebox

Scrapebox – sprawdzanie indeksacji linków w wyszukiwarce

Tak jak obiecałem w poprzednim artykule na temat Scrapebox’a, dziś dalszy ciąg zmagań z tym programem. Pamiętajcie, że przed rozpoczęciem działań przedstawionych w tym poradniku, zaleca się wprowadzenie proxy do programu, tak jak robiliśmy to w poprzednim artykule: Scrapebox – narzędzie które zrewolucjonizowało procesy seo

Sprawdzanie czy adresy URL są zaindeksowane

Podczas rozbudowy naszego serwisu warto sprawdzać czy nasze podstrony są indeksowane przez wyszukiwarkę, w innym wypadku nie osiągniemy korzyści z dodatkowych podstron. Nie inaczej jest w przypadku link buildingu, gdy już znajdziemy odpowiednie miejsca, w których możemy umieścić link do naszej strony internetowej brak jego indeksacji nie przeniesie nam „mocy” na naszą witrynę. Jedynie zmarnujemy czas na pozyskiwanie linków z nietrafionych miejsc.

Sprawdzanie czy dany link jest zaindeksowany możemy zweryfikować wpisując go ręcznie do wyszukiwarki – jednak ta operacja, gdy mamy kilkadziesiąt lub kilkaset linków jest nader czasochłonna.

indeksacja wolfbrothers

Jak możemy zauważyć, po wyszukiwaniu naszego adresu URL, pojawiło się odwołanie do strony wolfbrothers.net. Oznacza to że nasz link jest zaindeksowany i uznawany przez Google.

Sprawdźmy teraz większą ilość linków za pomocą narzędzia Scrapebox.

scrapebox

Kopiujemy listę adresów URL, które chcemy sprawdzić. Klikamy prawym przyciskiem myszy w oknie Url’s Harvested i wybieramy pierwszą opcję.

harvestowanie url

Następnym krokiem będzie wybranie zakładki „Check Indexed” po prawej stronie.

indeksacja scrapebox

Do wyboru mamy trzy opcje sprawdzania indeksacji:

  • W Google
  • W Yahoo
  • W Bing

Nas najbardziej będzie interesowała opcja sprawdzenia indeksacji w Google. Dlatego też wybieramy opcję Google Indexed.

indexed checker

Uruchomi nam się następujące okno, w którym wybieramy przycisk Start/Redo w lewym dolnym rogu.

indexed complete

Jeśli nasz adres URL został zaindeksowany przez Google, otrzymamy informację w kolumnie IDX-G: YES. Natomiast jeśli nie został zaindeksowany wyświetli się informacja NO.

W przypadku, gdy w kolumnie Status, będziemy mieć inny komunikat niż Completed, należy ponownie sprawdzić indeksację.

Sprawdźmy jeszcze indeksację naszej strony w wyszukiwarce Yahoo

indexed checker no

Jak możemy zauważyć, żaden link z naszej strony nie został zaindeksowany w wyszukiwarce Yahoo.

 

 

Formatowanie adresów URL

Podczas sprawdzania naszych adresów URL, może zdarzyć się sytuacja, gdzie będziemy musieli spośród dużej ich puli usunąć duplikaty, wyrażenia http, https, www etc. Aby nie robić tego ręcznie, chociaż można próbować w excelu, warto poznać dodatkową funkcję scrapeboxa.

formatowanie url

Załóżmy, że chcemy zostawić tylko główny adres https://wolfbrothers.net/ . W tym celu klikamy w opcję Trim to Root.

trim to root

Efekt jest następujący. Teraz chcemy zostawić tylko samą domenę bez http, https oraz www. Wybieramy opcję Trim URLs to domain level.

domain level scrapebox

Tak jak mogliśmy się domyślić, została nam sama domena. Załóżmy, że spośród listy wielu takich samych domen, chcemy zostawić tylko jedną i usunąć duplikaty.

duplikacja adresów url

W prawym górnym rogu wybieramy opcję Remove/Filter i klikamy w Remove Duplicate URL’s.

adres wolfbrothers

Efektem tego filtra będzie pozostawienie tylko jednego unikalnego adresu URL. Pomoże nam to w późniejszym linkbuildingu, czy wybieraniu domen przy zgłaszaniu pliku disavow. Dodatkowo mamy bardzo rozbudowaną opcje filtrowania adresów URL m.in:

  • Remove URL’s containing… – usuwanie adresów URL które zawierają dane słowa, znaki
  • Remove URL’s not containing… – usuwanie adresów URL które nie zawierają danych słów, znaków
  • Remove URL’s containing entries from… – usuwanie adresów URL które zawierają dane słowa, znaki z wcześniej przygotowanego pliku .txt
  • Remove URL’s not containing entries from… – usuwanie adresów URL które nie zawierają danego słowa, znaków z wcześniej przygotowanego pliku .txt
  • Remove URL’s with more than xxx character – usuwanie adresów URL, które zawierają więcej niż np. 10 znaków
  • Remove URL’s with less than xxx character – usuwanie adresów URL, które zawierają mniej niż np. 10 znaków
  • Remove Subdomain from URL’s – usuwanie subdomen z adresów URL
  • Remove URL’s with extensions… – usuwa adresy URL z ustalonym przez nas rozszerzeniem np. .zip, .jpg .mp3

 

 

Jak wyeksportować naszą listę adresów URL?

Jeśli mamy już gotową i przefiltrowaną listę adresów URL, które chcemy zapisać. Możemy zrobić to na kilka sposobów:

eksportowanie adresów url

Pierwszym z nich będzie kliknięcie w prawym menu w opcję Export URL List, a następnie mamy kilka możliwości:

  • Export wszystkich adresów URL do pliku TXT
  • Export wszystkich adresów URL jako plik Excel lub HTML
  • Możemy skopiować wszystkie linki do schowka
  • Możemy stworzyć Sitemape w formacie XML
  • Oraz wiele więcej…

Zwykle będziemy korzystać z exportu do pliku .txt oraz pliku excel.

 

 

Jak zaimportować naszą listę adresów URL?

Analogicznie jak w przypadku exportu, klikamy w prawym menu w zakładkę Import URL List.

import adresów url

Podczas importowania mamy kilka możliwości. Najczęściej będziemy korzystać z dwóch pierwszych opcji. Pierwsza polega na dodaniu adresów URL i zastąpieniu obecnych w okienku Url’s Harvested. Druga funkcja rozbudowuje obecną listę o kolejne zaimportowane.

Podsumowanie drugiej części poradnika Scrapebox

W tym artykule to już wszystko. Celowo w drugiej części nie poruszałem tematu związanego z harvestowaniem miejsc do linkowania oraz zdobywania proxy, ponieważ niezbędne dla nas były powyższe informację, abyśmy mogli szybko filtrować swoje listy adresów URL oraz sprawdzać w których miejscach jest sens dodawania odnośników do swojej witryny.

[kkstarratings]

Adobe Photoshop

Jak wykorzystać Adobe Photoshop w SEO?

Adobe Photoshop jest jednym z najbardziej znanych programów do tworzenia/modyfikowania grafiki rastrowej. Ma on wiele funkcji, które mogą nam ułatwić codzienne życie w pracy SEOwca. Oczywiście Adobe Photoshop nie będzie w stanie zoptymalizować za nas strony internetowej, czy zdobyć wartościowych linków. Możemy jednak wykorzystać go do innych celów, które ułatwią ogólny proces dążenia do wysokich pozycji.

W artykule chodzi mi głównie o przedstawienie kilku opcji związanych z obróbką fotografii/grafik, które możemy wykorzystać podczas tworzenia stron zapleczowych, dodawania artykułów na blogu klienta itp.

Kadrowanie

Kadrowanie to jedna z opcji Photoshopa, która została rozwiązana w bardzo wygodny sposób. Pozwala nam ona na pozostawienie konkretnej części zdjęcia z dokładnością co do jednego piksela. Ikonkę kadrowania znajdziemy w palecie narzędzi Photoshopa z lewej strony. Po wybraniu kadrowania będziemy w stanie zaznaczyć konkretny element zdjęcia, który nas interesuje. Oczywiście możemy go modyfikować chwytając myszką za rogi czy także środki linii tworzących figurę kadrowania.

kadrowanie

Kroplomierz

 

Kroplomierz to funkcja pozwalająca na pobranie kodu konkretnego koloru, który nas interesuje. Jeśli spodobał nam się kolor, który znaleźliśmy wystarczy, że zrobimy screena, wkleimy do Photoshopa oraz wybierzemy z palety narzędzi Kroplomierz. Kolejno kroplomierzem naciskamy na konkretny kolor, który nas interesuje. Możemy również jeździć nim po poszczególnych elemenatach grafiki, a on w obrębie narzędzia będzie nam pokazywał aktualny kolor, który pobiera:

kroplomierz pobranie koloru

Po pobraniu koloru znajduje się on w palecie z lewej strony. Wystarczy na niego kliknąć, aby otworzyć próbnik kolorów:

próbnik kolorów

Efekt czarno-biały

Jeśli chcemy uzyskać czarno-biały efekt wystarczy wejść w Obraz – Dopasowania – Czarno-biały lub skorzystać ze skrótu Alt + Shift + Ctrl + B

czarno-bialy

Dzięki dodatkowym ustawieniom będziemy mogli wybierać filtry oraz modyfikować głębię naszego nowego czarno-białego zdjęcia.

ustawienia czarno biały

Jasność/Kontrast

Odpowiednio dobrane zdjęcie jest w stanie przykuć uwagę użytkownika i zachęcić go do przeczytania artykułu. Warto zadbać o odpowiednią kolorystykę zdjęcia. W tym przypadku bardzo pomoże nam opcja Jasność/Kontrast. Dzięki niej będziemy w stanie sprawić, że konkretne zdjęcie będzie wyróżniało się spośród innych, na których widnieją „słabe” kolory. Opcja ta znajduje się w Obraz -> Dopasowania -> Jasność/Kontrast.

jasność kontrast

Przykładowo dzięki podniesieniu kontrastu i jasności możemy otrzymać taki efekt:

Po lewej zdjęcie „przed”, po prawej „po”

kontrast

Usunięcie poszczególnych elementów zdjęcia

Dobór zdjęć to czasami długotrwały proces. Po długich poszukiwaniach znajdujemy zdjęcie, która ogólnie nam się podoba i było by idealne, gdyby nie to, że znajduje się na nim jakiś element, który nam nie odpowiada. W wielu przypadkach damy radę się go pozbyć przy pomocy kadrowania, lecz niestety nie zawsze nam się to uda, jeśli ten element jest stale związany z elementami, jakie są dla nas niezbędne. Z pomocą przyjdzie nam oczywiście Adobe Photoshop oraz narzędzie Stempel:

stempel

Stempel pobiera próbkę kolorów z miejsca, które ustawimy. Dokonuje się tego poprzez wciśnięcie klawisza alt oraz naciśnięcie myszką na konkretny element:

celownik stempel

Dzięki temu narzędziu jesteśmy w stanie uzyskać przykładowo taki efekt:

Etap 1

Etap 2

Etap 3

Wycinanie

Czasami potrzebujemy wgrać na stronę grafikę, która nie posiada tła. Znaleźliśmy niestety tylko taką, która tło posiada więc przydało by się wyciąć interesujący nas element. Osobiście najczęściej korzystam w takim przypadku z narzędzia jakim jest Pióro:

pióro

Pozwala ono na narysowanie ścieżki, a kolejno utworzenie z niej zaznaczenia co pozwala później na wycięcie konkretnego elementu oraz zapisanie go bez tła. Przy bardziej skomplikowanych elementach wycinanie zajmuje sporo czasu, dlatego tutaj należy uzbroić się w cierpliwość.

wycinanie

Po obrysowaniu interesującego nas elementu piórem klikamy prawy przycisk myszy i wybieramy „Utwórz zaznaczenie”.

utwórz zaznaczenie

Kolejno możemy już śmiało wyciąć z obrazu nasz obiekt i zapisać go bez tła, czyli np. w png. Oto efekt po wycięciu:

wycinanie balonu photoshop

Rozmycie

Czasami niezbędne będzie rozmycie poszczególnych elementów zdjęcia. To oczywiście również bez najmniejszego problemu zrobimy w Adobe Photoshop. Załóżmy więc, że chcemy rozmyć adres strony internetowej i zakładki w przeglądarce. Wystarczy zrobić screen, otworzyć go w Photoshopie oraz zaznaczyć elementy, które chcemy zamazać narzędziem zaznaczanie:

zaznaczanie

Kolejno wybieramy opcję Filtr -> Rozmycie -> Rozmycie gaussowskie…

rozmycie gaussowskie

Efekt:

efekt rozmycie

Większość z tych rzeczy oczywiście będziemy w stanie wykonać korzystając z darmowych programów, jednak dla osób takich jak ja, które uwielbiają Photoshop-a będzie to jedyny sposób na „obróbkę graficzną” zdjęć i innych elementów wykorzystywanych na stronach internetowych 😊

[kkstarratings]

scrapebox

Scrapebox – narzędzie które zrewolucjonizowało procesy SEO

Chcesz poznać miejsca gdzie można umieścić link? Potrzebujesz wygenerować listę słów kluczowych na którą będziesz się pozycjonował? Szukasz listy darmowych anonimowych proxy lub chcesz sprawdzić listę setek stron gdzie znajduje się Twój link do strony?

Jeśli chociaż na jedno pytanie odpowiedziałeś twierdząco, wiedz że coś się dzieje. Prawdopodobnie powyższe czynności wykonujesz ręcznie. Jak sam już wiesz jest to niezwykle monotonne i w pewien sposób marnuje Twój potencjał do wykonywania innych, ciekawszych zadań. Wyobraź sobie sytuacje gdzie wszystkie powyższe czynności możesz robić znacznie szybciej i co najważniejsze mniejszym nakładem pracy. Z pomocą przychodzi narzędzie prosto ze Szwajcarii o nazwie Scrapebox.

Historia Scrapeboxa

Narzędzie powstało na początku 2009 roku.

scrapebox logo

Przez cały okres działalności (osiem lat), pojawiało się bardzo wiele aktualizacji dzięki czemu program doczekał się wersji 2.0 w dniu 27 czerwca 2015 roku. Całą historię aktualizacji można znaleźć pod adresem: http://www.scrapebox.com/scrapebox-changelog

Słowem wstępu, obecny artykuł jest jednym z całej serii związanej z tym narzędziem. Ponieważ nie sposób jest omówić wszystkich funkcji zaledwie w jednym artykule. Zależy mi także na tym abyś w pełni mógł wykorzystać potencjał jaki daje Scrapebox.

Instalacja scrapebox

Koszt narzędzia z dożywotnią licencją wynosi 97USD bez podatku VAT. Jeśli jesteśmy już zdecydowani zakupieniem licencji scrapeboxa wystarczy przejść pod następujący adres URL: http://www.scrapebox.com/ , a następnie przewijamy na sam koniec i wybieramy opcję Add to Cart.

Zostaniemy przekierowani na stronie paypala gdzie logujemy się do swojego konta lub tworzymy nowe wypełniając puste pola z formularza. Po zaksięgowaniu płatności otrzymamy wszelkie potrzebne informacje na maila z linkiem do pobrania narzędzia oraz kodem licencji.

Kod rabatowy Scrapebox

W przypadku gdy 97$ (350 PLN) dla nas to duży wydatek warto skorzystać z kodu rabatowego który został wygenerowany dla użytkowników forum Blackhatworld.com. Aby skorzystać z 30$ zniżki wystarczy kupić licencję poprzez następujący link: http://www.scrapebox.com/bhw

Główny panel Scrapeboxa

Po instalacji oprogramowania oraz jego uruchomieniu pokaże nam się następujące okno:

scrapebox panel

Dla uproszczenia cały panel scrapeboxa podzielimy na sześć segmentów, aby w pełni zrozumieć jego działanie bez niepotrzebnego chaosu. W tej części artykułu opiszemy tylko ogólne funkcje powyższych segmentów, aby pokazać całokształt programu.

  • Pierwszy segment odpowiada za pozyskiwanie listy linków z różnych wyszukiwarek (Google, Yahoo, bing etc.) na podstawie słów kluczowych które tam podamy.
  • Drugi segment to w zasadzie główne okno programu, w którym wyświetlają się gotowe linki
  • Trzeci segment odpowiada za „obróbkę” linków które umieściliśmy w programie
  • Czwarty segment, niezwykle istotny przy wszystkich działaniach w scrapeboxie. Umieszczamy tam listę proxy, dzięki której nasze IP nie zostanie zbanowane przy masowych działaniach link buildingowych i nie tylko.
  • Piąty segment odpowiada za sprawdzanie czy na danej stronie jest link do naszego portalu, a także daje możliwość automatycznego umieszczania komentarzy na blogach wedle ustalonych przez nas wcześniej parametrów.
  • Szósty segment jest powiązany z piątym i odpowiada za konfigurację dotyczącą automatycznych komentarzy oraz sprawdzania linków.

Dodanie proxy do Scrapeboxa

Nieodłącznym elementem każdego pozycjonera jest pakiet prywatnych proxy. Wiele działań w scrapeboxie będzie wiązało się z generowaniem przeróżnych zapytań w wyszukiwarce oraz wielokrotnie będziemy odpytywać jedną i tą samą stronę internetową. Jeśli będziemy pozbawieni dostępności proxy, nasz adres IP zostanie szybko zablokowany i niestety nie będziemy mogli dalej kontynuować działań w scrapeboxie.

Aby dodać naszą listę proxy do scrapeboxa wystarczy kliknąć w lewym dolnym rogu w opcję „Manage”

proxy

Następnie ukaże nam się okno ProxyManager, w którym klikamy w prawym dolnym rogu na opcję Load Proxies a następnie wybieramy interesujący nas wariant.

load-from-file

Dla przykładu wybiorę opcję pobrania proxy z pliku .txt.

lista-proxy

Następnie ukaże nam się powyższe okno, które potwierdza załadowane proxy z pliku txt.

Jak możemy zauważyć pierwsza kolumna to lista naszych adresów IP.

Druga kolumna to porty które odpowiadają danemu adresowi IP. Przeważnie porty będą stałe u jednego dostawcy.

Trzecia oraz czwarta kolumna to login oraz hasło do naszych prywatnych proxy. Ustalamy je podczas zakupów danego pakietu u dostawcy.

Kolejną ważna czynnością jest zapisanie naszej listy proxy. W tym celu klikamy w prawym dolnym rogu „Save proxies” a następnie opcje Save all to ScrapeBox Proxy List. Po tym zabiegu pozostaje sprawdzenie poprawności naszych proxy. Aby to sprawdzić wystarczy kliknąć w dolnym menu (opcja Test Proxies), a następnie Test all proxies.

Jeśli proxy będą nieprawidłowe wyskoczy nam poniższy komunikat przy sprawdzaniu:

failed proxy

Jeśli natomiast jest wszystko w porządku otrzymamy następujące komunikaty:

scrapebox

Anonymous Test Result – pokazuje czy nasz adres IP jest ukryty, gdy korzystamy z proxy.

Google Test Result – zgłasza zapytania do wyszukiwarki Google, jeśli otrzymamy negatywny wynik oznacza to że dany adres jest już zablokowany.

Speed – podany czas w milisekundach, pokazuje jak szybko proxy odpowiada.

Status – komunikat Completed oznacza że dane proxy zostało już sprawdzone.

Podsumowanie pierwszej części poradnika Scrapebox

W tym artykule tylko przybliżyłem ogólny zarys programu Scrapebox. Jeden wpis na blogu niestety nie wystarczy aby opisać wszystkie możliwości narzędzia, których jest ogrom. W kolejnej części poradnika omówimy sobie w jaki sposób pozyskiwać miejsca w których możemy umieścić swój link do strony. Dodatkowo poruszmy temat darmowego pozyskiwania proxy – zobaczymy czy można zaoszczędzić w ten sposób kilkadziesiąt dolarów miesięcznie.

Warto podsumować samo narzędzie chociaż w jednym zdaniu. Jak na możliwości oraz zaoszczędzony czas które oferuje powyższy program, jest to z pewnością świetna inwestycja.

[kkstarratings]