SEO pro laiky, aneb jak dostat stránku do výsledku Google vyhledávače

Jul|22 2012

Vytvořit webovou prezentaci je dneska pomocí služeb jako webnode, netstranky nebo estranky hračkou. Zkušenější weboví developeři vytvoří stránky pomocí WYSIWYG programu, ručně nebo vybudují aplikaci i s logikou na serveru. Ať už je postup jakýkoliv, dostaneme se do stavu, kdy jsou stránky umístěny na veřejně dostupném serveru a nyní chceme na stránky nalákat návštěvníky. Následujících pár rad a informací by mohlo pomoci tomu, kdo se s tímto úkolem zatím nesetkal.

V základu se na stránky dostane člověk těmito způsoby: do prohlížeče zadá přímo adresu stránek, klikne na odkaz nebo reklamu na některém jiném webu nebo stránku vyhledá pomocí vyhledávače. Z tohoto nejvíce magická a zahalená tajemstvím je možnost poslední, kolem které se díky tomu vybudovalo celé nové odvětví, zvané SEO, neboli optimalizace pro vyhledávače. V našich podmínkách již můžeme brát v vahu pouze dva nejsilnější hráče, jsou jimi Seznam a Google, pomocí nichž vyhledává drtivá většina tuzemských potencionálních návštěvníků a ani jeden z nich bychom neměli ignorovat. Jejich cíl je jednoduchý - pro libovolnou frázi se snaží vrátit relevantní výsledky, tedy adresy, kterými jsou buďto celé weby nebo konkrétní pod-stránky.

První věcí, kterou by si začínající SEO optimalizátor měl položit, je, na které dotazy chce být mezi nalezenými výsledky. A pak se snaží všemi možnými způsoby přesvědčit vyhledávač, že právě jeho stráka je tou nejlepší, tedy nejrelevantnější. Jenže jak na to?

Jak o sobě dát vyhledávači vědět

V první řadě se o stránce musí vyhledávač nějak dozvědět. Google například nabízí celou řadu nástrojů, dostupnou pod Webmaster tools, díky které může majitel vyhledávači pomoci s indexací stránek. Sitemap, tedy XML dokument, místěný na daném webu a popisující strukturu webu, je základ, který by měl být googlu předložen, aby si mohl patřičně zaindexovat všechny pod-stránky webu.

Jinou možností, jak se Google nebo Seznam dostane na jednotlivé stránky, jsou zpětné odkazy, tedy odkazy, které směřují na danou stránku. Určitě není od věci takové odkazy vyrobit, kdy nejjednodušší je stránku zaregistrovat do nějakých katalogů stránek. Výhodou je skutečnost, že stránky s více zpětnými odkazy jsou vesměs brány jako více relevantní. Několik let zpátky byl dokonce počet zpětných odkazů nejdůležitější parametr. To se dnes již změnilo a větší důraz klademe na kvalitu stránky a webu jako takového.

Technologická kvalita stránky

V druhé řadě bychom měli stránky mít přívětivé pro roboty indexující obsah. To znamená mít čisté HTML, pokud možno bez obsahu načítaného pomocí JavaScriptu, zapomeňte na Flash, styl definujte pomocí CSS a používejte HTML tagy v jejich správném významu. Dobrou strukturu nadpisů a několik dalších měřítek kontrolují různé SEO analyzátory, kterých na webu najdeme nepřeberně. U obrázků bychom neměli zapomenout na popisky, indexační roboti zatím nejsou tak chytří, aby si obrázek sami rozpoznali.

Jak stránku vidí indexační roboti, si můžeme zkontrlovat, pokud v prohlížeči vypneme styly CSS. V tom případě by měl být na prvním místě hlavní obsah webu, potom řídící prvky, menu a případně obsah postranních banerů. Vytvořit tzv. SEO-friendly stránku opět nalezneme mnoho, pokud v prohlížeči zadáme frázi "SEO optimalizace".

Na obsahu záleží

Jako poslední v řadě jsem si nechal v současné době určitě tu nejdůležitější oblast - obsah. Pokud budete mít perfektní HTML a mnoho zpětných odkazů, ale obsah stránek nebude nabízet nic zajímavého, návštěvníky tam buďto nedostanete vůbec nebo si je neudržíte. A tím pádem tyto stránky nejsou zajímavé ani pro vyhledávače, které se snaží nabídnout uživatelům jen to, co opravdu hledají.

