Bastian Grimm, Managing Partner - Grimm Digital
On-Page EXTREME
- Common On-Page SEO Pitfalls -
http://gdig.de/seozone
Istanbul, September 2013
About Bastian Grimm
2
@basgr
SEO Trainings, Seminars & Strategy Consulting
WordPress Security, Consulting & Development
Berlin-based Full-Service Performance Marketing Agency
http://gdig.de/seozone
#1 CRAWL BUDGET
GWT > Crawl > Crawl Stats
Goal: (Slightly) increase G’s crawling…
Control those crawlers…
<meta name="robots" content="noindex, follow" />
User-Agent: *
Disallow: /some-page.html
Pages will be
crawled.
Pages won’t be
indexed.
Pages won’t show
up in SERPs.
URLs will be “par-
tially” indexed.
Pages won’t be
crawled.
URLs will show
up in SERPs.
URL has been robots.txt’ed out but…
URL pattern is
disallowed but
URLs still show up
Often, (external) links are “the issue”…
According to LRT this URL has
external inbound links…
http://www.linkresearchtools.com/
BTW: This can not work!
There is no way search
engines can read this!
Don’t create / link
them in the first place!
… or use some external
JS “by accident”.
Watch those redirects!
Never do redirects in HTML or JS; they’ve
to be crawled first! Only do 301.
<meta http-equiv="refresh" content="0; URL=http://www.google.com/">
*…+
<script type="text/javascript">
<!-- function redir(){ window.location = "http://www.google.com/" } //-->
</script>
*…+
<body onload="setTimeout('redir()', 1000)">
*…+
Prevent “wrong” redirects + chaining!
http://www.screamingfrog.co.uk/seo-spider/
Fix HTTP 302 and
Redirect Chains!
Example time #1: Filters & Sorting
Do you really want different
“sort bys” to be indexed?
Example time #2: Pagination
/cameras/cameras-cameras-home-brands-nikon/?start=32
/cameras/cameras-cameras-home-brands-nikon/?start=48
/cameras/cameras-cameras-home-brands-nikon/?start=96
Don’t push paginated pages
to the index unless they’ve
different keyword targets!
Example time #3: Useless pages
Why would you index those?
Maybe rank for “send to my friend”?
Remove worst performing pages!
Watch bounce rates, time on
site, pages per visit…
and de-index the worst 10%?!
#2 DUPLICATE CONTENT
Duplicate Content in a nutshell
Image source: http://gdig.de/1x
This is ALL the same content…
BUT different URLs!
#1 Tracking Parameters or Session IDs
Google does still
index session IDs –
so better not
create them!
#2 Products in multiple Categories
Same product – avail. in
multiple categories.
Unified link to ONE
product URL!
#3 HTTP vs. HTTPS
If you need SSL a
proper canonical
can help…
#4 Sub-Domains gone wild…
Watch your sub-
domains carefully…
#1 Canonicalize URLs
<link rel="canonical" href="http://domain.com/preferred-url.html" />
Never do relative URLs!
Pro Tip: Implement X-Robots Header
Full article: http://gdig.de/1w
Link: <http://domain.com/html-
version-of-pdf/>; rel=“canonical”
#2 Do 301-Redirects when possible
Is rel="canonical" a hint
or a directive?
It's a hint that we honor
strongly. We'll take your
preference into account, in
conjunction with other
signals, when calculating
the most relevant page […]
Full article: http://gdig.de/1x
#3 Make use of GWT
Set preferred domain to
indicate the “proper” one.
XML sitemap as another signal
to determine canonical URL.
Easy Start: GWT > HTML Improvements
Using the same titles and / or
Meta descriptions… not good!
Find Duplicate Content easily…
http://www.siteliner.com/
Find Duplicate Content easily…
http://www.copyscape.com/
Last but not least…
Full article: http://gdig.de/1y
There’s NO
such thing as a
DC penalty!
#3 PROPER MARK-UP
MEANING
#1 YOU PROVIDE
semantic HTML is meant to describe content!
MAINTAIN-
ABILITY
#2 YOU INCREASE
do content in HTML; use CSS & JS for layout
IS QUALITY
#3 SEMANTIC HTML
browsers don’t care, other systems do!
Read this: http://gdig.de/1-
HTML HAS LIMITS…!
Full info here: http://gdig.de/1s
Star ratings + votes
Rich snippet movie mark-up
Video snippets: Preview
img, publishing
date, playtime, etc.
Publication date
Google Universal News listings
CTR is influenced by more than position!
Google SERP CTR Study by SlingshotSEO
Full study available here: http://gdig.de/10
“SERP CTR almost
only depends on how
GREAT your snippet
is and if you can
make it stand out!”
- @basgr #SEOZONE
@basgr
Implementation
It’s basically “extended” HTML markup
consisting of attributes and respective values.
Verify your mark-up w/ Google
Google’s Structured Mark-Up Tool does
provide valuable info on your status-quo.
Testing Tool: http://www.google.com/webmasters/tools/richsnippets
hCard needs proper imple-
mentation; “family-name” is so
wrong! Use “org” instead.
Even better: use schema.org!
Product needs fixing as
well, only use valid properties!
Some Rich-Snippet Examples
Rating + No. of Votes
Rating + Software Markup
(Price / OS)
Rating + Reviews + Recipe
Markup (Duration / Calories)
Video Snippet (can also be
done using schema.org)
Some Rich-Snippet Examples
JobPosting Mark-Up
Event Mark-Up
(Date, Name, Location)
MusicGroup / Album Mark-Up
(Tracks / Duration / Name)
GWT > Appearance > Structured Data
GWT > Data Highlighter
GWT > Data Highlighter
Authorship Mark-Up is a killer!
It’s about personal branding as well – make your-self
known to the (your) audience!
A Searchmetrics study shows ~17% of US SERPs include authors already.
Searchmetrics Data: http://gdig.de/18
Can either be implemented on
page- but also on root-level!
How to implement Authorship mark-up?
Using the rel-author is
simple – but don’t game
it, otherwise it’ll be
gone… fast!
<link rel="author" href="https://plus.google.com/YOUR-ID" />
1) Implement “rel-author”
into your <head> section
2) Add “contributor “ URL to
your G+ profile
3) Check Google's structured
mark-up tool to verify!
1)
2)
3)
Authorship Info: https://plus.google.com/authorship
GWT > Labs > Author Stats
52
„Beyond 10 Blue Links“ on SlideShare
View the slides: http://gdig.de/1z
Bastian Grimm, Managing Partner - Grimm Digital
Thanks! Questions?
mail@grimm-digital.com
twitter.com/basgr
linkedin.com/in/bastiangrimm
facebook.com/grimm.digital
http://gdig.de/seozone
#4 PAGE LOAD TIMES
Read the full story here: http://gdig.de/1o
“We encourage you to start
looking at your site's speed - not
only to improve your ranking
in search engines, but also to
improve everyone's experience
on the Internet.”
- Amit Singhal & Matt Cutts, Google Search Quality Team
One (simple) goal only:
Make your site as fast as you can!
Can you get, what Amazon got?
1%+ in revenue for every
100 ms in speed.
Amazon study: http://gdig.de/amzn100
Web-based performance analysis
using the „Google factors”..
https://developers.google.com/pagespeed/
Detailed in-browser
performance analysis
(req. Firebug Add-on)
#1 Get rid of multiple CSS & JS files
8 JS + 4 CSS req. on a single page is a bad idea!
Best case: 1 CSS + 1 JS file.
Real world: 1-2 CSS, 1 int. + 2-3 ext. JS
Often times JS does change the
style, so always do CSS before JS!
Move CSS to the top, JS to the
footer to un-block rendering!
#2 Do CSS Sprites
http://spriteme.org/
Combine multiple (small) images into one
big image to save on HTTP requests.
Tip: Make images even smaller!
Use tinyPNG to optimize
PNG files without loosing in
quality (up to 70% savings)
JPEGmini does the same for JPEG
files and will reduce your images
massively (up to 80% smaller)!
http://tinypng.org/ & http://www.jpegmini.com/
#3 Minify CSS & JS files
Removing unnecessary whitespaces, line-
breaks and comments to reduce file-size.
And: Makes it way harder for competitors to steal your code!
For CSS, try:
http://www.phpied.com/cssmin-js/
http://developer.yahoo.com/yui/compressor/
For JS, go with:
http://www.crockford.com/javascript/jsmin.html
https://developers.google.com/closure/compiler
Minifying this (small) style-
sheet results in 63% savings!
#4 Enable GZIP compression
Output compression does massively decrease
file-sizes and therefore speeds up rendering.
Verify by checking the response
headers, for “Content-Encoding“
to be set to “gzip“
One of the ugliest sites ever: http://www.gzip.org/
On Apache, try “mod_deflate” which is straight forward:
AddOutputFilterByType DEFLATE text/html text/plain text/xml
#5 Setup caching for static resources
It’s important to specify one of Expires or Cache-Control max-
age, and one of Last-Modified or ETag, for all cacheable resources.
Set the “Expires”-header to exactly
one year ahead of the request date
Set the “Last-Modified”-header to
the date the file was last modified
Set the “Cache-Control: max-age”-
header to “3153600” (1 year, again)
Expires:
Fri, 07 Sept 2013 03:18:06 GMT
Last-Modified:
Fri, 07 Sept 2012 03:18:06 GMT
Cache-Control:
max-age=3153600
#6 Use Google’s CDN for popular libraries
Google has the fastest CDN on the planet, make sure
you use their DCs to serve your files if possible!
https://developers.google.com/speed/libraries/
Since a lot of site-owners are using
G-DCs, chances are, people have
those files cached already!
#7 Optimize your server setup
#8 Do heavy load testing: blitz.io
http://blitz.io/
#9 Monitor uptime & speed: pingdom
http://www.pingdom.com/
#10 Do even more…!
http://gdig.de/slides

