SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Jaroslav
Hlavinka
SEO konzultant v Seznam.cz
Jaroslav@Hlavinka.cz
@neologyc
Kontinuální
testování
SEO
Dneska se budeme bavit o „hlídání“
SEO velkých webů, které se často mění
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
• Změní se obsah v robots.txt
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
• Změní se obsah v robots.txt
• Změní se titulky – nenahradí se %%COUNT%%
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
• Změní se obsah v robots.txt
• Změní se titulky – nenahradí se %%COUNT%%
• Změní se popisky a OG tagy
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
• Změní se obsah v robots.txt
• Změní se titulky – nenahradí se %%COUNT%%
• Změní se popisky a OG tagy
• Změní se obsah meta KEYWORDS
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
• Změní se obsah v robots.txt
• Změní se titulky – nenahradí se %%COUNT%%
• Změní se popisky a OG tagy
• Dělám si srandu 
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
• Změní se obsah v robots.txt
• Změní se titulky – nenahradí se %%COUNT%%
• Změní se popisky a OG tagy
• Text na stránce je jiný, než očekávaný
Rozbité SEO
• Přestanou fungovat stará 301 přesměrování
• Self-canonical vedou na jiné URL
• Zmizí rel next prev
• Na důležité stránce přibude meta noindex nofolow
• Z nedůležité stránky zmizí meta noindex nofollow
• Změní se obsah v robots.txt
• Změní se titulky – nenahradí se %%COUNT%%
• Změní se popisky a OG tagy
• Text na stránce je jiný, než očekávaný
• atd. atd. atd. a ještě jednou a tak dále
„Posrat se může cokoli, kdykoli!”
- Jarda Hlavinka
Proč?
• Prostě se to děje
• Trochu častěji se to děje při nasazení nové verze, hotfixech,
refaktoringu.
• Ať na to vývoj myslí 
„Co jde, to testujte!
Automaticky.”
- Jarda Hlavinka
Kde testovat? Typové stránky.
• Homepage
• Výpis kategorie
• Výpis kategorie + stránkování
• Výpis kategorie + 1 filtr
• Výpis kategorie + 1 filtr + stránkování
• Výpis kategorie + 2 filtry
• Výpis kategorie + 2 filtry + stránkování
• Detail
• Detail + varianta
• Kategorie + lokalita
• Kategorie + lokalita + stránkování
• Chybové stránky
• Přesměrování
Co testovat?
• Fungují historická přesměrování?
• Chyby vrací správný HTTP kód?
• Robots.txt se nezměnil?
• Sitemap.xml existuje?
• Titulky, popisky, OG tagy jsou nastaveny správně?
• Canonical, hreflang, rel prev next jsou nastaveny správně?
• Meta robots jsou/nejsou nastavena?
• Jsou na stránce strukturovaná data?
• Jsou správně nastaveny nadpisy?
• Jsou na stránce texty, které očekávám?
• V textu se správně nahradily placeholdery/proměnné?
• Jsou v článcích interní odkazy a vedou kam mají?
• Nevypadly mi na webu po updatu WP, pluginů, nebo
template nějaké moduly (typicky v sidebar, na homepagi)?
Best practise
• Každou novou netradiční a testy nepokrytou SEO vlastnost
si přidejte do testů.
• Pokud vám něco rozbije SEO třeba i na jiném projektu, tak
si ta pravidla přidejte a sledujte to všude.
„Zapojte testování SEO
do práce vývojářů!”
- Jarda Hlavinka
Zapojte SEO testy do kontinuálního vývoje
Zapojte SEO testy do kontinuálního vývoje
Testy SEO před nasazením do produkce
• .test / .dev (dokud fungují)
• Pouštět v testovacím prostředí před každým nasazením
• Odpovědná osoba dostane email o chybě
• SEO konzultant dostane email o chybě
Testy SEO v produkci
• Testy oproti .cz (produkce)
• Pouštět každých pár minut až hodin na produkci
• Podle velikosti webu, důležitosti testu a
pravděpodobnosti změny
• Odpovědná osoba dostane email o chybě
• SEO konzultant dostane email o chybě
Jak testovat?
• Puppeteer – Chrome Headless
• Selenium testy, BrowserStack Automate
• Vlastní skripty – např. SEO robot
hlavinka.cz/seorobot
Co to umí?
1. Stáhne URL
2. Ověří, jestli sedí HTTP kód
3. Ověří, jestli je na stránce očekávaný obsah a „nastavení SEO”
4. V případě chyby pošle email se souhrnem chyb
Ukázka výsledku SEO testu
Jak to nainstalovat? (jednoduchá verze)
• Je to řešení, které si každy sám nainstaluje k sobě na server
• Nemá žádný admin
• Potřebuju server s PHP,
• Doménu,
• Cron,
• SMTP,
• znalost základů PHP, nebo HTML (s trochou fištrónu to poskládáte)
• Nepotřebuje databázi.
• Celá napověda: https://git.io/f4QAH
Nastavení SMTP emailu podle nápovědy
• https://git.io/f4QAH
• V souboru SEO-ROBOT/settings/settings.php
Nastavení prvního projektu
• https://git.io/f47kZ
• V souboru SEO-ROBOT/settings/settings.txt
Vytvoření prvního projektu
• Unikátní název projektu:
• sbazar.cz
• Cesta k souboru robots.txt, který si uložíš k sobě na server:
• 'robotsTxtFile' => './settings/robots.txt/sbazar.txt’
• URL robots.txt na serveru:
• 'robotsTxtURL' => 'https://www.sbazar.cz/robots.txt’
• Cesta k souboru s testovacími pravidly:
• 'testRules' => './settings/tests/sbazar.txt’,
• User-agent:
• 'curl_useragent' => 'SEO test',
• Email:
• 'email' => 'email-kam-poslat-report@seznam.cz'
Nastavení testovacích pravidel projektu
• https://git.io/f4QhQ
• V souboru SEO-ROBOT/settings/tests/NECO.txt
• V našem případě: SEO-ROBOT/settings/tests/sbazar.txt
Nastavení testovacích pravidel projektu
• Na každém řádku zvlášť v tomto pořadí:
• URL
• HTTPS kód
• Pravidla (může jich být 0 až nekonečno)
• #
Pravidla
• 4 parametry:
• Jak se má porovnat? 6 přednastavených pravidel
• Xpath (https://codebeautify.org/Xpath-Tester +
cheatsheet)
• Pořadí Xpath v DOMu (nejčastěji 0)
• Co je v tom Xpath očekáváno?
• Oddělovač ;;
Pravidla
• plaintext - vybere jen text elementů bez HTML tagů
• content - vybere obsah meta tagů
• href - vybere obsah atributu href například v odkazech,
nebo rel canonical
• plaintextContains - zjistí, jestli plaintext HTML tagu
zadaného pomocí Xpath obsahuje zadaný text
• contentContains - zjistí, jestli content HTML tagu zadaného
pomocí Xpath obsahuje zadaný text
• hrefContains - zjistí, jestli atribut href HTML tagu zadaného
pomocí Xpath obsahuje zadaný text
Příklady hotových pravidel
• plaintext;;//title;;0;;Renault Trafic. - Sbazar.cz
• content;;meta[name="robots"];;0;;noindex,nofollow
• href;;link[rel="canonical"];;0;;https://www.sbazar.cz
• hrefContains;;link[rel="prev"];;0;;/3
• plaintext;;#box8 > div > div > ul > li;;2;;něco
Pravidelně spouštět
• CRON – www.domena.cz/seorobot/?id=sbazar.cz
• Co 20 minut u větších webů může být OK
Done
Co teď udělat?
• Zjistěte u vývojářů, jestli už testují weby před nasazením a v
produkci:
• ANO: nasáčkujte se jim do testů i s pravidly pro testování
SEO
• NE: naočkujte je tím, co jste se dozvěděli – sami přijdou s
nejlepším technickým řešením
• Pokud je vývoj neprůchozí, tak si sami nastavte testování
aspoň v produkci třeba pomocí SEO robota.
TODO – Co do SEO robota přibude?
• Pravidla
• REGEX
• Doesn´t contain
• Automatické stahování a ověřování robots.txt a jeho
aktualizace při změně
Děkuji za
pozornost
Jaroslav Hlavinka
Jaroslav@Hlavinka.cz
Twitter: @neologyc

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