Vyrábět stránky bez vědomí, co chci návštěvníkům nabídnout, je dnes spíše výjimkou a nějakou představu většinou máme. Často ale vidím spíš omezenou představu, nabízející jen nutné minimum. Vytvoříme tak stránku, která možná splní účel, ale nebude vyčnívat mezi ostatními. Například kromě kontaktních informací a stručného výčtu toho, co má návštěvník u dané instituce hledat, stránka nic dalšího neobsahuje. To určitě nestačí, aby se návštěvník na stránky vrátil, vracel se tam pravidelně nebo stránku dokonce doporučil kamarádům prostřednictvím sociálních sítí. Když už jsme u nich, nezapomeňte na stránku umístit tlačítka pro sdílení a usnadnit tak návštěvníkům sdílení stránky.

A o čem tedy psát, když mě nic nenapadá? Pište o tom, co děláte, co se daří, i nedaří. Přibližte svůj business lidem, jak probíhá pracovní den, co jste během dne pozorovali netradičního. Pište odborné články nebo články pro laiky, přidávejte fotky s komentáři. Co do formy se může jednat o trvalou statickou stránku, blog nebo krátké novinky. A v neposlední řadě se můžete inspirovat konkurenčními weby.

Čeho se držet při psaní článků

Při psaní textů bychom měli v první řadě pamatovat na cílovou skupinu, použití klíčových slov nebo frází by mělo být umírněné a přirozené, aby člověka nijak neobtěžovalo. Dlouhé texty zároveň nejsou moc oblíbené, stručnější články s kratšími větami i odstavci jsou čtivější a pozornost bychom měli věnovat i gramatice. Není většího trapasu, než hrubá chyba ve shodě podmětu s přísudkem na homepage nebo dokonce v titulku.

Berte tento článek spíše jako lehký úvod k problematice, určitě zdaleka nepokrývá nějak velkou část a další samostudium je nutností. Rada na závěr je jednoduchá - tvořte web pro lidi, ne pro vyhledávače.

Tags: Internet | Programování | Prohlížeče | Sítě | Počítače | Google | Facebook | Vývoj



Legrace s Beefy Miracle aneb upgrade z Fedory 16 na Fedoru 17

Jun|13 2012

Fedora 17 - Beefy MiracleNová Fedora 17 přináší kromě mnoha jiných novinek i jednu, na kterou je dobré myslet i při samotném upgradu. Možná se bude někomu hodit stručný popis, jak upgrade z Fedory 16 probíhal u mě.

Výchozí návod, ze kterého jsem vycházel, najdete na: https://fedoraproject.org/wiki/Upgrading_Fedora_using_yum

Nová featura, zmíněná v prvním odstavci, je označena UsrMove a v podsstatě jde o sjednocení adresářů /lib do /usr/lib, /bin do /usr/bin a /lib64 do /usr/lib64. Původní jména budou samozřejmě kvůli zpětné kompatibilitě nahrazeny symbolickými odkazy.

Před samotným upgradem nezapomeňte zálohovat vše důležité a není špatné updatovat na poslední verzi balíky v současné distribuci. Package maintainaři totiž vždy počítají zejména s možností, kdy se ugraduje z poslední dostupné verze balíku. Jiné updaty, přeskakující několik buildů, nemusí být vždy stoprocentní.

Oficiální dokumentace sice doporučuje pomocí telinit 3 přepnout do rozhraní bez grafického prostředí, nicméně u mě upgrade (kromě malého zaváhání v závěru) proběhl v pořádku přímo z Gnome terminálu. Pojďme se tedy pustit do prvního kroku, kterým je update balíků současné distribuce:

# yum update all

Ugrade začneme importováním klíče:

# rpm --import https://fedoraproject.org/static/1ACA3465.txt

Nyní provedeme konverzi filesystému, související právě s UsrMove:

dracut --force --add convertfs

Nicméně, toto nestačí, protože UsrMove je z hlediska upgradu existujícího systému celkem náročná operace. Nyní je čas upravit dočasně konfiguraci grubu, v našem případě budeme editovat soubor /etc/grub2/grub.cfg. Konkrétně můžeme zduplikovat pod jiným označením nejnovější položku a provést následující změny:

