SEO przy zmianie domeny bloga

To ostatni wpis nawiązujący do Blox, przynajmniej techniczny, bo być może pojawi się jeszcze jeden o tym, jak Agora ma w głębokim poważaniu wolność słowa (określając to górnolotnie) i że ważniejsze jest parę złotych.

Po przeniesieniu bloga, o którym nieco pisałem, przyszedł czas na przeniesienie pozycjonowania w Google w nowe miejsce, czyli zabawę z SEO, aby ludzie wchodząc z wyszukiwarki trafiali w nowe miejsce. Przyznaję, że motywację miałem nikłą – nie zarabiam na wejściach, bo ani nie służy on do sprzedaży produktu, ani nawet nie ma podpiętych innych, pośrednich form zarobku.

Po przeniesieniu treści postanowiłem poczekać. Zwyczajnie i po prostu, nie robiąc nic, poza daniem informacji Google, że blog jest i jak interpretować zawarte na nim dane. Zresztą akurat miałem co innego na głowie. Znaczy ograniczyłem się do wypełnienia Data HighliterWebmaster Tools. Stan taki trwał jakiś miesiąc albo dwa.

Z braku kontroli nad nagłówkami pomysł przekierowania w nowe miejsce przy pomocy kodu odpowiedzi 301 odpadł w przedbiegach, choć to najprostsza, automatyczna i zalecana – także z punktu widzenia SEO – forma przekierowania ruchu w nowe miejsce.

Trochę czasu minęło, ilość wejść na nową lokalizację była szczątkowa, choć miałem nadzieję, że Google zacznie ogarniać sytuację samodzielnie. Niestety tak się nie stało, więc postanowiłem zacząć działać, choć miałem świadomość, że to praca, która się nie automatyzuje. Pierwsze co przyszło mi do głowy, to ustawienie link canonical dla wybranych, najczęściej odwiedzanych wpisów z nową lokalizacją jako celem. I tu okazało się, że Blox przewidział sytuację i… stosowne elementy HTML znikają po dodaniu ich w edycji źródła[1].

Z braku lepszych pomysłów dodałem w najpopularniejszych wpisach namiar na nowe miejsce, poprawiłem też linki do bloga w większości miejsc, gdzie były one umieszczone i… postanowiłem jeszcze poczekać. Poczekałem kwartał, ale nie wydarzyło się nic specjalnego. Statystyki wg Webmaster Tools wyglądały na koniec kwartału następująco:

ostanie 28 dni: impr: 2250, CTR 0,84%, avg pos 33,7. 130 wizyt

Delikatnie mówiąc szału nie ma.

Postanowiłem więc podziałać inaczej. Skoro nie mogę przekierować wyszukiwarki Google, to postanowiłem przekierować przynajmniej żywych ludzi, licząc, że Google w jakiś sposób to zauważy i odpowiednio zinterpretuje. Skoro nic nie działa, to co zadziała na pewno i czego nie można zablokować? Oczywiście JavaScript. Malware korzystający z niego ma się dobrze dzięki obfuskacji, zablokować całkowicie wykorzystania JS na stornie nie bardzo można, bo masa funkcjonalności z niego korzysta. Użyłem następującej wersji przekierowania z jednej lokalizacji na drugą (dla najpopularniejszych wpisów):

<script>
window.location.replace('https://zakr.es/blog/2017/09/goodbye-yanosik/');
</script>

Oczywiście powyższy JS był tylko w odpowiadającym wpisie na starym blogu, a URL w skrypcie to URL na nowym blogu.

Zadziałało nadspodziewanie dobrze. Nadspodziewanie, bo przy wejściu na URL kategorii zawierającej wyświetlany wpis z przekierowaniem, także przekierowywało. Co gorsza przekierowywało przy wejściu na stronę główną, bo także znalazł się tam wpis z przekierowaniem. Może i więcej ruchu przez to, ale niezupełnie o to chodziło i mało to precyzyjne… Dla wpisów z głównej dokonałem więc stosownej korekty w stylu:

<script>
var stringPathName = window.location.pathname;
if (stringPathName == "/2018/02/Waze-jako-nawigacja.html") {
  window.location.replace('https://zakr.es/blog/2018/02/waze-jako-nawigacja/');
}
</script>

Poczekałem miesiąc, wyniki w statystykach były zauważalne, zacząłem więc dodawać tego typu przekierowania dla kolejnych, popularnych linków. Po dwóch miesiącach od dodania przekierowań w JS, wyniki wyglądały następująco:

28 dni: impr: 10450, CTR 4,46%, avg pos 18.8, 490 wizyt

Jak widać wzrost wszędzie. Uznałem, że jest sukces, zacząłem – dla pewności – usuwać większość treści wpisów na starym blogu. Nie było negatywnego wpływu, nastąpił nawet dalszy, równie znaczący wzrost wskaźników, choć zakładam, że wynika on po prostu z upływu czasu.

Największym zaskoczeniem jest dla mnie, że Google przy pozycjonowaniu uwzględnia JS do tego stopnia. Wiedziałem, że radzi sobie z treścią w JS i umie odczytać URLe, ale w tym przypadku wygląda, że poprawnie interpretowany jest fakt przekierowania.

Co można było zrobić lepiej lub inaczej? Całość działań można było zamknąć w mniej niż dwa miesiące, gdybym od razu wiedział co robić i działał zdecydowanie. Oczywiście lepsze efekty byłyby, gdyby zmiany dotyczyły wszystkich wpisów, ale jest to żmudna, ręczna praca, której poświęcałem kilka minut dziennie przy porannej kawie. Powyższy sposób przekierowania nie jest jedynym dostępnym w JS, miałem w planach sprawdzenie różnych, ale ten sprawdziłem jako pierwszy i zadziałał powyżej oczekiwań, więc nie testowałem innych.

Na koniec jeszcze garść cyferek. Ingerowałem ręcznie w ww. sposób w 40 wpisów. Wg Matomo nowy blog ma obecnie ok. 4-5 razy większą ilość wizyt, niż stary. Czyli ładny podział zgodnie z zasadą Pareto.

Co dalej? Dodawanie przekierowań w kolejnych wpisach i usuwanie z nich treści. Ostatecznie pewnie usuwanie przekierowanych wpisów, ale póki co nie mam na to ciśnienia.

[1] Tu zniknęła moja wątpliwość w celowość działań Blox w celu przywiązania użytkowników do swojej platformy. Przypominam: technicznie mają kontrolę nad nagłówkami i domeną – to jakby naturalne i cena za korzystanie ze współdzielonej platformy. Do tego wyłączyli parę lat temu – rzekomo tymczasowo – API. Ale jak widać dodatkowo jeszcze celowo ingerują w treść HTML.

