search-friendly web development @ lone star ruby conference 2010
DESCRIPTION
Given on August 28, 2010.TRANSCRIPT
Search Engines
65.8% 2.3%
11.0%
3.8%
17.1%
comScore July 2010 Rankings
Google AOLBing AskYahoo
Why?
“SEO Expert”
== “Spammer”
“I literally can’t stand the advertising/marketing/SEO people. They’re making money where there is none, simply because they’re immoral f&@$ who are capable of badgering people just to make a little ching. They’re paying overseas workers crap wages to do technical work that is immoral if not illegal, and they do it simply to make money.”
“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
“Let FastCGI do its job”.
On average, 40% of traffic comes from organic search*
“Not my audience!”
luigimontanez.com
“Experts” Not Needed
Professional Practices• User-Centric Design
• Test-Driven Development
• DRY and Maintainable Code
• Server Performance
• Client-Side Performance
• Search Engine Considerations
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
Search Engine Pipeline• Crawling
• Indexing
• Ranking
<crawling>
Discovery• Links to your pages from other sites
• Links to your pages from within your site
• Your sitemap.xml
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
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://example.com/about</loc> <lastmod>2010-01-01</lastmod> <changefreq>monthly</changefreq> <priority>0.8</priority> </url></urlset>
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.
robots.txt• Exclusion rather than inclusion
• robotstxt.org
User-agent: *Disallow: /profile
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.
</crawling>
<indexing>
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.
• Don’t change content based on region.
• Don’t require cookies to view content.
</indexing>
<ranking>
<title>• Most important element to search
engines
• Think long and hard about it
• Keywords! Think like a searcher.
• Best format: Page Title | Site Name
• ProTip: Append &pws=0 for testing in Google
URLs• Override to_param for pretty URLs.
• Dashes are word separators, underscores are not. Use dashes.
• International domains are treated as such.
<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
Headings and Content• <h> tags should be used appropriately.
• Page content should match what the <title> and <h> tags refer to.
• Avoid text-indent:-9999px and display:none in CSS.
</ranking>
Tools• Google Webmaster Tools
• Bing Webmaster Tools
• Yahoo! Site Explorer
Three Takeaways• Think like a searcher
• Optimize your <title>s
• Use Google Webmaster Tools