Odebereme "ro" a "rhgb" voby a přidáme místo nich "rw", "rd.info", "rd.convertfs" a "enforcing=0". Poté můžeme restartovat systém a doufat, že naběhne v pořádku, již s uzly /bin, /lib a /lib64 ve formě symbolických odkazů. V tuto chvíli můžeme vymazat dočasnou položku v /etc/grub2/grub.cfg a neměli bychom příliš otálet se samotným upgradem, který je doporučen provádět pomocí těchto kroků:

# rm -f /var/lib/rpm/__*
# rpm --rebuilddb
# yum --releasever=17 update rpm
# rm -f /var/lib/rpm/__*
# rpm --rebuilddb
# yum --releasever=17 --disableplugin=presto distro-sync
# fixfiles onboot

Po rebootování jsem čekal hladký náběh do F17, jenže ejhle, nový kernel dostal záchvat paniky a odmítl se spustit. Později jsem zjistil, že důvodem paniky byl chybějící soubor initramfs-3.4.0-1... a tím pádem i chybějící řádek initrd v grub menu. Kromě toho se také nějakým nedopatřením neodinstaloval balík fedora-release-16-1, zatímco fedora-release-17-1 již byl nainstalován a měl tedy starší verzi automaticky nahradit. Tento fakt měl za následek to, že jako výchozí repositář se stále bral ten z Fedory 16.

Jak tedy z toho ven? Nezbývalo než nabootovat do staršího kernelu 3.3, odinstalovat přebývající fedora-release-16-1 a nainstalovat novější kernel (případně reinstalovat původní 3.4.0). Zvolil jsem novější, nicméně nestačilo pouze zadat příkaz yum update kernel, dokonce ani yum update kernel --enablerepo=updates-testing, protože z nějakého důvodu není novější kernel dosud zařazen mezi updaty. Sáhl jsem tedy k manuálnímu stažení, přímo z buildovacího systému Koji a stáhl nové jádro kernel-3.4.2-1.fc17. Oba kroky tedy vypadaly takto:

# yum remove fedora-release-16-1
# yum install ./kernel-3.4.2-1.fc17.x86_64.rpm

Při následném restartu jsem ještě jednou uviděl panikující kernel, nicméně při bootování do nového 3.4.2 už běželo vše bez problému.

Přeji mnoho úspěchů s novou Fedorou 17 alias Beefy Miracle!

Tags: Počítače | Linux | Fedora | Operační systém | Open-source



Otevřená budoucnost i jinde než v IT?

Apr| 9 2012

Na přítomnost open source, tedy otevřeného a volně šířitelného zdrojového kódu jsme si již zvykli. Dokonce není tajemstvím, že se na takovém softwaru zdarma dá celkem slušně vydělat - například firma Red Hat letos na podpoře open source softwaru tržila přes miliardu dolarů. Asi nejen mě v tu chvíli napadá, jestli se tento model nedá přenést i do jiných, nejenom inženýrských, odvětví.

Výhodou otevřeného kódu je zejména tranparentnost a o to větší bezpečnost a často i kvalita aplikací, nízké náklady na provoz a díky otevřeným standardům i nízké náklady na přechod k jinému poskytovateli. Široká základna vývojářů okolo open source projektů může mít dnes stejnou tržní sílu jako ohromné korporátní společnosti. Napadá mě tedy, proč něco takového nevidíme například ve strojírenství nebo stavebnictví?

Paralela mezi softwarem a výkresem

Srovnáme-li stavební výkres, strojařský výkres nebo zdrojový kód počítačového programu, v zásadě se jedná o předpis, jak něco vytvořit. V případě zdrojového kódu na provoz potřebujeme počítač, ve strojařině frézu a ve stavebnictví cihly. Jedná se tedy vždy o nějaké médium, které potřebuje lidskou obsluhu a nějaký předpis, který je pro úspěšnost celku vždy klíčový.

Z tohoto pohledu mi přijde, že stejně jako na zdrojovém kódu by mohli po světě spolupracovat skupiny mladých strojařů vedle zkušenějších kolegů na projektech všeho druhu a postupně tak navrhovat například model automobilu, výtahu, horské dráhy, mrakodrapu nebo pasivního rodinného domku. Dělali by to ve volném čase, v rámci školních projektů, sbírali by cenné zkušenosti a občas dostali od spokojeného zákazníka nějakou menší odměnu. Proč takový model zatím nikde nefunguje, přesto že mnoho nejen školních projektů takto zůstává zapomenuto a studenti vyjdou ze školy bez dokazatelné praxe?