Switchover

Stało się, stało się, to co miało się stać

troszeczkę nieplanowo, noż…

Planowałem najpierw przenieść blog o BKS, poćwiczyć przepięcie ruchu i dopiero wziąć się za ten. Ponieważ z czasem i motywacją było słabo, parę wpisów chodziło mi po głowie, a pisać nie było gdzie, poszedłem na łatwiznę. Stwierdziłem, że albo przeniosę teraz i dopieszczę później, albo nigdy tego nie zrobię. Zatem blog został zamrożony i przeniesiony w nowe miejsce dla Pomiędzy Bitami.

Poszedłem na łatwiznę i przeniosłem się z Blox na WordPressa. Jednak. Z rzeczy związanych z migracją – na razie zmieniłem licencję, za moment pojawi się info we wpisach skąd pochodzą. W najbliższym czasie zmienię źródło feeda RSS (jeśli ktoś czyta via RSS i nie korzysta jeszcze z RSS w wersji opartej o Feedburner, to polecam przepięcie się) i linki z ważniejszych miejsc.

TBH rozważałem mirror statyczny i zaczęcie pisania od nowa, po prostu, ale ostatecznie wykonałem eksport. Wpisy są wszystkie, komentarze być może nie, stron nie ma, bo ani nie mam na to skryptu, ani nie chcę przenosić wszystkiego – przydadzą się tam gruntowne porządki, zresztą to proste copy & paste…

Stoi to wszystko na niezbyt fortunnej lokalizacji, bo arubacloud w czeskim DC szybkością sieci nie grzeszy, ale i tak jest sporo lżej i szybciej, niż na Blox, mimo możliwie tych samych ustawień.

GTtmetrix - blox.pl

GTmetrix - zakr.es

OK, dla jasności, tu są jakieś drobiazgi, których nie ma (przynajmniej na razie) w nowym miejscu, typu LinkWithin itp. ale nie robią one takiej różnicy. No i gdyby było więcej grafik, to wynik wyglądałby gorzej, ale to już kwestia wspomnianej sieci w czeskim DC.

Oczywiście wszystko lata bezpiecznie i wydajnie po SSL i HTTP/2 i mam możliwość pełnej kontroli nad tym, co się dzieje.

Blox pożegnał mnie w stylu, w jakim go zapamiętam – wyłączyłem możliwość komentowania na blogach, zapisałem ustawienia i co? Po napisaniu tego wpisu, czyli kilkanaście minut później, nadal mogłem dodać testowy komentarz.

(Not so) fun fact: uciekłem z Joggera z powodu cenzury i autorytaryzmu administratorów. Doczekałem się cenzury i autorytaryzmu ze strony Agory (ale o tym to już w nowym miejscu więcej napiszę).

UPDATE: Wygląda na to, że ustawienie dot. komentarzy działa wyłącznie dla nowych wpisów, w starych nie ma możliwości wyłączenia możliwości komentowania (pewnie można uprzykrzać życie przy pomocy zepsutej CAPTCHA i moderowania, zamierzam, ale później, może się coś jeszcze przeładuje). Wot usability!

Migracja z Blox na WordPressa – HOWTO

Jak pisałem poprzednio, na pierwszy rzut do migracji poszedł blog o kapeli Bez Krótkich Spodni. Z migracją zeszło mi nieco dłużej, niż planowałem, głównie za sprawą hostingu, który się kończy, a którego nie przedłużam. Zamiast dedyka w Kimsufi zdecydowałem się na dwa VPSy w arubacloud.pl. Zaleta: taniej i SSD. Wada: potrzebuję dwie maszyny, co wiązało się z podziałem usług. I niestety, mimo konteneryzacji część usług jest od siebie zależna, głównie za sprawą domeny. W każdym razie zeszło więcej czasu, niż planowałem, ale jest to sensowniej podzielone.

Sama migracja jest prosta. Najpierw instalujemy WordPressa. Long story short:

wget https://wordpress.org/latest.tar.gz
tar -zxf latest.tar.gz
chown www-data:www-data katalog

Pozostaje utworzenie bazy i użytkownika:

CREATE DATABASE wordpress_db;
GRANT ALL PRIVILEGES ON wordpress_db.* TO "wordpress_db_user"@"localhost" IDENTIFIED BY "VeryStrongPassword";

W przypadku instalacji opartej o serwer nginx i WordPressa trzeba jeszcze dodać jedno ustawienie w konfiguracji tego pierwszego:

location /bks/ {
    try_files $uri $uri/ /bks/index.php?$args;
}

Następnie uruchamiamy instalator WordPressa przez WWW i logujemy się. Warto usunąć przykładowy wpis i strony, z których nie korzystamy, można wybrać szablon (cóż, domyślny robi robotę jak dla mnie) i zrobić porządek w pluginach.

Niestety Blox wyciął użytkownikom możliwość eksportu wpisów, więc w tym miejscu musiałem posiłkować się autorskim skryptem, by zdobyć treść bloga z Blox w formacie wordpressowym. Potem szybkie dopieszczenie szablonu, zwłaszcza zdjęcia z nagłówka i… w zasadzie jest. Niestety, obrazki w takim rozwiązaniu są serwowane nadal z serwerów Blox, więc nie mamy pełnej niezależności i będziemy dostawać komunikat ostrzegawczy przy HTTPS, bo nie wszystkie treści są serwowane w sposób bezpieczny.

Jest jednak na to sposób. Okazuje się, że istnieje plugin Download External Images In Posts, który robi dokładnie to, na co wskazuje nazwa – pobiera obrazki ze zdalnego serwera, zapisuje je lokalnie i podmienia linki we wszystkich wpisach, także już istniejących. Działa zadziwiająco dobrze, choć jedna rzecz mi się w nim nie podoba: musi pozostać aktywny po zrobieniu roboty, bo linki nie są podmienione w treści. Ale z tym jestem w stanie żyć.

Ostatni szlif to dodanie statystyk Matomo (dawniej Piwik). Skorzystałem z pluginu Insert Headers and Footers, następnie wkleiłem tam stosowny JS.

Efekt finalny widać w pierwszym linku. Jak widać zachowana została treść wpisów, ich daty, komentarze, ich autorzy oraz daty. Działają także tagi i kategorie (tych ostatnich akurat nie używam na blogu BKS). Wszystko jest serwowane po HTTPS (i dodatkowo HTTP/2, ale to już zaleta nginx z odpowiednią konfiguracją), czyli szybko, bezpiecznie i SEO friendly. Tak, jak powinno być. 🙂

Zostało posprzątanie na starym blogu i przekierowanie w nowe miejsce, ale to już bez pośpiechu…

