5 поста в категория SEO

May 02

Вчера отделих целия ден да направя някои промени по блога, като основно имах доста забележки към темата (iTheme), която ползвам.

Първо започнах да правя малки промени по дизайна

  • сложих да се виждат таговете към даден пост
  • промених (с малко помощ от колега) изцяло извеждането на коментарите
  • формата за добавяне на коментар претърпя малки графични промени
  • тема вече е изцяло на български език (тук таме може да е останало нещо чуждоезично, но малко по-малко що променям)
  • доста по-добра 404 страница, за която използвах от Google Webmaster Tools - Enhance 404 pages
  • промени извеждането на постовете при търсене.

Аз в мрежата

После започнах промени по секциите

  • Добавих нова страница “Аз в мрежата“, в която има информация за част от различните ми регистрации из мрежата. Скоро ще има още връзки, просто на този етап нямам подходящи лога за тази страница (трябваше да има и страница “Аз съм”, но за нея не остана време :( )
  • Добавих “Подобни постове” към всеки пост, като за него използвам плъгина Contextual Related Posts
  • Изтрих от sidebar-a мета информацията и на нейно място сложих таговете в сайта
  • Преминах през Google Webmaster Tools и пооправих някой връзки в сайта, които не работеха, също така промених и няколко meta description-и и други дребни неща

Промени по кода

И след това започнах да работя по интересната част. Докато оправях темата забелязах, че колкото и да е красива от долу като код е просто … ужасна. Още повече самия Wordpress не използва нещо като Smarty, и го кара на голо php (в този пост – “Be smart with smarty“, съм си казал мнението за Smarty). Всички шаблони на темата общо взето изглеждаха така:

<?php get_header(); ?>
	<div id="content">
		// кода за съответния шаблон
	</div>
	<div id="footer">
		<a href="...">WP Theme</a> &amp;
		<a href="...">Icons</a> by <a href="...">N.Design Studio</a>
	</div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

след малко refactoring в шаблон кода стана така, като преместих общите части в хедъра и футера:

<?php get_header(); ?>
	// кода за съответния шаблон
<?php get_footer(); ?>

Мина ми през главата, дали да не направя някои плъгин за Wordpress, който позволява ползването на Smarty и/или layout файлове, подобни на тези които използвам от години в ControlDepo и които ги има в Rails, но в крайна сметка реших, че през лятото най-вероятно ще мина на някое мое блог решение.

След като подредих  и пренаписах шаблоните, се насочих към самата html структура, в която беше пренебрегнато ползването на ul елементи и други дребни неща който ме дразнеха. Но най-големия проблем от който най-вероятно страда доста SEOто на NeXt е че липсваше h1 елемент (т.е. имаше го но просто винаги беше просто NeXt), а той трябва все пак да е заглавието на самата страница.

JavaScript / CSS / Images

Поради използването на много плъгини се беше натрупало огромно количество външни javascript и css файлове, което много вреди на цялостното зареждане на сайта. Така че минах и събрах всичките css файлове в един all.css (останаха само print.css и css файловете от Highlight Source Pro плъгина, но там още не искам да пипам).

С JavaScript нещата седяха малко по сложно поради това че използвах plugin за live търсенето и за още 2-3 малки неща, решението беше да се отърва от всички плъгини и да си напиша собствени версии използвайки ControlDepo 3 Widgets.  От него използвах тези компоненти:

Отделих javascript-a в два файла – all.js и frontend.js ( както права във всичките си проекти напоследък ), Във all.js са библиотечните файлове – Prototype, Script.aculo.us, no.ie6.js, ControlDepo 3 Widgets а във frontend.js са скриптовете специално за блога ми livesearch, widgets и други малки javascript глезотии. По-важното е в случая е това че вече имам стабилна основа върху която да надграждам в бъдеще.

Всички javascript файлове са най-долу, така че няма смисъл да правя dom:loaded а мога директно да изпълнявам кода си. Също така вече и целия код е unobtrusive, и поне на този етап ако даден посетител няма javascript или му е изключен, всичко в сайта ще си работи.

Последната стъпка беше оптимизацията на снимките за това използвах просто ruby gem-a – smusher, който прекарва всяка снимка през smush.it. Така отстраних с около 40 KB размера на всички картинки от блога.

Финални думи

Като цяло за себе си съм си доволен от работата, която свърших по блога. Останаха някои неща за бъдещето:

  • live comment preview
  • най-сетне да имам about страница
  • да взема под IE да видя как се вижда NeXt
  • да се по съберат снимките в css spirites
  • почистване на css файловете, т.е. изтриване на излишните стилове и оптимизация
  • gzip на css / javascript файловете

п.п. от цялото тази работа около Wordpress, ми хрумнаха две идеи за plugin, първия да е Smarty, а втория да е нещо подобно на sprockets което събира всички css / javascript във един файл gzip-ва го, добавя му etags и т.н. Незнам дали е възможно да се направи такова нещо с Wordpress, ако някой има желание за нещо такова, с удоволствие бих му помагал.

May 01

p2p

На 25-26 този месец (т.е. вече стана миналия месец :) ) имах удоволствието да присъствам на  p2p конференцията във Велико Търново. Пиша този пози пост около седмица след събитието, отчасти защото исках да мине малко време от него и отчасти защото времето е дефицит в IT света.