Otevřenost jako obecný koncept je již propagována několika institucemi, například licence Creative Commons se již dostala do povědomí a začínají dokonce existovat weby cílené na otevřenost dat ve státní správě (Open data). Takže by se mohlo zdát, že vydat výres rodinného domku pod volnou licencí by neměl být takový problém.

Kde je hlavní problém?

Jedna velká překážka tu přeci je. V porovnání se psaním zdrojového kódu potřebujeme k vytvoření a úpravám strojařských a stavebních projektů většinou velmi drahý a specializovaný software. A nejde jen o aplikace, ale i o formáty, které by musely být naprosto transparentní, otevřené a srandardizované. Zde je problém, kterým bychom se s vidinou lepší budoucnosti měli zabývat.

Jsem celkem zvědavý, jestli se společnost někdy dostane do situace, kdy bude existovat copy-left alternativa k současnému uzavřenému modelu z pohledu právě strojařiny nebo stavařiny. S pomocí internetu a v době krize asi nebyla vhodnější příležitost se nad takovým počinem alespoň zamyslet. Komukoliv, kdy má podobný zájem, držím palce

Jak otevřenou vidíte budoucnost vy?

Tags: Open-source | Internet | Počítače | Vývoj



Jak přidat vlastní položku do menu v grub 2?

Mar|30 2012

Grub 2 změnil logiku, jakým způsobem jsou do menu přidávány položky. Místo editace jednoho souboru menu.lst se nyní používají skripty, jejichž výstupem je soubor podobný dřívějšímu, nicméně tento už není určen pro další editaci. Jak tedy přidat položku do menu, která není automaticky rozpoznána již existujícími skritpy?

Odpověď je jednoduchá, vytvoříme si vlastní skript. Ty jsou uloženy ve složce /etc/grub.d a jsou spouštěny podle jména, proto obsahují na začátku číslo. Změnou pořadí můžeme ovlivnit pořadí položek v menu zavaděče.

Řekněme, že chceme přidat starší systém nainstalovaný na jiném LVM oddílu, např. /dev/mapper/vg_main-lv_fc15. Jádro tohoto systému potom bude na fyzickém oddílu s uuid a1e9953e-4c4c-43ff-bdd7-faf6ca6df777. Systém chceme mít až jako poslední, vytvoříme tedy soubor s právy 755 /etc/grub.d/50_myothers s tímto obsahem:

#! /bin/sh

# Tento text bude zobrazen pri generovani konfiguracniho souboru
echo "Adding FC15 by manual configuration" >&2

cat <<EOF
menuentry "Red Hat Enterprise Linux Server release 6 (Santiago) (2.6.32-220.el6.x86_64) 
(on /dev/mapper/vg_main-lv_rhel6)" --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root a1e9953e-4c4c-43ff-bdd7-faf6ca6df776
        linux /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_main-lv_rhel6 
rd_LVM_LV=vg_main/lv_rhel6 rd_LVM_LV=vg_main/main_swap rd_NO_LUKS rd_NO_MD rd_NO_DM 
LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=cz-us-qwertz rhgb quiet
        initrd /initramfs-2.6.32-220.el6.x86_64.img
}
EOF

Potom vygenerujeme samotný soubor s konfiguraci:

# /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg

Nakonec můžeme restartovat a modlit se, že v menu bude funkční položka "Fedora 15 (2.6.35-10.fc15.x86_64) (on /dev/mapper/vg_main-lv_fc15)" a po jejím zvolení naběhne požadovaný systém.

Tags: Počítače | Linux | Fedora | Operační systém



Šifrované připojení k MySQL serveru s vlastnoručně podepsaným certifikátem

Feb|24 2012

On-line manuál MySQL nám celkem dobře vysvětlí, jaké argumenty použít pro šifrované připojení klienta k serveru. Pojďme se ale podívat na veškeré kroky, které musím jako "správce" serveru provést, tedy včetně generování klíčů a certifikátu, včetně elektronického podpisu.

V první řadě bych chtěl zdůraznit, že následující řádky by neměl brát do úvahy administrátor produkčního serveru. Ten by měl používat výhradně certifikáty podepsané důvěryhodnou certifikační autoritou. Následující způsob lze využít pro testování nebo v případě vzdálené komunikace se serverem, která z nějakého důvodu musí být šifrována.

Generování veřejného a soukromého klíče pro server

V prvním kroku vygenerujeme soukromý klíč pro server:

openssl genrsa -out server.key 1024