Dodam jeszcze, że WordPress spodobał mi się na tyle, że rozważam migrację tego bloga także na WP, zamiast statycznego Pelicana. Ale nad tym jeszcze chwilę pomyślę.

UPDATE Aby działały poprawnie wszystkie ustawienia dla bezpośrednich odnośników, trzeba podać katalog w konfiguracji, zgodnie z tym opisem.

Uciec, ale dokąd?

Chwytliwy tytuł nie jest związany z filmem. Pod koniec zeszłego roku w komentarzu u Boniego wyraziłem przypuszczenie, że roku 2018 nie skończę na Blox i… stało się. Równia pochyła była widoczna od dłuższego czasu, najpierw wyłączane były funkcjonalności (API), potem doszły problemy ze stabilnością naprawiane… długo i nie do końca, bo błąd 503 się pojawia – relatywnie niski wynik Blox na mojej stronie ze statystykami nie jest przypadkiem. Zapowiadanych nowych funkcjonalności nie ma – nowy panel nie został nigdy ukończony, nowe szablony są nadal trzy na krzyż, mimo zapowiedzi. O HTTPS można zapomnieć, co oznacza, że wkrótce blogi na Blox będą oznaczone jako niezaufane w przeglądarkach, pewnie za jakiś czas polecą w dół w indeksach Google. Nawet blog o Blox nie jest już od dłuższego czasu aktualizowany. Znaczy, że przyszłość rysuje się niewesoło, było wiadomo od dłuższego czasu.

Zamknięcie serwisów blog.pl oraz bloog.pl na początku roku (Onet i WP, odpowiednio) pewnie dodało Agorze odwagi w wyciskaniu zysków z upadającej platformy i postanowiono dołożyć reklamy. O tym, że mogą zamieszczać reklamy, było wiadomo od dawna, bo jest to napisane w regulaminie odkąd pamiętam. I reklamy były serwowane na nieaktualizowanych blogach.

Jednak tym, co przelało czarę goryczy nie jest fakt zamieszczenia reklam, tylko forma. Zarówno forma reklamy, totalnie nieestetycznej, rozwalającej wygląd szablonu, wklejonej na samej górze (wiadomo, co jest najważniejsze… żeby żaden user nie zapomniał przypadkiem kliknąć, a blog to taka przylepka do reklamy), w dodatku dynamicznej (animacja), zasłaniającej jakieś 75% ekranu na moim smartfonie, jak i forma komunikacji zmian użytkownikom.

Otóż komunikacji nie było żadnej. A jak już użytkownicy zauważyli reklamę i zapytali na forum co jest grane, to usłyszeli:

Jednak koszty utrzymania platformy Blox.pl wzrosły i wprowadziliśmy zmianę – nieinwazyjne reklamy są wyświetlane teraz na wszystkich blogach.

Wolne żarty. Nie lubię zaglądać komuś do kieszeni, ale koszty hostingu, łącz i sprzętu komputerowego regularnie spadają. W tym ostatnim przypadku rośnie wydajność sprzętu/pojemność dysków, przy zachowaniu cen. Oczywiście Agora może sobie dowolnie księgować koszty i zapewne na papierze koszt utrzymania platformy wzrósł, niemniej można to ująć po prostu chcemy więcej zarabiać na Blox (i mamy w głębokim poważaniu, co sądzą o tym użytkownicy, albowiem silna nasza pozycja[1]). O „nieinwazyjności” reklamy było wyżej.

W każdym razie będę stąd znikał. Nie wiem jeszcze dokąd pójdę i kiedy dokładnie, ale znikam na pewno. Jestem w tej komfortowej sytuacji[1], że mam i backup bloga, i narzędzie do migracji z Blox do WordPressa (gdyby ktoś był zainteresowany, polecam kontakt jak w dziale kontakt; TANSTAAFL). Choć nie wiem, czy akurat na WordPressa chciałbym się przenieść. Z jednej strony de facto standard i wygodny, z drugiej statyczne generatory bloga (tu: Pelican) nadal kuszą… Tylko jest problem z komentarzami. Z drugiej strony chyba połowa komentarzy to spam lub krytpospam i usuwam, więc… Tak czy inaczej, dojrzałem do self hosted bloga, tym razem.

W każdym razie nie należy spodziewać się tu wielu nowych wpisów – energia idzie w migrację. Na pierwszy ogień idzie blog BKS, przy okazji pewnie nieco zaktualizuję treść. Można spodziewać się zmian związanych z przekierowaniem użytkowników w nowe miejsce i stopniowego(?) znikania treści. Jeśli korzystasz z kanału RSS innego, niż ten, to polecam aktualizację w czytniku RSS – dołożę starań, by zachować ciągłość. Dla tych, co bez RSS w – razie czego będzie mnie można znaleźć przez Planetę Joggera. Wpis na ostateczne pożegnanie też jest planowany, ale to jeszcze nie teraz.

[1] Trzeba przyznać, że wyłączenie API, plus właścicielstwo domeny, plus niezłe pozycjonowanie, plus brak kontroli nad nagłówkami przez użytkowników stawiają Agorę na mocnej pozycji, bo migracja dla przeciętnego użytkownika jest IMO niewykonalna, chyba, że ktoś będzie ręcznie wpisy przenosił… No ale o tym, że prawdziwe własność daje własna domena wiadomo nie od dziś.

Blox.pl – feed RSS dla pojedynczej kategorii

Wymaganiem udziału w konkuresie DSP2017 jest podanie feedu RSS zawierającego wyłącznie posty związane z konkursem. Blox.pl spłatał mi niemiłego figla i dał wybór – albo stary, paskudny wygląd, albo brak możliwości pobrania feedu RSS dla pojedynczej kategorii. Sprawę zgłosiłem, ale znając czasy realizacji stwierdziłem, że mam trzy możliwości: zrezygnować z DSP2017, postawić osobnego bloga specjalnie dla DSP2017 albo zrobić coś samemu.

Pierwsze dwie możliwości odrzuciłem. Jakoś nie widział mi się blog z 20 postami, kolejnego prowadzić mi się nie chce, a Blox ma swoje zalety i do porzucenia jeszcze nie dojrzałem. Spojrzałem co też mam do dyspozycji pod ręką, bo w pewne parsowanie feedu RSS bawiłem się już przy pomocy Perla (patrz zawartość mojego konta na blabler.pl). Niestety, stwierdziłem, że niezbyt się to nadaje do użytku.