Първия ден малко закъсняхме, защото с колегите от Pixeldepo тръгнахме от Добрич рано сутринта, затова малко изтървахме началото на лекциите. Групата ни се раздели на две – едните на WebTech частта, а другите на БлогКампа. Аз естествено избрах WebTech. Бях изпуснал първите две лекции, но бях дошъл точно на време за най-интересната – Защо Ruby on Rails, представена от Стефан Кънев (с който се запознах на другия ден). Просто страхотно представи Ruby on Rails и дано да е успял да убеди повече хора да пробват Rails. Аз лично за мен съм си решил, много преди p2p, че това лято ще мина изцяло на Rails. Тук има връзка към слайдовете и няколко полезни връзки от блога на Стефан Кънев. Жалко, че няма видео на лекцията. Малко лошо впечатление ми направи, че в цялата зала само 5 – 10 човека бяхме чували за github и други известни приложения. Следващите две лекции лично аз малко ги проспах, защото бях спал само 2-3 часа през нощта. В блога на Калоян Цветков (с който за малко се разминахме да се запознаем на живо) има доста повече информация за първия ден.

БлогКамп

БлогКамп-а доколкото ми разказаха е бил доста по активен и са се дискутирали много интересни неща. Лошото е било, че времето малко не стигнало, но както споменах по-горе времето винаги не стига. :)
След края на лекциите с колегите се настанихме във “Възрожденска къща, в подножието на Царевец” и се срещнах с няколко стари познати от ученическите ми години (малко как го казах написах, като че ли не са били преди 3 години, а преди 30 :-p ). Заради тези срещи и заради краткото Звук и Светлина, бях за съвсем малко на after party-то в клуб Jack и изтървах да се видя с Любомир Петров, с който от 4 години не се бяхме виждали ( добре, че поне на другия ден, се видяхме).

Втори ден

Втория ден бях изправен пред дилемата на кой поток да отида – на WebTech или Web 2.0/3.0. Беше много тежък избор, много исках да видя Щастливият програмист, на който Стефан Кънев пак е разказал играта на присъстващите. А и Сигурност на уеб-приложенията и Software Design Patterns също звучаха добре. Но все пак предпочетох Web 2.0 и мисля, че не сбърках.

Web2.0/3.0

Web2.0/3.0 започнаха с раздаването на ozone наградите, които очаквано бяха спечелени от “никому непознатите” svejo.net. На второ място остана client.bg, който спечели и наградата на публиката, каса бира, която така великодушно раздадоха (даже и аз успях да се уредя). Лекцията “Пътят на блогъра от соушъл буукмаркинг системи към изграждане на собствени общества”, която бях подценил се оказа доста силна, даже почти ме убедиха да ползвам favit.bg. Беше една от тези eye-opening лекции, за която знаеш много неща, но когато ти го систематизират, кажат на куп и ти го поднесат по интересен начин, ти светва лампичката в главата. :)

Как да съсипем сайта си за 3 минути