How to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google DiscoverHow to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google Discover
 
E-Commerce SEO Horror Stories : How to tackle the most common issues 
at scal...
E-Commerce SEO Horror Stories : How to tackle the most common issues 
at scal...E-Commerce SEO Horror Stories : How to tackle the most common issues 
at scal...
E-Commerce SEO Horror Stories : How to tackle the most common issues 
at scal...
 
A Simple method to Create Content using NLP
A Simple method to Create Content using NLP A Simple method to Create Content using NLP
A Simple method to Create Content using NLP
 
Paige Hobart - How to do GOOD Keyword Research - Search Advertising Show 2021
Paige Hobart - How to do GOOD Keyword Research - Search Advertising Show 2021Paige Hobart - How to do GOOD Keyword Research - Search Advertising Show 2021
Paige Hobart - How to do GOOD Keyword Research - Search Advertising Show 2021
 
Building a Search Intent-Driven Website Architecture (SEO Mastery Summit 2022...
Building a Search Intent-Driven Website Architecture (SEO Mastery Summit 2022...Building a Search Intent-Driven Website Architecture (SEO Mastery Summit 2022...
Building a Search Intent-Driven Website Architecture (SEO Mastery Summit 2022...
 
SEO Orientado a Resultados #DigitalZAC 2022
SEO Orientado a Resultados #DigitalZAC 2022SEO Orientado a Resultados #DigitalZAC 2022
SEO Orientado a Resultados #DigitalZAC 2022
 
No More "It Depends" - Learn to Set your Visual SEO Resources #LondonSEOMeetu...
No More "It Depends" - Learn to Set your Visual SEO Resources #LondonSEOMeetu...No More "It Depends" - Learn to Set your Visual SEO Resources #LondonSEOMeetu...
No More "It Depends" - Learn to Set your Visual SEO Resources #LondonSEOMeetu...
 
The Worst Technical SEO Nightmares and How to Avoid Them
The Worst Technical SEO Nightmares and How to Avoid ThemThe Worst Technical SEO Nightmares and How to Avoid Them
The Worst Technical SEO Nightmares and How to Avoid Them
 
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
 
EAT: Have We Been Looking At It Backwards
EAT: Have We Been Looking At It BackwardsEAT: Have We Been Looking At It Backwards
EAT: Have We Been Looking At It Backwards
 
Make SEO Audits that Matter & Get Implemented for Success
Make SEO Audits that Matter & Get Implemented for SuccessMake SEO Audits that Matter & Get Implemented for Success
Make SEO Audits that Matter & Get Implemented for Success
 
How to Grow your Organic Search Traffic in International Markets #ConnectaBern
How to Grow your Organic Search Traffic in International Markets #ConnectaBernHow to Grow your Organic Search Traffic in International Markets #ConnectaBern
How to Grow your Organic Search Traffic in International Markets #ConnectaBern
 
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
 
Goodbye SEO fck ups! Learn to set an SEO Quality Assurance Framework
Goodbye SEO fck ups! Learn to set an SEO Quality Assurance FrameworkGoodbye SEO fck ups! Learn to set an SEO Quality Assurance Framework
Goodbye SEO fck ups! Learn to set an SEO Quality Assurance Framework
 
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegonGoogle Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
 
A beginner's guide to machine learning for SEOs - WTSFest 2022
A beginner's guide to machine learning for SEOs  - WTSFest 2022A beginner's guide to machine learning for SEOs  - WTSFest 2022
A beginner's guide to machine learning for SEOs - WTSFest 2022
 
Data Driven SEO in iGaming niche
Data Driven SEOin iGaming nicheData Driven SEOin iGaming niche
Data Driven SEO in iGaming niche
 
Why Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody HardWhy Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody Hard
 
TechSEO Boost - Apps script for SEOs
TechSEO Boost - Apps script for SEOsTechSEO Boost - Apps script for SEOs
TechSEO Boost - Apps script for SEOs
 
How to Develop International SEO Audits for Success #IntSS
How to Develop International SEO Audits for Success #IntSSHow to Develop International SEO Audits for Success #IntSS
How to Develop International SEO Audits for Success #IntSS
 

Ähnlich wie Kontinualni testovani a monitoring SEO - SEO robot

SEO - optimalizace pro vyhledávače
SEO - optimalizace pro vyhledávačeSEO - optimalizace pro vyhledávače
SEO - optimalizace pro vyhledávače
seznamVyvojari
 
Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...
Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...
Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...
Jan Kalianko
 
Jak (ne)pokazit redesign webu
Jak (ne)pokazit redesign webuJak (ne)pokazit redesign webu
Jak (ne)pokazit redesign webu
Taste Medio
 
Seo Pro Drupal Developery
Seo Pro Drupal DeveloperySeo Pro Drupal Developery
Seo Pro Drupal Developery
Jozef Toth
 

Ähnlich wie Kontinualni testovani a monitoring SEO - SEO robot (20)

Google Webmaster Tools a SEO - Lukáš Pokorný
Google Webmaster Tools a SEO - Lukáš PokornýGoogle Webmaster Tools a SEO - Lukáš Pokorný
Google Webmaster Tools a SEO - Lukáš Pokorný
 
SeznamBot a Kanonizace pro SEOloger 18.4.2018
SeznamBot a Kanonizace pro SEOloger 18.4.2018SeznamBot a Kanonizace pro SEOloger 18.4.2018
SeznamBot a Kanonizace pro SEOloger 18.4.2018
 
SEO - optimalizace pro vyhledávače
SEO - optimalizace pro vyhledávačeSEO - optimalizace pro vyhledávače
SEO - optimalizace pro vyhledávače
 
Expertia Digital SEO Best practices při redesignu webu
Expertia Digital SEO Best practices při redesignu webuExpertia Digital SEO Best practices při redesignu webu
Expertia Digital SEO Best practices při redesignu webu
 
Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...
Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...
Já dělám "to SEO" dobře, jen vyhledávače ho zatím nepochopily... BarCamp Brno...
 
SEO Date #3: Šárka Rolná Jakubcová - Klientské a vývojářské SEO omyly a mýty
SEO Date #3: Šárka Rolná Jakubcová - Klientské a vývojářské SEO omyly a mýtySEO Date #3: Šárka Rolná Jakubcová - Klientské a vývojářské SEO omyly a mýty
SEO Date #3: Šárka Rolná Jakubcová - Klientské a vývojářské SEO omyly a mýty
 
R. Kracik-začátky SEO - ovládněte nastroje
R. Kracik-začátky SEO - ovládněte nastrojeR. Kracik-začátky SEO - ovládněte nastroje
R. Kracik-začátky SEO - ovládněte nastroje
 
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressTomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
 
Matěj Novák - pro neziskovky
Matěj Novák - pro neziskovkyMatěj Novák - pro neziskovky
Matěj Novák - pro neziskovky
 
SEO nástroje, které možná neznáte
SEO nástroje, které možná neznáteSEO nástroje, které možná neznáte
SEO nástroje, které možná neznáte
 
Vyhledávače a JavaScript
Vyhledávače a JavaScriptVyhledávače a JavaScript
Vyhledávače a JavaScript
 
On-Page faktory pro SEO
On-Page faktory pro SEOOn-Page faktory pro SEO
On-Page faktory pro SEO
 
Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)
 
Jak (ne)pokazit redesign webu
Jak (ne)pokazit redesign webuJak (ne)pokazit redesign webu
Jak (ne)pokazit redesign webu
 
Tipy ze života linkbuildera
Tipy ze života linkbuilderaTipy ze života linkbuildera
Tipy ze života linkbuildera
 
Seo Pro Drupal Developery
Seo Pro Drupal DeveloperySeo Pro Drupal Developery
Seo Pro Drupal Developery
 
SEO Best Practices při redesignu webu
SEO Best Practices při redesignu webuSEO Best Practices při redesignu webu
SEO Best Practices při redesignu webu
 
SEO Best Practices při redesignu webu
SEO Best Practices při redesignu webuSEO Best Practices při redesignu webu
SEO Best Practices při redesignu webu
 
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressu
 
SEO 2013
SEO 2013SEO 2013
SEO 2013
 

Kontinualni testovani a monitoring SEO - SEO robot

  • 1. Jaroslav Hlavinka SEO konzultant v Seznam.cz Jaroslav@Hlavinka.cz @neologyc
  • 3. Dneska se budeme bavit o „hlídání“ SEO velkých webů, které se často mění
  • 4. Rozbité SEO • Přestanou fungovat stará 301 přesměrování
  • 5. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL
  • 6. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev
  • 7. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow
  • 8. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow
  • 9. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow • Změní se obsah v robots.txt
  • 10. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow • Změní se obsah v robots.txt • Změní se titulky – nenahradí se %%COUNT%%
  • 11. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow • Změní se obsah v robots.txt • Změní se titulky – nenahradí se %%COUNT%% • Změní se popisky a OG tagy
  • 12. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow • Změní se obsah v robots.txt • Změní se titulky – nenahradí se %%COUNT%% • Změní se popisky a OG tagy • Změní se obsah meta KEYWORDS
  • 13. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow • Změní se obsah v robots.txt • Změní se titulky – nenahradí se %%COUNT%% • Změní se popisky a OG tagy • Dělám si srandu 
  • 14. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow • Změní se obsah v robots.txt • Změní se titulky – nenahradí se %%COUNT%% • Změní se popisky a OG tagy • Text na stránce je jiný, než očekávaný
  • 15. Rozbité SEO • Přestanou fungovat stará 301 přesměrování • Self-canonical vedou na jiné URL • Zmizí rel next prev • Na důležité stránce přibude meta noindex nofolow • Z nedůležité stránky zmizí meta noindex nofollow • Změní se obsah v robots.txt • Změní se titulky – nenahradí se %%COUNT%% • Změní se popisky a OG tagy • Text na stránce je jiný, než očekávaný • atd. atd. atd. a ještě jednou a tak dále
  • 16. „Posrat se může cokoli, kdykoli!” - Jarda Hlavinka
  • 17.
  • 18.
  • 19. Proč? • Prostě se to děje • Trochu častěji se to děje při nasazení nové verze, hotfixech, refaktoringu. • Ať na to vývoj myslí 
  • 20. „Co jde, to testujte! Automaticky.” - Jarda Hlavinka
  • 21. Kde testovat? Typové stránky. • Homepage • Výpis kategorie • Výpis kategorie + stránkování • Výpis kategorie + 1 filtr • Výpis kategorie + 1 filtr + stránkování • Výpis kategorie + 2 filtry • Výpis kategorie + 2 filtry + stránkování • Detail • Detail + varianta • Kategorie + lokalita • Kategorie + lokalita + stránkování • Chybové stránky • Přesměrování
  • 22. Co testovat? • Fungují historická přesměrování? • Chyby vrací správný HTTP kód? • Robots.txt se nezměnil? • Sitemap.xml existuje? • Titulky, popisky, OG tagy jsou nastaveny správně? • Canonical, hreflang, rel prev next jsou nastaveny správně? • Meta robots jsou/nejsou nastavena? • Jsou na stránce strukturovaná data? • Jsou správně nastaveny nadpisy? • Jsou na stránce texty, které očekávám? • V textu se správně nahradily placeholdery/proměnné? • Jsou v článcích interní odkazy a vedou kam mají? • Nevypadly mi na webu po updatu WP, pluginů, nebo template nějaké moduly (typicky v sidebar, na homepagi)?
  • 23. Best practise • Každou novou netradiční a testy nepokrytou SEO vlastnost si přidejte do testů. • Pokud vám něco rozbije SEO třeba i na jiném projektu, tak si ta pravidla přidejte a sledujte to všude.
  • 24. „Zapojte testování SEO do práce vývojářů!” - Jarda Hlavinka
  • 25. Zapojte SEO testy do kontinuálního vývoje
  • 26. Zapojte SEO testy do kontinuálního vývoje
  • 27. Testy SEO před nasazením do produkce • .test / .dev (dokud fungují) • Pouštět v testovacím prostředí před každým nasazením • Odpovědná osoba dostane email o chybě • SEO konzultant dostane email o chybě
  • 28. Testy SEO v produkci • Testy oproti .cz (produkce) • Pouštět každých pár minut až hodin na produkci • Podle velikosti webu, důležitosti testu a pravděpodobnosti změny • Odpovědná osoba dostane email o chybě • SEO konzultant dostane email o chybě
  • 29. Jak testovat? • Puppeteer – Chrome Headless • Selenium testy, BrowserStack Automate • Vlastní skripty – např. SEO robot
  • 31.
  • 32. Co to umí? 1. Stáhne URL 2. Ověří, jestli sedí HTTP kód 3. Ověří, jestli je na stránce očekávaný obsah a „nastavení SEO” 4. V případě chyby pošle email se souhrnem chyb
  • 34. Jak to nainstalovat? (jednoduchá verze) • Je to řešení, které si každy sám nainstaluje k sobě na server • Nemá žádný admin • Potřebuju server s PHP, • Doménu, • Cron, • SMTP, • znalost základů PHP, nebo HTML (s trochou fištrónu to poskládáte) • Nepotřebuje databázi. • Celá napověda: https://git.io/f4QAH
  • 35.
  • 36.
  • 37. Nastavení SMTP emailu podle nápovědy • https://git.io/f4QAH • V souboru SEO-ROBOT/settings/settings.php
  • 38. Nastavení prvního projektu • https://git.io/f47kZ • V souboru SEO-ROBOT/settings/settings.txt
  • 39.
  • 40. Vytvoření prvního projektu • Unikátní název projektu: • sbazar.cz • Cesta k souboru robots.txt, který si uložíš k sobě na server: • 'robotsTxtFile' => './settings/robots.txt/sbazar.txt’ • URL robots.txt na serveru: • 'robotsTxtURL' => 'https://www.sbazar.cz/robots.txt’ • Cesta k souboru s testovacími pravidly: • 'testRules' => './settings/tests/sbazar.txt’, • User-agent: • 'curl_useragent' => 'SEO test', • Email: • 'email' => 'email-kam-poslat-report@seznam.cz'
  • 41. Nastavení testovacích pravidel projektu • https://git.io/f4QhQ • V souboru SEO-ROBOT/settings/tests/NECO.txt • V našem případě: SEO-ROBOT/settings/tests/sbazar.txt
  • 42.
  • 43. Nastavení testovacích pravidel projektu • Na každém řádku zvlášť v tomto pořadí: • URL • HTTPS kód • Pravidla (může jich být 0 až nekonečno) • #
  • 44. Pravidla • 4 parametry: • Jak se má porovnat? 6 přednastavených pravidel • Xpath (https://codebeautify.org/Xpath-Tester + cheatsheet) • Pořadí Xpath v DOMu (nejčastěji 0) • Co je v tom Xpath očekáváno? • Oddělovač ;;
  • 45. Pravidla • plaintext - vybere jen text elementů bez HTML tagů • content - vybere obsah meta tagů • href - vybere obsah atributu href například v odkazech, nebo rel canonical • plaintextContains - zjistí, jestli plaintext HTML tagu zadaného pomocí Xpath obsahuje zadaný text • contentContains - zjistí, jestli content HTML tagu zadaného pomocí Xpath obsahuje zadaný text • hrefContains - zjistí, jestli atribut href HTML tagu zadaného pomocí Xpath obsahuje zadaný text
  • 46. Příklady hotových pravidel • plaintext;;//title;;0;;Renault Trafic. - Sbazar.cz • content;;meta[name="robots"];;0;;noindex,nofollow • href;;link[rel="canonical"];;0;;https://www.sbazar.cz • hrefContains;;link[rel="prev"];;0;;/3 • plaintext;;#box8 > div > div > ul > li;;2;;něco
  • 47. Pravidelně spouštět • CRON – www.domena.cz/seorobot/?id=sbazar.cz • Co 20 minut u větších webů může být OK
  • 48. Done
  • 49. Co teď udělat? • Zjistěte u vývojářů, jestli už testují weby před nasazením a v produkci: • ANO: nasáčkujte se jim do testů i s pravidly pro testování SEO • NE: naočkujte je tím, co jste se dozvěděli – sami přijdou s nejlepším technickým řešením • Pokud je vývoj neprůchozí, tak si sami nastavte testování aspoň v produkci třeba pomocí SEO robota.
  • 50. TODO – Co do SEO robota přibude? • Pravidla • REGEX • Doesn´t contain • Automatické stahování a ověřování robots.txt a jeho aktualizace při změně
  • 51.