Poza tym, przeszedłem na Pythona, więc pomyślałem o małej rozgrzewce. Pierwszym pomysłem było przeparsowanie całego feeda i złożenie RSS. Znalazłem przykłady parsowania XML z użyciem beautifulsoup4, z którego zresztą trochę wcześniej korzystałem. Wyciąganie zawartości poszczególnych postów poszło bardzo dobrze.

Stwierdziłem, że zamiast się bawić w tworzenie feedu kolejnym modułem, w ramach eksperymentu dodam przy pomocy chamskich printów nagłówki od XML. O dziwo zadziałało, Firefox widział coś, co wyglądało prawie jak oryginał. Jedynym problemem było kodowanie – zdecydowanie był problem z pl-znakami. Rzecz w tym, że Blox używa iso-8859-2, a Python wypluwa UTF-8. Wystarczyła szybka zmiana deklaracji kodowania w nagłówku XML i już było OK.

Kolejny problem wyszedł przy przepuszczeniu feeda przez validatory feedów RSS. Okazało się, że beautifulsoup4 zamienia wszystkie znaki w tagach na lowercase i – wierząc szybkiemu sprawdzeniu – nie ma prostego sposobu, by go od tego odwieść. Podjąłem próbę zamiany moduł na inny, ale szybko zrezygnowałem na rzecz brzydkich, ale skutecznych sedów na wyniku działania skryptu.

Na koniec zostało dodanie wywołania (z użyciem utworzonego na tę okoliczność virutalenv) do crona:

*/15 * * * * /home/rozie/dsp2017/bin/python /home/rozie/rss_from_category_blox.py 2>/dev/null | /bin/sed s'/pubdate/pubDate/g' | /bin/sed 's/lastbuilddate/lastBuildDate/g' > /tmp/dsp2017.xml && /bin/mv -f /tmp/dsp2017.xml /var/www/dsp2017.xml
*/15 * * * * /home/rozie/dsp2017/bin/python /home/rozie/rss_from_category_blox.py 2>/dev/null > /tmp/dsp2017.xml && /bin/mv -f /tmp/dsp2017.xml /var/www/dsp2017.xml

Całość wrzucam na GitHub, na wypadek, gdyby miało się komuś przydać.

UPDATE: Zgodnie z sugestią z komentarza, parsuję XML prawidłowo i pozbyłem się sed poprawiającego wyjście.

Blox przyspieszy

W końcu zostało zapowiedziane, że Blox przyspieszy. Bo o ile nowe szablony wyglądają nieźle, to i czas ładowania, i ilość przesyłanych danych, i ocena w różnych narzędziach woła o pomstę. Różne są zboczenia, a moje jest takie, że czasem robię snapshota migawkę stanu bieżącego. Dla pamięci. I taką migawkę zrobiłem lekko ponad rok temu dla starego wyglądu, a następnie opisałem we wpisie o odchudzaniu.

No to pora zrobić migawkę dla nowego wyglądu przed optymalizacją. Dla głównej strony bloga Google Insights prędkość 58 mobilnie, 94 wygląd, dla desktopu ocena 77. Przy okazji, by wyeliminować ew. zmiany, dla konkretnego wpisu (o routerze TP-Link) odpowiednio 58, 96, 78.

Webpagetest (tym razem Praga, Chrome) – strona główna bloga ładowanie (fully loaded) 7,4 s pierwsze ładowanie, 5,0 s kolejne 2907 kB (sic!), 484 kB;. Konkretny wpis 6,8 s (pierwsze ładowanie), 2,3 s kolejne, przesłane dane 945 kB i 166 kB.

Dorzucę jeszcze wyniki popularnego Pingdom Website Speed Test (Sztokholm). Your website is faster than 60% of all tested websites, rzecze. 81/100, 2,59 s. 2,6 MB. Dla konkretnego wpisu odpowiednio 85%, 82/100, 1,25 s oraz 916 kB.

Pierwszego czerwca było napisane, że w ciągu dwóch tygodni, więc z niecierpliwością czekam. I trzymam kciuki, by wszystko dobrze poszło.

Blogi – stan 2015

Przy okazji paru zdarzeń i dyskusji, które ostatnio miały miejsce popatrzyłem dziś w czytnik RSS. Większość feedów jest martwa w ten czy inny sposób. Opuszczone przez autorów, którzy nie zaktualizowali IP serwera w DNS, wygasłe domeny, brak wpisów, znikające serwisy… To co żyje też ma się różnie – a to komentarze via Disqus, a to jedna notatka na kwartał czy nawet pół roku. Zresztą, unowocześnienia na Blox już zaowocowały zniknięciem trackbacków i feedu komentarzy w widocznym miejscu.

Popatrzyłem też na ilość (zalogowanych) komentujących na Blox. Taki eksperyment okołoblogowy, jeden z wielu zresztą. Nie ma tych komentujących aż tak wielu. Komentarzy też nie ma zbyt wielu. W związku z tym szykuje się mała rewolucja w moim sposobie czytania blogów – nie będę subskrybował tylko feedu z wpisami, ale dla każdego żywego bloga dorzucę feed z komentarzami dla czytanych blogów. Z tego co wiem większość platform blogowych daje coś takiego. Parę blogów już tak w ostatnim czasie dodałem i sobie chwalę.

O ile dla blogów, które komentuję okazjonalnie zdecydowanie wolę powiadomienie mailem (o jabberze mogę zapomnieć, niestety), to w przypadku tych czytanych regularnie mogę przeglądać kanał z komentarzami. W chwilach wolnych, oczywiście, nie mam zwyczaju mieć przeczytanych wszystkich wiadomości w czytniku RSS.

Gdyby ktoś chciał czytać tego bloga podobnie jak ja będę czytał, to w szpalcie bocznej znajdziecie linki do feedów z wpisami (ten był zawsze) i z komentarzami (to nowość, kiedyś był dostępny w pasku adresu przeglądarki, ale przyszło nowe).

Oraz: nie mam złudzeń, blogi generalnie umierają. Przynajmniej w takiej formie, w jakiej były kiedyś. Wystarczy spojrzeć w trendy Google… I w sumie trochę się nie dziwię. Tylko drażni to, że te nowe formy, które je zastępują są tak bardzo ulotne.

Zmiany

Potrzebne są zmiany!
Konieczne są zmiany!
Bo jeśli nic się nie zmieni
Może nadejść dzień rebelii

Stało się. Zmieniłem szablon ze starego, na tzw. nowy szablon Blox. Na drugim blogu zmieniłem go znacznie wcześniej (i działa, i nawet fajny jest), ale tu zwlekałem – do wyboru są tylko trzy szablony, predefiniowane, bez dostępu do krótkich tagów (odkąd Folsr.com padł i tak nie korzystałem) i – póki co – bez możliwości ingerencji w CSS. No i szpalta boczna jest w nowych ukrywana, co prawda pojawiła się wersja z widocznymi szpaltami bocznymi cały czas, ale trochę na doczepkę, co raczej widać.

