6. “Many of the so-called SEO
professionals are not much more than
modern snake oil salesmen. They
game and manipulate the system for
their own intentions.”
“SEO is not a legitimate form of
marketing. It should not be
undertaken by people with brains or
souls.”
7. “I'm not an SEO expert, but [it]
seems like SEO is something spam
sites do. If you are trying to create a
high quality destination site, just
write good content and let Google
do its job.”
- Sachin Agarwal, CEO Posterous
19. Professional Practices
• User-Centric Design
• Test-Driven Development
• DRY and Maintainable Code
• Server Performance
• Client-Side Performance
• Search Engine Considerations
20. Six Simple Rules
• Can’t outsmart Google (or Bing or Y!)
• Follow Google’s advice
• Obey conventions and standards
• Stay away from hacks
• Think like a search engine
• Think like a searcher
23. Discovery
• Links to your pages from other sites
• Links to your pages from within your site
• Your sitemap.xml
24. sitemap.xml
• Tell search engines exactly what you
want them to crawl
• sitemaps.org
• Limit: 50,000 URLs, 10MB
• Can specify multiple sitemaps with a
sitemap index
26. Generating sitemap.xml
• Write it by hand, stick it in public/
• Build a controller, action, and route
entry to respond to ‘sitemap.xml’. Use
XML Builder to generate the entries.
Cache it.
• Importantly: Strive for 100% coverage.
28. Be nice to the crawler
• Be performant. Fast server response.
Fast page load. Compress files. Use if-
modified-since header.
• Non-www vs. www - pick one.
• Ensure unique content. Use <link
rel=”canonical”/> where
approriate.
31. Don’t sabotage it
• Don’t use a 302 redirect when you
mean a 301 redirect.
• Make sure images, video, Flash,
Silverlight, and AJAX are accessible.
• See the Google Webmaster Central
Blog for details.
• Account for crawlers with region-
specific content.
34. <title>
• Most important element to search
engines
• Think long and hard about it
• Keywords! Think like a searcher.
• Best format: Page Title | Site Name
35.
36.
37.
38. URLs
• Override to_param for pretty URLs.
• Dashes are word separators,
underscores are not. Use dashes.
• International domains are treated as
such.
39. <meta>
• <meta name=”description”
content=”...” />
• Make it unique for every page. Use
content_for.
• Shown to users, doesn’t affect ranking.
• <meta name=”tags” ... /> is
ignored
40. Headings and Content
• <h> tags should be used appropriately.
• Page content should match what the
<title> and <h> tags refer to.
• Limit use of text-indent:-9999px
and display:none in CSS.