On-Page SEO EXTREME - SEOZone Istanbul 2013

  • 1.
    Bastian Grimm, ManagingPartner - Grimm Digital On-Page EXTREME - Common On-Page SEO Pitfalls - http://gdig.de/seozone Istanbul, September 2013
  • 2.
    About Bastian Grimm 2 @basgr SEOTrainings, Seminars & Strategy Consulting WordPress Security, Consulting & Development Berlin-based Full-Service Performance Marketing Agency
  • 4.
  • 5.
  • 6.
    GWT > Crawl> Crawl Stats Goal: (Slightly) increase G’s crawling…
  • 7.
    Control those crawlers… <metaname="robots" content="noindex, follow" /> User-Agent: * Disallow: /some-page.html Pages will be crawled. Pages won’t be indexed. Pages won’t show up in SERPs. URLs will be “par- tially” indexed. Pages won’t be crawled. URLs will show up in SERPs.
  • 8.
    URL has beenrobots.txt’ed out but… URL pattern is disallowed but URLs still show up
  • 9.
    Often, (external) linksare “the issue”… According to LRT this URL has external inbound links… http://www.linkresearchtools.com/
  • 10.
    BTW: This cannot work! There is no way search engines can read this!
  • 11.
    Don’t create /link them in the first place! … or use some external JS “by accident”.
  • 12.
    Watch those redirects! Neverdo redirects in HTML or JS; they’ve to be crawled first! Only do 301. <meta http-equiv="refresh" content="0; URL=http://www.google.com/"> *…+ <script type="text/javascript"> <!-- function redir(){ window.location = "http://www.google.com/" } //--> </script> *…+ <body onload="setTimeout('redir()', 1000)"> *…+
  • 13.
    Prevent “wrong” redirects+ chaining! http://www.screamingfrog.co.uk/seo-spider/ Fix HTTP 302 and Redirect Chains!
  • 14.
    Example time #1:Filters & Sorting Do you really want different “sort bys” to be indexed?
  • 15.
    Example time #2:Pagination /cameras/cameras-cameras-home-brands-nikon/?start=32 /cameras/cameras-cameras-home-brands-nikon/?start=48 /cameras/cameras-cameras-home-brands-nikon/?start=96 Don’t push paginated pages to the index unless they’ve different keyword targets!
  • 16.
    Example time #3:Useless pages Why would you index those? Maybe rank for “send to my friend”?
  • 17.
    Remove worst performingpages! Watch bounce rates, time on site, pages per visit… and de-index the worst 10%?!
  • 18.
  • 19.
    Duplicate Content ina nutshell Image source: http://gdig.de/1x This is ALL the same content… BUT different URLs!
  • 20.
    #1 Tracking Parametersor Session IDs Google does still index session IDs – so better not create them!
  • 21.
    #2 Products inmultiple Categories Same product – avail. in multiple categories. Unified link to ONE product URL!
  • 22.
    #3 HTTP vs.HTTPS If you need SSL a proper canonical can help…
  • 23.
    #4 Sub-Domains gonewild… Watch your sub- domains carefully…
  • 24.
    #1 Canonicalize URLs <linkrel="canonical" href="http://domain.com/preferred-url.html" /> Never do relative URLs!
  • 25.
    Pro Tip: ImplementX-Robots Header Full article: http://gdig.de/1w Link: <http://domain.com/html- version-of-pdf/>; rel=“canonical”
  • 26.
    #2 Do 301-Redirectswhen possible Is rel="canonical" a hint or a directive? It's a hint that we honor strongly. We'll take your preference into account, in conjunction with other signals, when calculating the most relevant page […] Full article: http://gdig.de/1x
  • 27.
    #3 Make useof GWT Set preferred domain to indicate the “proper” one. XML sitemap as another signal to determine canonical URL.
  • 28.
    Easy Start: GWT> HTML Improvements Using the same titles and / or Meta descriptions… not good!
  • 29.
    Find Duplicate Contenteasily… http://www.siteliner.com/
  • 30.
    Find Duplicate Contenteasily… http://www.copyscape.com/
  • 31.
    Last but notleast… Full article: http://gdig.de/1y There’s NO such thing as a DC penalty!
  • 32.
  • 33.
    MEANING #1 YOU PROVIDE semanticHTML is meant to describe content!
  • 34.
    MAINTAIN- ABILITY #2 YOU INCREASE docontent in HTML; use CSS & JS for layout
  • 35.
    IS QUALITY #3 SEMANTICHTML browsers don’t care, other systems do! Read this: http://gdig.de/1-
  • 36.
  • 37.
    Full info here:http://gdig.de/1s
  • 38.
    Star ratings +votes Rich snippet movie mark-up Video snippets: Preview img, publishing date, playtime, etc. Publication date Google Universal News listings CTR is influenced by more than position!
  • 39.
    Google SERP CTRStudy by SlingshotSEO Full study available here: http://gdig.de/10
  • 40.
    “SERP CTR almost onlydepends on how GREAT your snippet is and if you can make it stand out!” - @basgr #SEOZONE @basgr
  • 41.
    Implementation It’s basically “extended”HTML markup consisting of attributes and respective values.
  • 42.
    Verify your mark-upw/ Google Google’s Structured Mark-Up Tool does provide valuable info on your status-quo. Testing Tool: http://www.google.com/webmasters/tools/richsnippets
  • 43.
    hCard needs properimple- mentation; “family-name” is so wrong! Use “org” instead. Even better: use schema.org! Product needs fixing as well, only use valid properties!
  • 44.
    Some Rich-Snippet Examples Rating+ No. of Votes Rating + Software Markup (Price / OS) Rating + Reviews + Recipe Markup (Duration / Calories) Video Snippet (can also be done using schema.org)
  • 45.
    Some Rich-Snippet Examples JobPostingMark-Up Event Mark-Up (Date, Name, Location) MusicGroup / Album Mark-Up (Tracks / Duration / Name)
  • 47.
    GWT > Appearance> Structured Data
  • 48.
    GWT > DataHighlighter
  • 49.
    GWT > DataHighlighter
  • 50.
    Authorship Mark-Up isa killer! It’s about personal branding as well – make your-self known to the (your) audience! A Searchmetrics study shows ~17% of US SERPs include authors already. Searchmetrics Data: http://gdig.de/18 Can either be implemented on page- but also on root-level!
  • 51.
    How to implementAuthorship mark-up? Using the rel-author is simple – but don’t game it, otherwise it’ll be gone… fast! <link rel="author" href="https://plus.google.com/YOUR-ID" /> 1) Implement “rel-author” into your <head> section 2) Add “contributor “ URL to your G+ profile 3) Check Google's structured mark-up tool to verify! 1) 2) 3) Authorship Info: https://plus.google.com/authorship
  • 52.
    GWT > Labs> Author Stats 52
  • 53.
    „Beyond 10 BlueLinks“ on SlideShare View the slides: http://gdig.de/1z
  • 54.
    Bastian Grimm, ManagingPartner - Grimm Digital Thanks! Questions? mail@grimm-digital.com twitter.com/basgr linkedin.com/in/bastiangrimm facebook.com/grimm.digital http://gdig.de/seozone
  • 56.
  • 57.
    Read the fullstory here: http://gdig.de/1o
  • 58.
    “We encourage youto start looking at your site's speed - not only to improve your ranking in search engines, but also to improve everyone's experience on the Internet.” - Amit Singhal & Matt Cutts, Google Search Quality Team
  • 59.
    One (simple) goalonly: Make your site as fast as you can! Can you get, what Amazon got? 1%+ in revenue for every 100 ms in speed. Amazon study: http://gdig.de/amzn100
  • 60.
    Web-based performance analysis usingthe „Google factors”.. https://developers.google.com/pagespeed/
  • 61.
  • 62.
    #1 Get ridof multiple CSS & JS files 8 JS + 4 CSS req. on a single page is a bad idea! Best case: 1 CSS + 1 JS file. Real world: 1-2 CSS, 1 int. + 2-3 ext. JS Often times JS does change the style, so always do CSS before JS! Move CSS to the top, JS to the footer to un-block rendering!
  • 63.
    #2 Do CSSSprites http://spriteme.org/ Combine multiple (small) images into one big image to save on HTTP requests.
  • 64.
    Tip: Make imageseven smaller! Use tinyPNG to optimize PNG files without loosing in quality (up to 70% savings) JPEGmini does the same for JPEG files and will reduce your images massively (up to 80% smaller)! http://tinypng.org/ & http://www.jpegmini.com/
  • 65.
    #3 Minify CSS& JS files Removing unnecessary whitespaces, line- breaks and comments to reduce file-size. And: Makes it way harder for competitors to steal your code! For CSS, try: http://www.phpied.com/cssmin-js/ http://developer.yahoo.com/yui/compressor/ For JS, go with: http://www.crockford.com/javascript/jsmin.html https://developers.google.com/closure/compiler Minifying this (small) style- sheet results in 63% savings!
  • 66.
    #4 Enable GZIPcompression Output compression does massively decrease file-sizes and therefore speeds up rendering. Verify by checking the response headers, for “Content-Encoding“ to be set to “gzip“ One of the ugliest sites ever: http://www.gzip.org/ On Apache, try “mod_deflate” which is straight forward: AddOutputFilterByType DEFLATE text/html text/plain text/xml
  • 67.
    #5 Setup cachingfor static resources It’s important to specify one of Expires or Cache-Control max- age, and one of Last-Modified or ETag, for all cacheable resources. Set the “Expires”-header to exactly one year ahead of the request date Set the “Last-Modified”-header to the date the file was last modified Set the “Cache-Control: max-age”- header to “3153600” (1 year, again) Expires: Fri, 07 Sept 2013 03:18:06 GMT Last-Modified: Fri, 07 Sept 2012 03:18:06 GMT Cache-Control: max-age=3153600
  • 68.
    #6 Use Google’sCDN for popular libraries Google has the fastest CDN on the planet, make sure you use their DCs to serve your files if possible! https://developers.google.com/speed/libraries/ Since a lot of site-owners are using G-DCs, chances are, people have those files cached already!
  • 69.
    #7 Optimize yourserver setup
  • 70.
    #8 Do heavyload testing: blitz.io http://blitz.io/
  • 71.
    #9 Monitor uptime& speed: pingdom http://www.pingdom.com/
  • 72.
    #10 Do evenmore…! http://gdig.de/slides