Głównym motywatorem do zmiany była wersja mobilna w starym Blox, która IMO była nieporozumieniem. Brak możliwości wpływu na wygląd, serwowane przez Agorę reklamy, brak możliwości uruchomienia nawet skryptów statystyk… Poza tym, wg zapowiedzi, prędzej czy później i tak wszyscy skończą na nowych szablonach.

Na razie wrzuciłem na szybko sprawdzony już szablon i… mam bardzo mieszane uczucia. Przede wszystkim wygląd – brak justowania tekstu w szablonie w połączeniu z brakiem możliwości edycji CSS. Poza tym, miało być nowocześnie, mobilnie i lekko, a tymczasem strona jest cięższa i ładuje się dłużej (a mam porównanie, bo w zeszłym roku odchudzałem bloga). No i linki do RSS (komentarze itp.) zniknęły, jeśli dobrze widzę.

Ale generalnie to, co zmieniło się użytkownikom wygląda i działa w porównaniu do tego, co dzieje się zapleczu. Edytor radośnie powoduje zużycie 100% CPU, co nawet doprowadziło do przegrzania i wyłączenia kompa (OK, był zakurzony, teraz po prostu żre CPU jak głupi – hell yeah, była sobie praca na baterii, trzeba krótkie notki robić, ciekawe czy na mobilkach to samo…), za to nie mam np. możliwości ustawienia atrybutu nofollow przy wstawianiu linka. Nie ma edycji stron statycznych na blogu. Nie ma edycji/podglądu tagów. Nie ma możliwości dodania trackbacka. Brak dostępu do pól tagów meta (choćby weryfikacja w Google webmaster tools). Centrowanie dla video nie działa (co widać niżej).

Oczywiście rozważałem (i nadal rozważam) wyniesienie się na własne śmiecie. Póki co potestuję nowe szablony i ustawienia, więc możliwe kolejne zmiany wyglądu i poczekam – miały być zrobione optymalizacje i dodana edycja CSS, więc może będzie akceptowalnie. Oby, bo zmiana szablonu to kilka kliknięć, a przenosiny to… trochę więcej.

A tymczasem piosenka, która poniekąd sponsoruje wpis:

 Gdyby ktoś zauważył jakieś błędy w wyświetlaniu, to proszę o info w komentarzach – najchętniej URL wpisu i co się rozwala.

R.I.P. folksr.com

Długo zwlekałem z oficjalnym info, mając nadzieję, że folksr.com wróci. Nie wrócił od blisko kwartału i straszy błędem Could not connect to Db. Znając uwarunkowania, z których głównym jest brak czasu, myślę, że tak już zostanie. Kolejny znikający serwis[1]. Krótko działał, bo jakieś 5 lat tylko.

Szkoda, bo jak pisałem, lubiłem ten serwis i był to taki lepszy odpowiednik LinkWithin. I fajnie się integrował z Blox. Hm, może Agora go kupi (o ile autor zdecyduje się sprzedać…)? Albo może ktoś napisze własną wersję? Algorytm był opisany na blogu autora (linki w ww. wpisie). W tej chwili tagi na Blox są IMO trochę sztuką dla sztuki. 🙁

No i od jakiegoś czasu wpisy nie były polinkowane między sobą. Wróciłem więc do LinkWithin… Co prawda to tylko linkowanie w obrębie bloga (i śledzi AKA szpieg), ale lepszy rydz, niż nic. No i folksr.com niestety nigdy wielkiej popularności nie zdobył. A szkoda, bo może wtedy inaczej by się jego losy potoczyły…

[1] Łapię się na tym, że jak widzę nowy serwis, to myślę tylko, jak go zepsują (uczynią nieużywalnym) lub kiedy padnie.

Jak zrobić backup bloga?

Na wstępie wyjaśnienie, skąd ten wpis. Na forum Blox co jakiś czas pojawiają się osoby, które straciłydorobek paru lat życia. Znaczy takie, których blog – z różnych przyczyn – przestał być dostępny. I zniknęły cenne wpisy (pół biedy, bo to ludzie czasem mają zapisane lokalnie) oraz jeszcze cenniejsze komentarze. Widziałem narzekania na administrację Blox, gorzkie żale, próby wyciągania treści z cache Google itp. hardcore, na dodatek nie zawsze skuteczny. Wszystko niepotrzebnie, bo ww. opisanym tragediom[1] można w prosty sposób zapobiec. Oczywiście problem nie dotyczy tylko Blox, tak samo może zdarzyć się na innych platformach.

Trzeba uświadomić sobie dwie rzeczy. Po pierwsze, blog, a dokładnie jego zawartość jest treścią tworzoną samodzielnie, przez długi okres czasu, trudno odtwarzalną. Szczególnie, jeśli uwzględnimy komentarze. Po drugie, żaden serwis, a już na pewno nie darmowy, nie daje specjalnych gwarancji na to, że dane nie znikną. Jasne, zwykle nie znikają. Co więcej, jeśli nawet znikną, to zwykle administracja serwisu ma backup, który może przywrócić. Jednak awarie i błędy ludzkie (samodzielne skasowanie notatki lub bloga) się zdarzały, zdarzają i będą zdarzać.

Przed takimi sytuacjami można w prosty sposób się zabezpieczyć robiąc samemu bakcup swojego bloga. Szansa, że nastąpi awaria krytyczna awaria w dwóch różnych miejscach, jest pomijalna. Tak naprawdę samo jednorazowe skopiowanie to jedno polecenie, jeśli chcemy zautomatyzować, warto skorzystać z prostego skryptu. Wybrałem wariant najprostszy, z użyciem programu wget, dostępnego w każdej dystrybucji Linuksa[2], który powinien działać na każdej platformie blogowej (udostępniającej wszystkie wpisy bez logowania), a tworzy backup, który można bezpośrednio wgrać na dowolny serwer WWW i treść będzie od razu dostępna i wyglądająca praktycznie identycznie, jak na blogu. Oczywiście po takim przywróceniu działać będzie tylko odczyt, bez możliwości dodawania komentarzy itp. Co prawda średnio da się z tego automatycznie przywrócić w pełnej formie czy przenieść na inny silnik blogowy, ale najważniejsza rzecz, czyli treść, jest zachowana.