V případě potřeby veřejný klíč vygenerujeme ze soukromého následujícím příkazem, nicméně pro účely zabezpečení spojení ho nebudeme potřebovat.

rsa -in server.key -pubout > server.pub

Jak vytvořit a na co slouží Certificate Signing Request

Jedná se o zprávu, která obsahuje informace o majiteli budoucího certifikátu. Ten se odesílá certifikační autoritě, my ho ale použijeme pro vytvoření vlastnoručně podepsaného certifikátu.

openssl req -new -key server.key -out server.csr

Generování certifikátu

Certifikát by měl mít rozumnou délku platnosti, v produkci běžně rok, pro testování můžete zvolit jinou rozumnou dobu. Pro vygenerování samotné použijeme soubor vygenerovaný v minulém kroku a openssl utilita se nás zeptá na několik informací o majiteli certifikátu:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Certifikát můžeme vytvořit i přímo z privátního klíče, bez generování souboru server.csr:

openssl req -new -x509 -key example.com.key -out example.com.cert -days 3650 -subj /CN=example.com

Nyní potřebujeme umístit certifikát do adresáře a to tak, aby byl čitelný uživatelem, pod kterým běží náš MySQL server, typicky uživatel mysql. Pozor si musíme dát i na SELinux kontext (pokud je aktivní), který může zabránit přečtení souborů démonem. Následující sekvenci příkazů můžete brát jako inspiraci:

# mkdir /usr/share/mysql/testcerts
# cp server.{crt,key} /usr/share/mysql/testcerts
# chown -R mysql:mysql /usr/share/mysql/testcerts
# restorecon -r /usr/share/mysql/testcerts

Vygenerovaný certifikát spolu se soukromým klíčem použijeme v konfiguračním souboru démona MySQL:

[mysqld]
ssl-ca=/usr/share/mysql/testcerts/server.crt
ssl-cert=/usr/share/mysql/testcerts/server.crt
ssl-key=/usr/share/mysql/testcerts/server.key

Rychlá a snadná cesta, jak vytvořit certifikát pro testování:

Jednoduchá stránka, jednoduché ovládání. Pouze uvedete doménu (můžete bez problému použít example.com) a aplikace vám vygeneruje dvojici soukromého klíče s vlastnoručně podepsaným certifikátem.

http://www.selfsignedcertificate.com

Zdroje:

http://dev.mysql.com/doc/refman/5.0/en/secure-using-ssl.html
http://www.akadia.com/services/ssh_test_certificate.html
http://www.chriscalender.com/?p=448

Tags: Internet | Programování | Databáze | Bezpečnost | Linux | Fedora



Obnova grub2 ve Fedoře 16 po instalaci Windows

Dec| 6 2011

Tuhle pohádku zná snad každý linuxák, který někdy zatoužil po dual bootu s M$ Windows. Po instalaci oken mu zbude mašina poslušně bootující pouze M$ operační systém, protože ten při instalaci bez mrknutí oka přepsal bootovací partišnu a tím i zavaděč grub.

Jak obnovit grub 1 se dočtete například zde. Ve Fedoře 16 již ale konečně najdeme grub 2, ovšem k mému nemilému předkvapení není jednoduché tuto novější verzi dostat zpátky. Nyní nabízím postup, který nakonce zafungoval:

  • seženěte si, vypalte (nebo nahrajte na USB disk) a nabootujte nějaký linux s grub 1 (např. Fedora 15)
  • zalogujte se jako root:
  • $ su -
  • spusťte interaktivní grub:
  • # grub
  • najděte svojí boot partišnu:
  • grub> find /grub/stage1
  • řekněme, že předchozí příkaz vyhodil (hd0, 0)
  • grub> root (hdx, y), tedy v našem případě root (hd0, 0)
  • grub> setup (hdx), tedy v našem případě setup (hd0)
  • po restartu by již měl být funkční grub verze 1, tedy můžeme nabootovat do původní Fedory 16
  • zalogujeme se opět jako root a obnovíme grub 2:
  • $ su -
  • # /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
  • # /sbin/grub2-install /dev/sda

V tuto chvíli s trochou štěstí máme obnovený grub2, který již ví o všech nainstalovaných operačních systémech, resp. verzí kernelu, stejně jako o nově nainstalovaném Windows.

Cest, jak dosáhnout stejného výsledku, je samozřejmě mnoho, zde uvádím jednu, která po dlouhém bádání zafungovala u mě, přičemž přímořařejší varianty selhaly.