След това дойде и “Как да съсипем сайта си за 3 минути”, която продължи малко повече от 3 минути и беше за SEO, представена от Огнян Младенов, който както винаги беше на ниво. Взех си няколко бележки за блога и за проектите ми като цяло. Въпреки, че Pixeldepo, не предлагаме SEO като услуга (май сме едни от малкото, както каза и самия Огнян Младенов) ние правим нещо, което аз обичам да наричам SEO Driven Development, т.е. правим сайта максимално SEO достъпен и след това когато истински SEO специалист започне да си върши работа по сайта да е максимално улеснен.

Мислех да пиша за 1-2 неща, които не ми харесаха, но реших да си го спестя, защото стига с тези критики и негативизъм. Всичко беше на шест. Едно браво на организаторите.

Това са ми основните впечатления, много се радвам, че можах да присъствам на p2p, от която научих много полезни неща и си прекарах страхотно. Така че нямам търпение за следващата подобна конференция (примерно p3p). :)

п.п. Даже много ми се иска на следващата конференция и аз да водя някоя лекция. :)

Jan 30

Няколко дни след началото на акция “провал” към сайта – www.government.bg станаха 2 неща:

  1. при търсене за “провал” в google, познайте кой е на първо място при търсене за “Провал”
  2. вече е променен robots.txt на www.government.bg, и вече всички страници могат да се индексират.

Май единствено на администратора на сайта, му е направило впечатление това, но не и на когото трябва от горе (а то май и никой не очакваше такова нещо). Но все пак вече може да се търси из сайта както трябва :)

И друго нещо ми мина през главата, че всичките тези – провал, доста време ще седят и надали в близките 2-3 години goverment.bg ще напусне първата позиция.

Jan 27

Наскоро в българското блог пространство се върви една мисъл ( всъщност се въртят много мисли на тази тема) или по-точно случая  думата – провал, пълен провал, голям провал и общо взето провал.

Причините за провала са много и не мисля да се спирам на тях, а нямам и желание. Интересното е повода за тази SEO атаката към сайта на правителството, а именно че във robots.txt им има този текст:

User-Agent:*
Disallow:/

На човешки език:

Ако си google или коя да е търсеща машина ( търсачка), махаи се! Не индексира съдържанието на сайта.

И ако се потърси в google какви страници има индексирани към www.goverment.bg, се вижда че има ефект.

Между другото нашите политици не са открили топлата вода, оказа се че и старото robots.txt на белия дом не е било много дружелюбно към търсачките. И общо взето от там май идва идеята за това, което се прави сега а именно:  Googlebomb.

И като гледам резултатите от SEO атаката, вече има прилични резултати само около седмица – Търсене за “Провал” (Когато е писан този пост, сайта www.government.bg излиза на 3то място.

п.п. преди време имах един пост - SEO похвати и до какво водят, май трябваше да озаглавя този пост – “Anti SЕО похвати и до какво водят ” (ами до провал водят :) / :( )

Apr 15

Днес си обикалях из Нет-а и минах да видя какво пише по блоговете, какви са новините, какво става в света на футбола. Докато си чета Goal.com попадам на тази връзка http://goal.com/en/Giocatore.aspx?IdPersona=1145&SEOPlayerName=Thierry+Henry.
На пръв поглед нищо странно (освен дизайна и рекламите), но после нещо се загледах върху URL-то. Тъкмо си казвам някои приятни думи за asp, когато нещо друго ми направи по-голямо впечатление. 2те GET променливи IdPersona=1145 и SEOPlayerName=Thierry+Henry. Първата е ясна id-то на футболиста от базата данни. 2рата обаче е по-забавната SEOPlayerName ни казва на разбираем за нас и за google език че става дума за Thierry Henry. Обаче тя само това прави url-то без нея пак показва същото съдържание (дори рекламите са същите).
Е без да сме дали стойност на IdPersona или с такава на липсващ футболист излиза нещо по интересно, но това е друга тема. Просто в такива моменти си мисля какво ли правят хората заради google.

p.s. Е и аз съм правил 1-2 пъти нещо подобно но кой съм аз сравнение със goal.com ( или тези който са го правили )