Backupowane są strony z wpisami (i oczywiście komentarzami), hostowane lokalnie zdjęcia i skrypty JS. W przypadku Blox także te strony statyczne, do których jest „przejście” przy pomocy linków. Nie są bacupowane strony, do których nie ma przejścia, linkowane strony, materiały umieszczone na zdalnym hostingu (np. muzyka umieszczona na soundcloud). Najlepiej i najprościej uruchomić i samemu sprawdzić, co się pobrało. Przy zmianie szablonu i linkowań może rzecz jasna dojść do zmiany zawartości nowych backupów.

Koniec tego przydługiego, ale koniecznego moim zdaniem wstępu. Prawda jest taka, że najsłabszym ogniwem jest człowiek i jeśli nie uruchomi się automatycznego backupu, to w najpotrzebniejszym momencie danych nie będzie. A samo się nie włączy. Czyli klasyczne ludzie dzielą się na tych, którzy robią backupy i tych, którzy będą je robić.

Do rzeczy. Aktualnie do tworzenia automatycznego backupu bloga korzystam z polecenia:

wget -q -m -p -E -k http://rozie.blox.pl

Opcje (krótko): q – brak wyświetlania wyjścia, m – mirror, p – ignorowanie poziomu rekursji, E – konwersja plików do HTML niezależnie od rozszerzenia, k – konwersja linków na lokalne. Bardziej szczegółowy opis każdej opcji w pomocy programu.

Cały skrypt dla Linuksa, który można dodać do crona, żeby raz na jakiś czas się uruchamiał – poniżej. Wersja moja, trzeba sobie dostosować. Łatwo daje się przerobić na backupowanie kilku blogów.

Mam nadzieję, że będzie parę tragedii mniej. Chętnie usłyszę uwagi do tego sposobu i propozycje poprawy. Jakby ktoś chciał popełnić dokładny opis dla Windows, to zapewne ludziom się to bardziej przyda.

Przydatne linki (stąd wiem, że działa także dla Blogspot i WordPress, a także podpatrzyłem kilka opcji):

Automatyzacja backupu bloga Blogspot

Automatyzacja backupu bloga WordPress

[1] Tak, nabijam się. Zawartość bloga, konta na FB czy µbloga nie jest dla mnie tak ważna. Ale wiem, że niektórzy podchodzą do tego inaczej.

[2] Jest też wersja wget dla Windows, kiedyś używałem i działała. Oczywiście cały skrypt wymaga przepisania na platformę Windows, co nie jest trudne. Przydadzą się zapewne gzip dla Widnows oraz tar dla Windows, chyba, że od razu skorzysta się z jakiegoś natywnego archiwizera plików typu rar, zip itp.

UPDATE Przy okazji zrobieniu backupu starego bloga (zamknięcie Joggera) wyszła pewna wada – przynajmniej w przypadku Joggera braku http:// na początku URLi całość się nieprzyjemnie pętli i puchnie. Pewnie da się to obejść nie robiąc -m, tylko limitując poziom rekursji. Ja wolałem poprawić URLe. Wadliwe wpisy można prosto namierzyć po wielkości katalogów.

Automatyczne wykrywanie spamu na Blox.

Trochę z rozpędu po ostatnim spojrzeniu na beznadziejną captchę na Blox, trochę zażenowany brakiem działania administratorów Blox w tak wydawałoby się prostej sprawie, trochę chcąc odkurzyć stare skrypty i znajomość Perla, trochę ze względu na zainteresowaniem tematem spamu, a w końcu trochę dla zabawy, postanowiłem zrobić przymiarkę do automatycznego wykrywania spamu na Blox. Chodzi o określanie, czy dany blog służy wyłącznie spamowaniu, oczywiście automatycznie, a co za tym idzie nie ze stuprocentową pewnością.

Administratorzy zapowiedzieli, że captcha zostanie poprawiona w kwietniu (trzymam za słowo i liczę na to, zapewne nie tylko ja), więc spamblogów nie powinno od tej pory przybywać. Zatem postanowiłem skupić się nie na liście nowozałożonych blogów, tylko na liście nowych wpisów, czyli aktywnych spamblogach. Co prawda pierwotny plan zakładał przeiterowanie się po wszystkich blogach i określenie prawdopodobieństwa, czy jest to spamblog, ale nie znalazłem niestety listy wszystkich blogów na Blox. Owszem, można próbować robić rzeźbę pod tytułem „przeiterujmy się po tagach”, ale nadal nie daje to gwarancji uzyskania listy wszystkich blogów – wystarczy, że ktoś nie taguje i system nie dotrze do jego bloga, więc stanęło na tym, że obserwuję listę nowych wpisów i stamtąd biorę dane. Przy okazji oceniam nie tyle cały blog, co poszczególne wpisy, co może być przydatne.

Podejście pierwsze – pobierz i oceń. Na samym początku stwierdziłem, że będę pobierał wpis do oceny i oceniał na podstawie arbitralnych kryteriów. Pomysł szybko upadł – zmiany w algorytmie oceniania powodowały niekompatybilność z poprzednimi danymi, a zmiany były konieczne – wychodziły coraz to nowe kryteria i ich wagi. Wersjonowanie algorytmu przy ocenie nie pomagało, bo dane były tracone. OK, nie jest to wszystko aż tak proste, jak się wydawało na początku.

Podejście drugie – pobierz i zapisz jak najwięcej cech wyróżniających dla danego wpisu/bloga, a potem pomyśli się nad algorytmem. No niestety, zapisywanie dużej ilości danych może być ciekawe, szczególnie, że potem można sięgnąć do wiedzy ze studiów i określić poziomy istotności poszczególnych parametrów (albo popytać kumpla o gotowca, może jeszcze ma…). Wytrenuje się AI na próbce kontrolnej, a potem AI sama zrobi resztę. Brzmi fajnie, ale trochę overkill, poza tym, mało odporne na dołożenie kolejnych parametrów, gdyby przyszło mi do głowy ich wyciąganie.

Podejście trzecie, aktualne,kompromisowe – pobierz i zapisz istotne (wybrane arbitralnie przeze mnie) cechy wyróżniające dany wpis. Osobny skrypt ma algorytm procentowy, każda cecha może przyjmować wartości 0-100% prawdopodobieństwa bycia spamem. Następnie w zależności od ilości cech wylicz prawdopodobieństwo dla całego wpisu przy pomocy średniej ważonej. Rezultaty są dość interesujące.

Tutaj lista blogów (praktycznie nikt nie korzystał, więc wywaliłem), które sklasyfikowałem jako spamerskie z prawdopodobieństwem 80% i więcej. Format prawdopodobieństwo bycia spamem (%), spacja, link do bloga. Nie widzę (szybko patrząc) żadnego false positive, a wy? Aktualnie jest takich blogów 375 na 2404 wszystkich sprawdzonych blogów. Jasne, nie jest to cud techniki, ale przy dodaniu pewnych prostych whitelist myślę, że można spokojnie blokować automatem wszystkie blogi z prawdopodobieństwem od 70% w górę.

