<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SEO блог и уеб програмиране</title>
	<atom:link href="http://ganbox.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://ganbox.com/blog</link>
	<description>SEO практика: трикове при оптимизация и решаване на проблеми при уеб програмиране.</description>
	<lastBuildDate>Mon, 15 Mar 2010 17:54:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Зареждане на данни с Ajax от отдалечен сървър</title>
		<link>http://ganbox.com/blog/%d0%b7%d0%b0%d1%80%d0%b5%d0%b6%d0%b4%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d1%81-ajax-%d0%be%d1%82-%d0%be%d1%82%d0%b4%d0%b0%d0%bb%d0%b5%d1%87%d0%b5%d0%bd-%d1%81%d1%8a%d1%80/</link>
		<comments>http://ganbox.com/blog/%d0%b7%d0%b0%d1%80%d0%b5%d0%b6%d0%b4%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d1%81-ajax-%d0%be%d1%82-%d0%be%d1%82%d0%b4%d0%b0%d0%bb%d0%b5%d1%87%d0%b5%d0%bd-%d1%81%d1%8a%d1%80/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 09:48:49 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[Уеб програмиране]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[бързодействие]]></category>
		<category><![CDATA[оптимизация]]></category>
		<category><![CDATA[оптимизиране]]></category>
		<category><![CDATA[сигурност]]></category>
		<category><![CDATA[съвет]]></category>
		<category><![CDATA[урок]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=737</guid>
		<description><![CDATA[Задача за оптимизиране бързината на сайт
Наскоро работих по сайта Речник на думите в българския език. В този сайт при търсене по някоя дума в дясната колона се зарежда блок с подобни думи. Подобните думи са такива, които се получават от търсената дума с добавяне, премахване или подмяна на една или две букви. За откриването на [...]]]></description>
			<content:encoded><![CDATA[<h3>Задача за оптимизиране бързината на сайт</h3>
<p>Наскоро работих по сайта <a href="http://rechnik.info/">Речник на думите в българския език. </a>В този сайт при търсене по някоя дума в дясната колона се зарежда блок с подобни думи. Подобните думи са такива, които се получават от търсената дума с добавяне, премахване или подмяна на една или две букви. За откриването на такива думи се използва алгоритъм с висока степен на сложност, който е бавен, защото претърсва цялата таблица с думи. Таблицата беше с размер около 100 000 реда и нарастваше и в резултат на това зареждането на страницата се бавеше до към 30 секунди &#8211; прекалено дълго време за уеб страница. Задачата ми беше да измисля начин за <a href="http://ganbox.com/seo-uslugi#оптимизиране-бързодействие">оптимизиране на бързодействието на сайта</a>.</p>
<h3>Решение</h3>
<p>Първото, което направих е да опитам да оптимизирам SQL заявката. Ползваният алгоритъм не подлежи на <strong>оптимизация</strong>, затова се наложи да прибягна до някои дребни хитрости. Например търсене на подобни думи в ограничен набор от думи с дължина +/-2 спрямо дължината на търсената дума. Създадох някои допълнителни индекси на SQL таблиците и успях да съкратя средното време на около 8 секунди. Да чакаш цялата страница 8 секунди също е прекалено досадно и затова направих блока с подобни думи да се зарежда с Ajax. По този начин страницата се показваше веднага и само блока се бавеше, което беше напълно допустимо. Вече си мислех, че съм приключил, когато дойде писмо от хостинг доставчика, че се ползва прекалено бавна заявка, която бави другите сайтове на този споделен хостинг и настояваха да се <strong>оптимизира</strong>. Така стигнах до идеята, че данните за подобните думи трябва да се зареждат от отдалечен сървър. За да стане възможно това, трябва отдалеченият сървър да има същата таблица с думи в базата си данни. Направих автоматичен скрипт, който периодично да копира таблиците от единия сървър на другия. По този начин освен всичко друго се получи и още един архив на данните. След това оставаше да направя Ajax да се обръща към новия сървър. Тук отново има проблем: от съображения за сигурност Ajax не може да се обръща към домейн различен от този, на който се изпълнява. За да заобиколя това ограничение аз използвам следната програмистка техника: Ajax се обръща към скрипта similarClient.php разположен локално на сървъра на rechnik.info, който прави заявка към скрипт с име words.php на отдалечения сървър. Там се търси за подобни думи в копието на базата данни и намерения резултат се изпраща към similarClient.php, който го връща като резултат към Ajax. Към цялата система се добавя и кеширане на заявките, локално върху отдалечения сървър &#8211; този подход спестява дисково пространство на хостинга за сметка на увеличен трафик. При първото търсене в речника по дадена дума резултата се бави няколко секунди, но при всяко следващо търсене по тази дума, резултата се взема от кеш и става почти моментално. Всичко това може да изглежда малко сложно, но можеш да видиш колко добре действа в сайта на <a href="http://rechnik.info">Речника</a>.</p>
<h3>Сигурност</h3>
<p>Скриптът разположен на отдалечения сървър, който получава дума и връща списък с подобни думи е уеб скрипт и се извиква през HTTP. Това означава, че всеки който знае URL адреса и какви параметри приема, може лесно да използва това за свои цели и да прави заявки към сървъра. Използвайки горния метод, аз скривам URL адреса и това повишава сигурността многократно. Въпреки това е възможно връзката да бъде подслушана или логовете на сървъра да станат достъпни публично. Това ще разкрие URL адреса и някой може да се възползва. Затова един съвет: никога не разчитай само на сложен и таен URL адрес на скрипт!</p>
<p>Аз използвам допълнителни механизми за защита: отдалеченият сървър приема заявки само от IP адреса на rechnik.info. Това увеличава сигурността, но за съжаление не е напълно достатъчно, защото е възможно да пристигнат заявки с фалшифициран IP адрес. Следващиата стъпка е добавяне на кодиран параметър в GET заявката. По този начин URL адреса на заявката прилича на следния:</p>
<pre>http://remote.domain.com/words.php?a=дума&amp;code=a4b25d814f32b2c852c3d71d3</pre>
<p>Низа подаван в променливата &#8222;code&#8220;, е кодирана от скрипта similarClient.php и само скрипта words.php знае как да го разкодира и да разбере дали е валиден. Резултат се връща, само ако стойността е валидна, в противен случай опита се записва и се съобщава на админ. За да може някой да хакне това, трябва да има FTP достъп до някой от двата php файла.Следващата стъпка е ползване на HTTPS вместо HTTP, но тук вече навлизаме в сферата на банковия софтуер <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Сигурен съм, че много хора ще се запитат: &#8222;За какво е всичко това? Какво толкова защитаваш?&#8220;.</p>
<p>Нека да кажем, че се упражнявам <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Не обичам да оставям нещата на случайността и не правя компромиси със сигурността. Винаги изпипвам нещата и се подсигурявам двойно. Препоръчвам ти да се научиш да работиш по този начин.</p>
<h3>SEO</h3>
<p>Описаната система си има и недостатъци. От <a href="http://ganbox.com/seo">SEO</a> гледна точка връзките в блока Подобни думи са невидими за търсачките. За да може сайта да се индексира добре е нужен или Google sitemap, или допълнителен блок с връзки като този със &#8222;Случайни думи&#8220;. Още по-добра работа би свършил блок със &#8222;Съседни думи&#8220;, в който за дадена страница връзките винаги да са едни и същи.</p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>89</b></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%b7%d0%b0%d1%80%d0%b5%d0%b6%d0%b4%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d1%81-ajax-%d0%be%d1%82-%d0%be%d1%82%d0%b4%d0%b0%d0%bb%d0%b5%d1%87%d0%b5%d0%bd-%d1%81%d1%8a%d1%80/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Бутони за социални мрежи v.2</title>
		<link>http://ganbox.com/blog/sb2/</link>
		<comments>http://ganbox.com/blog/sb2/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 08:20:53 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Софтуер]]></category>
		<category><![CDATA[social bookmark]]></category>
		<category><![CDATA[безплатен скрипт]]></category>
		<category><![CDATA[социални мрежи]]></category>
		<category><![CDATA[споделяне на връзки]]></category>
		<category><![CDATA[споделяне на линкове]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=772</guid>
		<description><![CDATA[Нова версия на скрипт за бутони за споделяне на ликове в сайтове за споделяне на връзки и социалните мрежи.
Избрани са сайтове, които вършат добра работа при SEO оптимизация.
Старата версия на скрипта е в статията Безплатен скрипт за бутони към социални мрежи.
.
Това е един безплатен JavaScript за създаване на бутони в страница на твой сайт. Бутоните [...]]]></description>
			<content:encoded><![CDATA[<p>Нова версия на скрипт за бутони за <strong>споделяне на ликове</strong> в сайтове за споделяне на връзки и социалните мрежи.<br />
Избрани са сайтове, които вършат добра работа при <strong>SEO оптимизация</strong>.<br />
Старата версия на скрипта е в статията <a href="/blog/sb/">Безплатен скрипт за бутони към социални мрежи</a>.<br />
.</p>
<p>Това е един безплатен JavaScript за създаване на бутони в страница на твой сайт. Бутоните водят към по-известните български сайтове за споделяне на връзки (Social Bookmark). Добре е да поставиш тези бутони във всяка страница, в която имаш интересна или полезна информация. Когато посетител на твоя сайт хареса статия или друг текст в сайта, използвайки тези бутони, може бързо да сподели текста с други хора като добави връзка към твоя сайт в някой от социалните сайтове. Това ти носи две <a title="оптимизация на сайтове за търсещи машини и SEO поддръжка" href="/seo">SEO</a> предимства &#8211; получаваш линкове към сайта си и започваш да получаваш повече посещения. Скриптът може да се използва навсякъде където имаш право да поставиш HTML тага script.<br />
Разбира се може да не чакаш някой да линква твоите страници, а сам да линкнеш всичките по-важни страници на твоя сайт.<br />
Всички сайтове за социални мрежи изискват да имаш създаден акаунт, затова първо се регистрирай и се логни във всеки от сайтовете, в който искаш да добавиш връзка.<br />
При натискане на бутон за споделяне, автоматично се изпраща URL адреса и заглавието на страницата в която си в момента и след като се логнеш в сайта на социалната мрежа тези данни ще бъдат попълнени &#8211; това спестява време.<br />
.</p>
<p>В новата версия на бутоните съм подбрал сайтовете, които от <strong>SEO</strong> гледна точка, ще ти свършат най-добра работа. Има още много подобни сайтове, но към момента или са много слабо посещавани или не дават реален линк. <strong>Оптимизиран</strong> е скрипта и иконките на бутоните са под 1KB така, че да се се зареждат максимално бързо.<br />
.</p>
<p>Бутоните са към:<br />
<strong>svejo.net</strong> &#8211; най-силно посещаван сайт за споделяне на връзки, дава директен <span style="color: #993300;">noffolow линк</span>, изисква да си логнат предварително, открива автоматично снимките в публикацията и може да качиш снимка с един клик.<br />
<strong>piron.bg</strong> &#8211;  <span style="color: #008000;">дава директен follow линк</span>, удобен сайт, ако не си логнат ще те пренасочи към логин форма, но запомня изпратените данни  (съществува от около година).<br />
<strong>relacia.com</strong> &#8211;  <span style="color: #008000;">дава директен follow линк</span>, <span style="color: #993300;">бавен сайт</span>, изисква да си логнат предварително (съществува от няколко месеца).<br />
<strong>trohi.com</strong> &#8211;  <span style="color: #008000;">дава директен follow линк</span>, удобен сайт, не изисква да си логнат (съществува от няколко месеца).<br />
<strong>dao.bg</strong> &#8211; <span style="color: #008000;">дава директен follow линк</span>, <span style="color: #993300;">неудобен сайт</span>, изисква да си логнат предварително, дори не пренасочва към логин форма, проблем при url енкоднати заглавия на кирилица, има допълнително CAPTHCA поле, което при грешка се изтрива и трябва да се въвежда повторно (около 1200 уникални посещения на ден).<br />
<strong>zdravei.net</strong> &#8211;  <span style="color: #008000;">дава директен follow линк</span>, <span style="color: #993300;">неудобен сайт</span>, изисква да си логнат предварително, дори не пренасочва към логин форма, проблем при url енкоднати заглавия на кирилица, дава възможност да качиш снимка от компютъра си.<br />
<strong>lubimi.com</strong> &#8211; дава директен <span style="color: #993300;">noffolow линк</span>, ако не си логнат ще те пренасочи към логин форма, като запомня изпратените данни (около 12000 уникални посещения на ден).<br />
<strong>web-bg.com</strong> &#8211; дава директен <span style="color: #993300;">noffolow линк</span>, ако не си логнат ще те пренасочи към логин форма, като запомня изпратените данни.<br />
<strong>facebook.com</strong> &#8211; споделя връзка в профила във Фейсбук, няма SEO стойност освен трафика.<br />
<strong>twitter.com</strong> &#8211; пуска туит в профила в Twitter, връзката е <span style="color: #993300;">noffolow</span>, но сайта е много силен (12 място в света според Alexa) и това оказва SEO ефект, особено когато връзките са в различни профили.<br />
.</p>
<h3>Начин на използване.</h3>
<h4>Енкодинг UTF-8</h4>
<p>Постави в  твоя сайт HTML кода:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;!--</span> Start ganbox.<span style="color: #660066;">com</span> code v.2 <span style="color: #339933;">--&gt;&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://ganbox.com/inc/sb2.js&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;&lt;!--</span> End ganbox.<span style="color: #660066;">com</span> code <span style="color: #339933;">--&gt;</span></div></div>
<p>Пример на това как изглеждат бутоните има в сайта на <a title="Тълковен онлайн речник" href="http://rechnik.info/">Речника</a>.</p>
<h4>Енкодинг CP1251</h4>
<p>Ако твоя сайт е с кодиране на текста cp1251, тогава използвай следната версия на скрипта:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;!--</span> Start ganbox.<span style="color: #660066;">com</span> Social Bookmark code v.2 <span style="color: #339933;">--&gt;&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://ganbox.com/inc/sb2cp1251.js&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;&lt;!--</span> End ganbox.<span style="color: #660066;">com</span> code <span style="color: #339933;">--&gt;</span></div></div>
<p>Предложения скрипт може да се използва без ограничение &#8222;така като е&#8220; и на твоя отговорност.<br />
Всякакви забележки и предложения са добре дошли. Ако знаеш друг сайт, който дава реални follow линкове, пиши го като коментар и може да го добавя към бутоните.</p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>416</b></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/sb2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Премахване на .html от URL адреса с mod_rewrite</title>
		<link>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/</link>
		<comments>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:02:59 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[Уеб програмиране]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[заместване на URL]]></category>
		<category><![CDATA[промяна на url]]></category>
		<category><![CDATA[урок]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=761</guid>
		<description><![CDATA[Тази статия е продължение на статията Приложна магия с mod_rewrite в htaccess и отговаря на въпрос зададен като коментар: &#8222;очаквам след като изпиша примерно: http://www.domain.com/za_nas.html – в полето за адреси да се вижда само http://www.domain.com/za_nas&#8222;.
Тъй като решението не е много лесно, защото има подслучаи, написах отговора като отделна статия.
Задача за премахване на html разширение на [...]]]></description>
			<content:encoded><![CDATA[<p>Тази статия е продължение на статията <a href="/blog/приложна-магия-с-modrewrite/">Приложна магия с mod_rewrite в htaccess</a> и отговаря на въпрос зададен като коментар: <em>&#8222;очаквам след като изпиша примерно: <a rel="nofollow" href="http://www.domain.com/za_nas.html">http://www.domain.com/za_nas.html</a> – в полето за адреси да се вижда само <a rel="nofollow" href="http://www.domain.com/za_nas">http://www.domain.com/za_nas</a>&#8222;</em>.<br />
Тъй като решението не е много лесно, защото има подслучаи, написах отговора като отделна статия.</p>
<h3>Задача за премахване на html разширение на уеб страница в адресната лента на браузъра</h3>
<p>Скриване на разширението на файла.html. Когато в браузъра се напише http://domain/page.html да се отваря html страницата, но в адреса да се замества с http://domain/page</p>
<h3>Специални изисквания за заместване</h3>
<p>Ако в една и съща директория има файл /page.html и поддиректория /page/, то потребителя трябва да получава файла, когато напише /page и директорията, когато напише /page/.</p>
<p>Ако в директорията има файл /page.html и /page.pdf (или някакъв друг различен от html), то потребителя трябва да получава /page.html, когато напише /page.</p>
<h3>Примери за поведение на пренаписващия скрипт</h3>
<p>Използва се следния формат: <span style="color: #993300;">написва</span> -&gt; <span style="color: #ff6600;">зарежда се</span> -&gt; <span style="color: #008000;">вижда в адресната лента на браузъра</span></p>
<p><span style="color: #993300;">http://domain.com/page.html</span> -&gt;<span style="color: #ff6600;"> http://domain.com/page.html</span> -&gt; <span style="color: #008000;">http://domain.com/page</span></p>
<p><span style="color: #993300;">http://domain.com/index</span> -&gt; <span style="color: #ff6600;">http://domain.com/index.html</span> -&gt; <span style="color: #008000;">http://domain.com/</span></p>
<p><span style="color: #993300;">http://domain.com/index.html</span> -&gt; <span style="color: #ff6600;">http://domain.com/index.html</span> -&gt; <span style="color: #008000;">http://domain.com/</span></p>
<p><span style="color: #993300;">http://domain.com/index.txt</span> -&gt; <span style="color: #ff6600;">http://domain.com/index.txt</span> -&gt; <span style="color: #008000;">http://domain.com/index.txt</span></p>
<p>Ако в главната уеб директория има поддиректория /doc и файл /doc.html, а в директорията doc има два файла err.html и index.html</p>
<p><span style="color: #993300;">http://domain.com/doc.html</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc</span></p>
<p><span style="color: #993300;">http://domain.com/doc</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc</span></p>
<p><span style="color: #993300;">http://domain.com/doc/</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc/index.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc/</span></p>
<p><span style="color: #993300;">http://domain.com/doc/err</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc/err.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc/err</span></p>
<p><span style="color: #993300;">http://domain.com/doc/err.html</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc/err.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc/err</span></p>
<p>Ако в поддиректорията /doc няма index.html, то при написване на http://domain.com/doc/ ще получи грешка Forbidden.</p>
<h3>Решение</h3>
<p>Следва кода за файла .htaccess любезно написан, тестван и предоставен за безплатно ползване от <a href="http://ganbox.com">ganbox.com</a></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:700px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># Спира MultiViews (за да може /abc да го търси като /abc.ext преди /abc/)<br />
</span>Options <span style="color: #339933;">+</span>FollowSymLinks <span style="color: #339933;">-</span>MultiViews<br />
<br />
DirectoryIndex index<span style="color: #339933;">.</span>html<br />
<br />
<span style="color: #666666; font-style: italic;"># Спира mod_dir, за да не добавя наклонена черта в края.<br />
</span>DirectorySlash Off<br />
<br />
RewriteEngine On<br />
<br />
<span style="color: #666666; font-style: italic;"># Ако търси /index или /index.html<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>THE_REQUEST<span style="color: #009900;">&#125;</span> \ <span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.+/</span><span style="color: #009900;">&#41;</span>?index<span style="color: #009900;">&#40;</span>\<span style="color: #339933;">.</span>html<span style="color: #009900;">&#41;</span>?<span style="color: #009900;">&#40;</span>\?<span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span>?\  <span style="color: #009900;">&#91;</span>NC<span style="color: #009900;">&#93;</span><br />
<span style="color: #666666; font-style: italic;"># го изтрива и оставя само /<br />
</span>RewriteRule ^<span style="color: #009900;">&#40;</span><span style="color: #339933;">.+/</span><span style="color: #009900;">&#41;</span>?index<span style="color: #009900;">&#40;</span>\<span style="color: #339933;">.</span>html<span style="color: #009900;">&#41;</span>?$ <span style="color: #339933;">/%</span>1 <span style="color: #009900;">&#91;</span>R<span style="color: #339933;">=</span><span style="color: #cc66cc;">301</span><span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Добавя наклонена черта в края на директория, ако няма файл с .html<br />
</span><span style="color: #666666; font-style: italic;"># Ако търси директория<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRIPT_FILENAME<span style="color: #009900;">&#125;</span><span style="color: #339933;">/</span> <span style="color: #339933;">-</span>d<br />
<span style="color: #666666; font-style: italic;"># и няма html файл с такова име<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRIPT_FILENAME<span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span>html <span style="color: #339933;">!-</span>f<br />
<span style="color: #666666; font-style: italic;"># и няма наклонена черта, я добавя.<br />
</span>RewriteRule <span style="color: #009900;">&#91;</span>^<span style="color: #339933;">/</span><span style="color: #009900;">&#93;</span>$ <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>REQUEST_URI<span style="color: #009900;">&#125;</span><span style="color: #339933;">/</span> <span style="color: #009900;">&#91;</span>R<span style="color: #339933;">=</span><span style="color: #cc66cc;">301</span><span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Изтрива HTML разширения<br />
</span><span style="color: #666666; font-style: italic;"># Ако това е заявка от браузър (а не от Apache/mod_rewrite)<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>ENV<span style="color: #339933;">:</span>REDIRECT_STATUS<span style="color: #009900;">&#125;</span> ^$<br />
<span style="color: #666666; font-style: italic;"># и заявката има HTML разширение, го изтрива.<br />
</span>RewriteRule ^<span style="color: #009900;">&#40;</span><span style="color: #339933;">.+</span><span style="color: #009900;">&#41;</span>\<span style="color: #339933;">.</span>html$ <span style="color: #339933;">/</span>$<span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#91;</span>R<span style="color: #339933;">=</span><span style="color: #cc66cc;">301</span><span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Ако в заявката има .html разширение<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRIPT_FILENAME<span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span>html <span style="color: #339933;">-</span>f<br />
<span style="color: #666666; font-style: italic;"># и няма наклонена черта, добавя .html<br />
</span>RewriteRule <span style="color: #009900;">&#91;</span>^<span style="color: #339933;">/</span><span style="color: #009900;">&#93;</span>$ <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>REQUEST_URI<span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span>html <span style="color: #009900;">&#91;</span>QSA<span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span></div></div>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>445</b></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Изключване на персонализираното търсене в Гугъл</title>
		<link>http://ganbox.com/blog/%d0%b8%d0%b7%d0%ba%d0%bb%d1%8e%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%bf%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b8%d1%80%d0%b0%d0%bd%d0%be%d1%82%d0%be-%d1%82%d1%8a%d1%80/</link>
		<comments>http://ganbox.com/blog/%d0%b8%d0%b7%d0%ba%d0%bb%d1%8e%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%bf%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b8%d1%80%d0%b0%d0%bd%d0%be%d1%82%d0%be-%d1%82%d1%8a%d1%80/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 23:19:41 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[serp]]></category>
		<category><![CDATA[персонализирано търсене]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=749</guid>
		<description><![CDATA[Какво е персонализирано търсене в Google?
В статията Какво е SERP? от август 2009 г. обяснявам за един проблем, с който се сблъскват хора, които от скоро се интересуват от SEO.
Когато търсиш по дадена ключова дума в Гугъл това търсене се запомня и ако често търсиш по една и съща ключова дума и след това влизаш [...]]]></description>
			<content:encoded><![CDATA[<h3>Какво е персонализирано търсене в Google?</h3>
<p>В статията <a href="/blog/какво-е-serp/">Какво е SERP?</a> от август 2009 г. обяснявам за един проблем, с който се сблъскват хора, които от скоро се интересуват от <a href="/seo">SEO</a>.</p>
<p>Когато търсиш по дадена ключова дума в Гугъл това търсене се запомня и ако често търсиш по една и съща ключова дума и след това влизаш в един и същ сайт, (например твоя бизнес сайт) това ще доведе до постепенно изкачване на твоя сайт в резултатите от търсенето (SERP). Това се нарича <strong>персонализирано търсене</strong> и е удобно, защото бързо намираш твоя сайт, но <span style="color: #ff0000;">този резултат се вижда само от теб и само, когато си логнат в твоя Гугъл акаунт</span> или търсиш само от един компютър. Всички други хора виждат различен резултат, при който при търсене по същата дума твоя сайт е доста по-назад в резултатите. Това може да бъде силно заблуждаващо за хора, които плащат за <a href="/seo-uslugi">SEO услуги</a>! Такива хора може да се заблудят, че фирмата за SEO услуги много бързо постига резултати, а това съвсем да не е така.</p>
<p>Това което е различно спрямо предишната статия е това, че до скоро промяна в резултатите се получаваше само, когато си логнат в Гугъл акаунта си (например в пощата gmail.com или друга уеб услуга на Гугъл), но отскоро използвайки бисквитки, Гугъл вече персонализират търсенето и без да се логваш.</p>
<p>Както се вижда от статията <a href="http://googleblog.blogspot.com/2009/12/personalized-search-for-everyone.html">Personalized Search for everyone</a> това е в сила от началото на декември 2009г.</p>
<h3>Изключване на персонализираното търсене</h3>
<p>Страницата с помощ на Гугъл, която обяснява как да се изключи персонализирането на резултатите вече е остаряла</p>
<p>http://www.google.bg/support/accounts/bin/answer.py?hl=bg&amp;answer=54048</p>
<p>Тези инструкции не са верни!</p>
<p>За временно изключване на персонализираното търсене в твоя акаунт направи следното:</p>
<p>1. Влез в google.bg и направи търсене по ключова дума. Например търси по <strong>оптимизиране </strong>{Да, наистина ganbox.com се класира добре по тази дума <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  }.</p>
<p>2. Ако си логнат, горе вдясно ще видиш връзката &#8222;Уеб история&#8220;, натисни тази връзка и отляво в менюто ще видиш връзката &#8222;Пауза&#8220;.</p>
<p>3. Натисни връзката &#8222;Пауза&#8220; и от този момент няма да се събира информация за твоя профил при извършване на търсене.</p>
<p>4. Събраната до този момент информация все още ще оказва влияние върху резултатите от търсене. Може да ползваш връзката &#8222;Изтриване на елементи&#8220; от където може да изтриеш историята на търсенията. Връзка &#8222;<span>Пълно изтриване на информацията в Посетените страници »</span>&#8220; и след това бутона [Изтриване на данните от хронологията].</p>
<p>Има още едно място с настройки, което оказва влияние върху резултатите от търсене.</p>
<p>След като си логнат, горе вдясно виждаш връзката &#8222;Настройки&#8220; което води до падащ списък, в който има връзка &#8222;Настройки за търсенето&#8220;. Натисни тази връзка и в дъното на страницата ще видиш чекбокс:</p>
<p><strong>&#8222;SearchWiki  _ </strong><label for="swoff">Възможностите за споделяне, повишаване, премахване, коментиране или добавяне на собствени резултати да се скрият. </label><a href="http://www.google.bg/support/websearch/bin/answer.py?hl=bg&amp;answer=115764">Научете повече.</a>&#8220;</p>
<p>Избери тази настройка и натисни бутона [Запазване на предпочитанията]. Това ще доведе до скриване на трите малки бутончета в края на всяка връзка в SERP и няма да имаш възможност волно или неволно да разместиш резултатите от търсенето.</p>
<p>Друг начин да видиш реалните резултати е да направиш търсене и ако горе вдясно виждаш връзката &#8222;Изход&#8220; да я натиснеш, след това изтриваш бисквитките изпратени от Гугъл и едва след това правиш търсене по ключова дума. Това ще сработи само първия път и после пак ще трябва да триеш бисквитки, затова е за препоръчване да ползваш горния метод и преди търсене да се логваш в Гугъл акаунта си.</p>
<h3>Защо да правя това?</h3>
<p>Всичко това има смисъл само, ако искаш да виждаш реалното класиране на един или друг уеб сайт при търсене по ключова дума в Гугъл. Ако не се вълнуваш от SEO, не те интересува, че виждаш резултати различни от това, което виждат всички останали и нямаш нищо против Гугъл да следи и записва, какво търсиш, то  в такъв случай игнорирай тази статия <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>492</b></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%b8%d0%b7%d0%ba%d0%bb%d1%8e%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%bf%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b8%d1%80%d0%b0%d0%bd%d0%be%d1%82%d0%be-%d1%82%d1%8a%d1%80/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google sitemap и Карта на сайта</title>
		<link>http://ganbox.com/blog/google-sitemap-%d0%b8-%d0%ba%d0%b0%d1%80%d1%82%d0%b0-%d0%bd%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%b0/</link>
		<comments>http://ganbox.com/blog/google-sitemap-%d0%b8-%d0%ba%d0%b0%d1%80%d1%82%d0%b0-%d0%bd%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%b0/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 20:17:19 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Google sitemap]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[карта на сайта]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=740</guid>
		<description><![CDATA[Забелязвам, че много хора си мислят, че Google sitemap и карта на сайта (sitemap) са едно и също нещо. Всъщност двете имат различни предназначения.
Какво е Карта на сайта?
Това е просто уеб страница, която съдържа връзки към всички основни страници на сайта. Основното предназначение на тази страница е да ориентира по-лесно посетителя на страницата. Обикновено в [...]]]></description>
			<content:encoded><![CDATA[<p>Забелязвам, че много хора си мислят, че Google sitemap и карта на сайта (sitemap) са едно и също нещо. Всъщност двете имат различни предназначения.</p>
<h3>Какво е Карта на сайта?</h3>
<p>Това е просто уеб страница, която съдържа връзки към всички основни страници на сайта. Основното предназначение на тази страница е да ориентира по-лесно посетителя на страницата. Обикновено в главното меню се поставя връзка <strong>Карта на сайта</strong> (или в дъното на сайта) и по този начин всяка от страниците е на два клика разстояние и това дава бърз достъп до тези страници.</p>
<p>Създаването на <strong>Карта на сайта</strong> има положителен <a href="http://ganbox.com/seo">SEO</a> ефект, защото търсещите машини имат лесен достъп и бързо индексират страниците включени в картата на сайта.</p>
<p>Картата на сайт може да бъде статична и динамична. Статичната карта не се променя при промяна на сайта. Динамичната карта на сайта добавя автоматично нова връзка при добавяне на нова страница или нова публикация.</p>
<p>Пример за динамична <strong>карта на сайта</strong> има на адрес:<a href="http://ipotpalmax.com/sitemap/" target="_blank"> http://ipotpalmax.com/sitemap/</a></p>
<h3>Какво е Google sitemap?</h3>
<p>Това е XML файл, който съдържа URL адресите на абсолютно всички публично достъпни страници на сайта. Тук се съдържа още информация за относителния приоритет на страницата и време на последната промяна. Единственото предназначение на този файл е да ориентира ботовете на търсещите машини и да съобщава адреса на всяка страница. Този файл може да бъде отворен през браузъра, но не е предназначен за хора и се чете трудно.</p>
<p>Пример за Google sitemap има на адрес <a href="http://ganbox.com/sitemap.xml">http://ganbox.com/sitemap.xml</a></p>
<h3>Карта на сайта или Google sitemap?</h3>
<p>При всички положения няма да ти навреди ако имаш и двете. Не забравяй, че картата на сайта е за хора и трябва да изглежда добре, тя е за бързо ориентиране и трябва да е подредена добре. Например по азбучен ред или по категории. От друга страна Google sitemap е специално за търсачките и дава повече възможности, като например указване на важността на страниците.</p>
<h3>Как се създава карта на сайта?</h3>
<p>Всъщност не е толкова лесно, колкото си мислиш. Основното което се цели в тази страница е отлична ползваемост на страницата (usability). Връзките трябва да са така организирани, че с един поглед посетителя на страницата да може да се ориентира. Тук има и един тънък момент, който често се пренебрегва &#8211; класиране в индекса на Гугъл на страницата с <strong>карта на сайта</strong>. Много често такива страници влизат в <a href="/blog/supplemental-results/">допълнителните резултати на Гугъл</a>, защото не съдържат достатъчно уникално съдържание. За избягване на това може да напишеш описание към всяка от връзките с по 2-3 изречения. Също така може да напишеш обръщение към потребителя с обяснение за какво служи тази страница. В тази страница е удачно да има търсачка и указания за ползване. Все пак причината да се намира в тази страница, е защото търси нещо и не може да се  ориентира.</p>
<h3>Как се създава Google sitemap?</h3>
<p>За статични сайтове с малко на брой страници, може да се създаде ръчно с текстов редактор или като се използва уеб инструмент Sitemap generator. Например http://www.xml-sitemaps.com. При динамичните сайтове, които често се променят е необходимо написването на специален скрипт, който създава и променя автоматично XML файла при всяка промяна в съдържанието на сайта. При блогове като този може да се ползва Google sitemap generator плъгин, който не само създава XML файл, а може да уведомява търсещите машини за извършените промени. Това води до почти моментално индексиране на новата ти страница. След като файла е готов съобщи на търсачките за него, като във файла robots.txt напишеш</p>
<pre>Sitemap: http://domain.com/sitemap.xml</pre>
<p>където domain.com е името на твоя сайт. Пример във файла http://ganbox.com/robots.txt</p>
<h3>Примери за грешки в Google sitemap</h3>
<h4>1. Гугъл не знае за твоя Google sitemap.</h4>
<p>Съвсем наскоро работейки за мой клиент бях поразен от небрежността на уеб агенцията създала сайта. Клиентът беше платил за динамичен Google sitemap и наистина имаше такъв, но Гугъл просто не знаеше за него. Не беше описан в robots.txt, не беше изпратен в GWT и дори не беше на стандартен уеб адрес като domain.com/sitemap.xml. Говорим за много известна уеб агенция работеща от 1998г. (разбира се няма да спомена името и тук). Резултатът е, че все едно няма Google sitemap.</p>
<h4>2. Различни линкове в Google sitemap.</h4>
<p>По лош вариант е, когато XML файла съдържа грешни URL адреси. Виждал съм следния случай. Скриптът генерира Google sitemap с адреси подобни на:</p>
<pre>http://domain.com/index.php?product_id=1
<pre>http://domain.com/index.php?product_id=2
</pre>
</pre>
<p>След това на сайта се извършва SEO и <a href="http://ganbox.com/blog/приложна-магия-с-modrewrite/">уеб адресите се съкращават с htaccess</a> до:</p>
<pre>http://domain.com/p1</pre>
<pre>http://domain.com/p2</pre>
<p>но в XML файла все още стоят старите адреси. Този случай е по-лош от това да няма Google sitemap.</p>
<p>Друг случай на който съм попадал е скрипт за генериране на Google sitemap, в който домейна е хардкоднат. Лошото беше, че скрипта беше взет от друг сайт <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>3. Грешно зададени приоритети</h4>
<p>Много често приоритета на всички страници е зададен като 0.5. Това е равносилно на това да няма зададени приоритети. Кажи на Гугъл кои страници са най-важни за теб с атрибута за приоритет.</p>
<h4>4. Грешен формат на XML файла</h4>
<p>Всеки път, когато се наложи да промениш ръчно файла го проверявай за грешки с валидатор. Например http://www.xml-sitemaps.com/validate-xml-sitemap.html</p>
<h3>Заключение</h3>
<p>Картата на сайта е важна за потребителите и създава доверие в сайта. Google sitemap е важен за <strong>SEO оптимизацията</strong> на сайта. Каквато и карта на сайта да имаш обаче, нищо няма да помогне за индексирането на дадена страница, ако тя няма достатъчно уникален текст.</p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>444</b></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/google-sitemap-%d0%b8-%d0%ba%d0%b0%d1%80%d1%82%d0%b0-%d0%bd%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%b0/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
