Drupal search engine optimization (SEO) basics requires installing and configuring a variety of modules from Drupal core and from the Drupal community. This BADCamp 2012 presentation was given by Hook 42's Aimee Degnan and Kristen Pol on Sunday November 4th in Berkeley, California. It covers an overview of the what, why, and who of SEO and then goes into the specifics of the Drupal SEO modules to use and how to configure them. The presentation finishes up with a list of resources you can check out to learn more about search engine optimization and, in particular, Drupal SEO.
2. BADCamp 2012 Hook 42
THE DRUPALER’S GUIDE
TO THE SEO GALAXY
Or… Navigating a Gazillion
SEO Modules
Aimee Degnan / aimee@hook42.com
Kristen Pol / kristen@hook42.com
answers@hook42.com 2
3. BAD Camp 2012: Building Multilingual Sites in Drupal 7 - Introduction Hook 42
Who are we?
Aimee
• CEO, Principal Web & CMS Architect
• Enterprise
CMS, Infrastructure, Analyst, Management
• She makes it all happen.
Kristen
• CTO, Principal Drupal Architect
• Drupal ninja, multilingual
sites, SEO, Analytics
• She makes it all work.
answers@hook42.com 3
4. BADCamp 2012 Hook 42
Get hooked: Strengths Services Clients
Hook 42
Drupal Zero to go Start ups
Flexible. Web Content Second Small
Management Opinion business
Work smart.
Enterprise
Rescue Midsize
Content
Fix complex problems. Mission business
Publication
Integrate anything. Custom
Application Add-ons Enterprise
Integration
Culture chameleon.
Strategic
Scale for growth. Moving
Technology Education
House
Leadership
Deploy correctly.
Systems
Helping Hand
Architecture
Work efficiently.
answers@hook42.com 4
5. BADCamp 2012 Hook 42
Presentation Takeaways
• What is SEO
• Why should you care about it
• Who should be involved
• When and how to take care of the basics (in Drupal)
• Where to go next
answers@hook42.com 5
7. BADCamp 2012 Hook 42
Web Strategy
SEO is part of
the puzzle
Off-Site Paid
SEO Advertising
Word of
On-Site
Mouth /
SEO
Virality
There are many ways to
get people to your site. Social Your Analytics
Media
You have to weigh the
costs and benefits to
Site
see what works best.
Use analytics to figure
out what is cost-
effective.
answers@hook42.com 7
8. BADCamp 2012 Hook 42
What?
Search Engine Improving your site
Optimization
structure, content, a
nd links for higher
search engine
SEO requires constant
ranking position
attention.
SEO best practices are
always changing.
SEO done wrong can be
very, very bad.
answers@hook42.com 8
13. BADCamp 2012 Hook 42
Why?
Get them to Clicks
your site
36.40%
12.50%
9.50%
7.90%
6.10%
Position 1 gets almost 3
times the number of
clicks compared to
#1 #2 #3 #4 #5
position 2.
Source: optify.com (December 2010)
answers@hook42.com 13
14. BADCamp 2012 Hook 42
Why?
The bottom line
Clicks
Great
Content
Awesome
Product
If no one can find
you, you can’t get them
to do what you want. Conversions
Getting clicks is just part
of the battle.
answers@hook42.com 14
16. BADCamp 2012 Hook 42
Who Business Technology Content
Team SEO Team Team Team
CEO and Content
Architects
CxOs Strategist
Site
Content
Developers Content
Owners
Writers
Social
Marketing System
Media
Owners Admins
Writers
Social Designers
Advertising
Media and
Ideally, anyone who Writers
Owners Themers
cares
about, supports, or
touches the site should SEO SEO SEO
understand the site’s Owners Consultant Consultant
SEO strategy.
answers@hook42.com 16
20. BADCamp 2012 Hook 42
SEO Checklist
Walk me What
through it • SEO Checklist module (seo_checklist)
• Drupal 6 through 7
Why
• Lists things that should be done and lets you
check them off
When
• At start of development
How
There are a lot of things • Enable seo_checklist & checklistapi modules
to configure.
• Go to config page
You can keep track of • Follow instructions
them with this checklist.
answers@hook42.com 20
21. BADCamp 2012 Hook 42
SEO Checklist > Make it easy!
answers@hook42.com 21
22. BADCamp 2012 Hook 42
SEO Checklist • Work in order from top to
Tips bottom
• Click save button on the bottom
of the page!
• You don’t have to complete
everything (some alternative
methods are provided)
There are a lot of things • Turn off the module once all
to configure.
relevant steps have been
You can keep track of completed
them with this checklist.
answers@hook42.com 22
23. BADCamp 2012 Hook 42
Clean URLs What
We don’t like
dirty ones • Core System module (system)
• Drupal 4 through 7
Why
• Create user-friendly URLs
When
• At start of development
How
The URL • Enable Apache mod_rewrite
foo.com/node/1
• Enable clean URLs
is cleaner than
foo.com?q=node/1 • Save configuration
answers@hook42.com 23
24. BADCamp 2012 Hook 42
Clean URLs > Make it clean!
answers@hook42.com 24
25. BADCamp 2012 Hook 42
Clean URLs • Restart Apache after enabling
Tips mod_rewrite
• Make sure your .htaccess file
is in your docroot
• If copying a site with clean
URLs enabled to another site
that isn’t configured
The URL yet, initially turn off clean
foo.com/node/1
is cleaner than URLs via the database or via
foo.com?q=node/1
drush
answers@hook42.com 25
26. BADCamp 2012 Hook 42
Path What
URLs how you
want them • Core Path module (path)
• Drupal 4 through 7
Why
• Create meaningful URLs
When
• As you create content
How
The URL • Enable path module
foo.com/about-us
• Edit content
is more meaningful than
foo.com/node/1 • Fill in path and save
answers@hook42.com 26
28. BADCamp 2012 Hook 42
Path • Use human-readable paths
Tips
• Use keywords in the paths if it
makes sense
• Follow a sane path structure
(about-us/founders, about-
us/team, about-us/location)
The URL
• Do not use paths that conflict
foo.com/about-us with internal paths (e.g.
is more meaningful than
foo.com/node/1 admin, user, node)
answers@hook42.com 28
29. BADCamp 2012 Hook 42
Pathauto
What
Smart URLs
based on your • Pathauto module (pathauto)
• Drupal 4 through 7
content
Why
• Create user-friendly URLs automatically
When
• When you create content types and edit
content
How
The URL • Enable pathauto & token modules
foo.com/news/election • Create patterns per content type
-day-2012
is more meaningful than
• Edit content, enable “Generate automatic
foo.com/node/5
URL alias”, and save
answers@hook42.com 29
33. BADCamp 2012 Hook 42
Pathauto • Use human-readable patterns
Tips
• Use keywords in the patterns if
it makes sense
• Follow a sane path structure
(about-
us/[node:title], products/[node:c
ategory]/[node:title])
The URL
foo.com/news/election
-day-2012 • Avoid patterns at top-level to
is more meaningful than
foo.com/node/5 minimize conflicts with internal
answers@hook42.com
paths (e.g. admin, user, node) 33
34. BADCamp 2012 Hook 42
Pathauto • Duplicate paths are avoided
More tips
with numbering (e.g.
news/todays-
headlines, news-todays-
headlines-0)
• Sometimes the “Generate
automatic URL alias”
The URL checkbox goes unchecked
foo.com/news/election
-day-2012 (try Pathauto Persistent State
is more meaningful than
foo.com/node/5 or SEO Friend module)
answers@hook42.com 34
35. BADCamp 2012 Hook 42
Redirect What
Maintain sanity
when URLs • Redirect module (redirect, D7) or Path
Redirect module (path_redirect, older)
change • Drupal 4 through 7
Why
• Prevent 404s when URLs change
• Search engines pass along “link juice”
When
• Before go-live
How
• Enable redirect / path_redirect module
301 redirect from old
URL to new URL. • Enable redirects when aliases change
answers@hook42.com 35
36. BADCamp 2012 Hook 42
Redirect > Auto redirect when URLs change
answers@hook42.com 36
37. BADCamp 2012 Hook 42
Redirect • Test redirect works for old
Tips
URLs
• For Path Redirect
module, configure Pathauto
module’s Update Action
setting
• Prune old redirects (> 1 year
301 redirect from old old)
URL to new URL.
answers@hook42.com 37
38. BADCamp 2012 Hook 42
Global Redirect What
Reduce
duplicate • Global Redirect module (globalredirect)
• Drupal 4 through 7
content
Why
• Prevent accessing same page with
different URLs
• Search engines pass along “link juice”
When
301 redirect from
equivalent URL to • Before go-live
“canonical” URL.
The URL
How
foo.com/node/1/
will 301 redirect to
• Enable globalredirect module
foo.com/node/1 • Configure module as needed
answers@hook42.com 38
40. BADCamp 2012 Hook 42
Global Redirect • Test redirect works for
Tips
duplicate URLs
• node/1/ => node/1
• ?q=node/1 => node/1
• Enable “Add Canonical Link”
to get the canonical URL
301 redirect from
equivalent URL to
“canonical” URL.
(alias) added to the meta
tags
The URL
foo.com/node/1/
will 301 redirect to
foo.com/node/1
answers@hook42.com 40
41. BADCamp 2012 Hook 42
Page Title
What
This is your
marketing title • Page Title module (page_title) or Meta Tags
module (metatag) in D7
• Drupal 4 through 7
Why
• Show user-friendly, click-worthy title
When
The page title (<title> • When you create content types and edit
tag) is considered by content
many to be the MOST
IMPORTANT on-page
optimization. How
• Enable page_title (or metatag) module
Search engines show
this in search results • Configure patterns per content type
and browsers show it in • Edit content, fill in title, and save
the browser bar.
answers@hook42.com 41
43. BADCamp 2012 Hook 42
Page Title > Configure page title patterns
answers@hook42.com 43
44. BADCamp 2012 Hook 42
Page Title > Set manual page titles
answers@hook42.com 44
45. BADCamp 2012 Hook 42
Page Title • Use unique page titles!
Tips
• Use human-readable titles and
patterns
• Use keywords in the title and
patterns if it makes sense
The page title (<title>
tag) is considered by
many to be the MOST
• Keep titles short (< 70 characters)
IMPORTANT on-page
optimization.
• Put sitename / company at the end
Search engines show
this in search results of the page title (e.g. Cool Widget |
and browsers show it in
the browser bar. Widgets-r-us)
answers@hook42.com 45
46. BADCamp 2012 Hook 42
Meta Tags
Supporting What
data • Nodewords module (nodewords, D6 and below)
or Metatags module (metatag, D7) or Meta Tags
Quick module (metatags_quick, D7)
• Drupal 4 through 7
Why
• Meta description is your marketing message
When
• When you create content types and edit content
How
• Enable module and submodules
• Configure patterns per content type
Meta data about the • Edit content, fill in meta description, and save
page.
answers@hook42.com 46
48. BADCamp 2012 Hook 42
Meta Tags Quick > Add meta tag content
answers@hook42.com 48
49. BADCamp 2012 Hook 42
Meta Tags • Choose a meta tag module and
Tips stick with it (it’s not easy to move
data between the two options)
• http://groups.drupal.org/node/18941
• Meta tags description is a must
(marketing message!)
• Use unique meta descriptions!
• Meta tags keywords are optional
Meta data about the
page.
answers@hook42.com 49
50. BADCamp 2012 Hook 42
Site Verify What
Is this your
site? • Site Verify module (site_verify)
• Drupal 6 through 7
Why
• Let the search engines know you are the
site owner
When
• Right after go-live
How
You need to prove to • Enable site_verify module
Google, Bing, and other • Configure site verification for
engines that you own
the site. Google, Bing, etc.
answers@hook42.com 50
51. BADCamp 2012 Hook 42
Site Verify > Add verification files or text
answers@hook42.com 51
52. BADCamp 2012 Hook 42
Site Verify • You don’t have to use a
Tips
module for this (can put the
verification files in the docroot
and make readable)
You need to prove to
Google, Bing, and other
engines that you own
the site.
answers@hook42.com 52
53. BADCamp 2012 Hook 42
XML Sitemap What
What should be • XML Sitemap module (xmlsitemap)
indexed? • Drupal 5 through 7
Why
• Let the search engines know your pages
When
• Configure right before go-live and submit
right after go-live
How
• Enable xmlsitemap, xmlsitemap_node, and
xmlsitemap_engines modules
• Configure xmlsitemap directory and priority
Give search engines a per content type
list of your site pages so
they find them faster. • Generate sitemap and submit
answers@hook42.com 53
57. BADCamp 2012 Hook 42
XML Sitemap • Don’t mark all content with 1.0
Tips priority (only the most important
stuff)
• Make sure cron is running (older
versions of Drupal)
• Configure the xmlsitemap_engines
module to submit sitemaps daily
• Check Google and Bing
Give search engines a
Webmaster Tools to see if sitemap
list of your site pages so is found
they find them faster.
answers@hook42.com 57
59. BADCamp 2012 Hook 42
General
Where now?
• SEOMoz / seomoz.org
Learn more
about SEO • Search Engine Land / searchengineland.com
• Matt Cutts / mattcutts.com/blog
• Performing an SEO Audit / www.seomoz.org/blog/how-
to-perform-the-worlds-greatest-seo-audit
Drupal
• Drupal docs / drupal.org/node/1158446
• Drupal SEO group / groups.drupal.org/seo
• Drupal 6 SEO book / drupalseobook.com
• Volacci’s blog / volacci.com/blog
• Kristen’s blog / kristen.org
SEO is always • Kristen’s tweets / @kristen_pol
changing.
answers@hook42.com 59