Szczegółów badanych cech oraz algorytmu nie chcę na razie opisywać, bo po co spamerzy mają się bronić? Jak będzie utrudnione zakładanie nowych blogów, to pomyślę o tym. Na razie cały czas zbierają się dane… Gdyby byli chętni do przeglądania wyniku w celu wychwytywania false positive’ów (wpisujcie miasta, które przeglądają ;-)), to mogę pomyśleć o wystawianiu listy spamów automatem co jakiś czas.

Całość napisana oczywiście w Perlu, główny moduł zbierający z użyciem WWW::Mechanize (genialna sprawa do crawlerów).

UPDATE: Drobny update statystyk z dnia 27.04.2012 – 13481 unikatowe blogi (wcześniej chyba były unikatowe wpisy, ale mniejsza), w tym 1094 do natychmiastowego wycięcia (80% i więcej). Dla porządku 70% i więcej to 2438 sztuki. Listy nie zamieszczam, bo zainteresowanie było znikome. A captcha nadal nie została poprawiona, choć koniec kwietnia…

Spam na Blox, czyli jak nie implementować CAPTCHA.

Od dłuższego czasu serwis blogowy Blox boryka się z plagą spamu. Słyszałem zapewnienia, że moderatorzy/admini walczą z tym zjawiskiem, ale wydaje mi się, że bez większych sukcesów, a nawet, że problem spamu się nasila. Jest to zjawisko dla wszystkich (poza spamerami) niekorzystne, a nierzadko na stronie głównej o pewnych porach spamy stanowią 30 i więcej procent wpisów.

Postanowiłem zerknąć na proces zakładania konta od początku. Pierwsze co rzuciło mi się w oczy, to prostota CAPTCHA. Być może parę lat temu wystarczało coś takiego, by odstraszyć spamerów, ale wojna trwa – istnieją narzędzia do automatycznego rozpoznawania nawet dość skomplikowanych CAPTCHA ze stosunkowo dużą pewnością (grubo ponad 50%). Niedawno nawet Jogger, który pozwalał właścicielowi bloga na mocne zmiany wyglądu CAPTCHA (kształt, wielkość, kolor), przy komentarzach dorzucił do niej litery obok cyfr, bo spamerzy się przebijali…

Żeby sprawdzić, czy nie przypadek, że CAPTCHA jest taka słaba, wcisnąłem F5, raz, drugi, trzeci… I okazało się, że trafiłem na powtarzające się słowa. Chwilę się pobawiłem i faktycznie, nie da się ukryć, CAPTCHA powtarza się i to – na oko – często. Postanowiłem sprawę zbadać dokładniej.

Sposób badania: uruchomienie przeglądarki, wyczyszczenie historii, w każdej serii 50 przeładowań strony (F5 lub ctrl-r), zapisanie wyników do pliku (każdy wynik w pojedynczej linii) w takiej kolejności, w jakiej się pojawiały. Żeby wykluczyć wpływ User Agent i czasu, każda seria wykonywana na różnej przeglądarce i w odstępie minimum kilkudziesięciu minut.

W pierwszej serii (przeglądarka chromium) 50 ciągów wyrazów wystąpiły 32 unikatowe ciągi, przy czym 4 wystąpiły trzykrotnie, 10 dwukrotnie, a 18 tylko raz. Dodatkowo rzuciła mi się w oczy prawdopodobna metoda powstawania wielu CAPTCHA – podział słowa na sylaby, połączone z ew. wyrzuceniem niektórych liter, a następnie wymieszanie tych slab. Przykładowo zykamu i kazymu (czyli muzyka), letefon, fontele i fonlete (czyli telefon), zetagagataze (czyli gazeta), lafiorka, fiorkala, fiorlaka (czyli kalafior).

Druga seria, kilkadziesiąt minut później na midori – 34 unikatowe ciągi, jeden wystąpił czterokrotnie, 13 dwukrotnie, 20 jednokrotnie. Wyrazy zdecydowanie powtarzają się między seriami – dla obu serii łącznie wystąpiło 46 unikatowych ciągów, 2 wystąpiły pięciokrotnie, 6 – czterokrotnie, 8 – trzykrotnie, 12 -dwukrotnie, 18 – jednokrotnie.

Ponieważ ciąg znaków pod którym można poprać losowany obrazek może być stały (z danego można korzystać wiele razy), postanowiłem uprościć sobie pobieranie i przeliczanie. Szybki skrypt, który przy pomocy wget pobiera zadaną ilość obrazków i zapisuje do kolejnych plików, a następnie sprawdzenie sum kontrolnych (md5) tychże plików. I tu ciekawostka – sumy kontrolne praktycznie się nie powtarzają. Sprawdziłem organoleptycznie i faktycznie – o ile wyrazy powtarzają się często, to praktycznie każdy plik jest binarnie inny. Czyli raczej mała ilość wyrazów raczej nie wynika z chęci cache’owania.

Dla porządku: dla 100 plików 3 miały takie same sumy kontrolne, a kolejne 5 sum występowało dwa razy. Powtórzyłem eksperyment dla 1000 plików. Pojawiło się 611 unikatowych sum kontrolnych, jedna z sum występowała 7 razy, jedna 6, sześć wystąpiło 5 razy, cztery – 20 razy, trzy – 53 razy, dwie – 188 razy i jedna – 342 razy.

Nie sprawdzałem dokładnie, czy dany wyraz w CAPTCHA koreluje z ciągiem w treści (na oko nie), ani z jaką skutecznością zadziała automatyczne rozpoznawanie, ale przy tak częstym powtarzaniu się ciągów znaków i plików nie ma to znaczenia – wygląda, że baza jest za mała, a przekształcenie zbyt proste i można spokojnie stworzyć skrypt, który porówna sumę md5 wygenerowanego pliku z arbitralną bazą.

O problemie pisałem wstępnie na forum, póki co bez odzewu. W każdym razie liczę na to, że wpis zmotywuje administratorów blox do załatania ewidentnej dziury w zakładaniu nowych kont. Obecne likwidowanie spamerskich blogów przypomina wylewanie wody z łódki, zamiast załatania w niej dziury, przez którą wody nabiera.

Oczywiście najlepsze byłoby podpięcie jakiegoś znanej, sprawdzonej implementacji CAPTCHA, zamiast wymyślania koła od nowa (i to sugestia dla tych, którzy chcą stosować tego typu rozwiązanie) ale wydaje się, że nawet z istniejącą implementacją można prosto zadziałać w taki sposób, że stanie się ona choć w części efektywna. Przede wszystkim mam na myśli zwiększenie bazy słów i ilości przekształceń.

Obok złych wiadomości są też i dobre – co prawda problem nie jest to Blox, tylko ogólnie dotyczy konto.gazeta.pl, ale – jak wynika z korespondencji z administratorami Blox – jest znany i ma być najdalej w kwietniu poprawiony. Pozostaje uzbroić się w odrobinę cierpliwości i liczyć na to, że po załataniu dziury uda się skutecznie pozbyć spamerów. W tej chwili bywa tak, że 100% wpisów na głównej stanowią spamy…

Krytyczny rzut oka na doLoop.

Na informację o serwisie doLoop natknąłem się podczas lektury bloga o najlepszych dodatkach do blogów. W skrócie jest to wymiana ruchu – ja linkuję kogoś, ktoś linkuje mnie. Z grubsza tematycznie, tzn. można wybrać, jaką tematykę chcemy linkować i określamy kategorię tematyczną własnych wpisów. Postanowiłem wypróbować, jak to działa i co to daje.

Zaczęło się niezbyt dobrze. Po pierwsze, na stronie serwisu doLoop (obecnie 404) nie ma regulaminu (AKA ToS). Jest FAQ, które coś tam wyjaśnia, ale normalnego regulaminu nie ma. Niefajnie, bo nie musi być nie wiadomo co, ale wystarczyłoby w kilku punktach opisać warunki korzystania z serwisu.

Po drugie, zamieszczanie linka w serwisie jest całkowicie ręczne. Po prostu trzeba wklepać linka, opis, tagi. Wszystko ręcznie, bez możliwości skorzystania z automatów typu javascript i zamieszczenia danych typu tytuł czy tagi automatycznie (OK, tytuł może zaciągnąć automagicznie z URLa). Co przecież jest jak najbardziej wykonalne – Folksr to potrafi. Marnym pocieszeniem – przynajmniej dla mnie – jest możliwość dodania kanału RSS i wybierania postów do dodania z niego.

Na dodatek wymagane jest dodanie zdjęcia. Po prostu i zwyczajnie nie da się zamieścić wpisu bez zdjęcia. Na dodatek zdjęcie musi pasować do treści. W praktyce pewnie czeka mnie szukanie jakichś zdjęć na licencji Creative Commons, albo – raczej – public domain, bo CC wymaga podania autora o co trudno w tej sytuacji. Za robieniem własnych fotek/zrzutów nie przepadam. Nawet do wpisów, co dopiero do zajawek o wpisach.

Po trzecie, mail z potwierdzeniem odbioru prośby rejestracji, który przyszedł, miał skopane pl-znaki w temacie, co wygląda delikatnie mówiąc mało profesjonalnie. Mail z potwierdzeniem dodania do serwisu, który dotarł po około 12 godzinach – to samo. No ale skoro dobrnęliśmy do tego momentu, to kontynuujmy…

Pozytywem jest bardzo dużo opcji wyglądu widgetu. Powiedziałbym nawet, że za dużo i chyba wolałbym podział na widok podstawowy i zaawansowany. Ale domyślne ustawienia praktycznie nie wymagały korekty (no dobrze, rozmiar zdjęć zmieniłem, ale to podstawa).

Testowe zamieszczenie pierwszego wpisu – wypełnianie ręczne dla pojedynczego jest niby do przeżycia, ale na dłuższą metę będzie męczące jak dla mnie – m. in. dlatego nie korzystam z Wykopu czy nie dodaję wpisów do katalogu Flattr. Bardzo fajną rzeczą jest możliwość podania linka do zdjęcia, a następnie prostego wykadrowania i – w razie potrzeby – pomniejszenia w przeglądarce. Przynajmniej nie trzeba uruchamiać edytora grafiki.

Za to czas moderacji wpisu to jakiś koszmar – rozumiem, że jest robione ręcznie i uprzedzają w FAQ moderacja postów trwa przeważnie do 12 godzin, ale kilkadziesiąt godzin to trochę przesada. Przynajmniej na początku drażni, kiedy się czeka na efekty, potem nie przeszkadza w ogóle – przestałem zwracać uwagę na czas moderacji.

Inne niefajne rzeczy:

  • Po zgłoszeniu błędu zero informacji o przyjęciu, zero informacji, czy będzie naprawiany i kiedy.
  • Błędy ortograficzne – po dodaniu do czarnej listy proszę odświerzyć stronę.
  • Mimo zaznaczenia przy zakładaniu konta, żeby „atrakcyjnych dziewczyn” nie pokazywało i wyłączania kategorii Sexy, zdarzają się praktycznie gołe dupy na zdjęciach. Znaczy w stringach. Można to oczywiście blokować blacklistą, ale jakby nie takie jest założenie. I niestety nie można zablokować konkretnego wydawcy w całości.
  • Problemy z pl-znakami – występują i w mailach, i przy pobieraniu danych o tytule wpisu. To pierwsze to wina doLoop, to drugie może być winą Blox i archaicznego kodowania pl-znaków.

Nie miałem przypadku, by dodawany wpis został odrzucony, za to męczące jest ograniczenie w dodawaniu wpisów – w praktyce mogłem dodawać po jednym wpisie dziennie – przypuszczam, że chodzi o swoiste zabezpieczenie antyspamowe. Rozrzut CTR (stosunek wyświetleń reklamy danego posta do wejść) mam spory, bo od ok. 1,3% (beznadziejne zdjęcie) do ok 20% (świeży wpis, CTR spada z czasem).

Wyniki, czyli część najważniejsza, bo widget dodaje się w celu zwiększenia ruchu na stronie (albo przyciągnięcia nowych czytelników, jak w moim przypadku). W FAQ piszą przeważnie można liczyć na od 150% do 200% zwiększenia ruchu na twojej stronie po zainstalowaniu widgetu doLoop. Na mój gust o zero za dużo, przynajmniej na tym blogu. 20% jest za to jak najbardziej osiągalne. Wiele zależy od dodanych wpisów – liczy się i opis (tu nie szalałem, po prostu tytuł z bloga), i zdjęcie. W testowym okresie, wynoszącym 14 dni, unikalne wejścia z doLoop stanowiły ok. 15% wszystkich UU.

Ogólne zadowolenie – 4/10, na razie zostawiam to, co jest, zobaczę jak będzie wyglądało w dłuższym okresie (będzie aktualizacja statystyk). I rozglądam się za alternatywami.

UPDATE: No i jednak doLoop okazał się happeningiem, jak wskazywały na to niektóre rzeczy typu brak ToS czy orty. Od paru dni(!!!) strona główna pokazuje Błąd bazy danych!! Znaczy się do piachu.