As a web developer, SEO (Search Engine Optimization) is a MUST.
Reading the web and searching for the latest SEO guidelines, I summarized them in a document and I thought to write a blog post.
KeyPhrases production steps
- Produce your content, following Web Content best practices and guidelines
- Fragment your content into pages. The main rule is: one topic per page.
- For each page produce a Keyword Phrase [KeyPhrase]. 1 page should be translated in 1 KeyPhrase and optimized towards it.
- The KeyPhrase should appear in the first and last sentence of the content produced for that page
- Prefer Long Tail Keywords [LTK*]
- Check (and keep checked over time) Keyword Saturation Rate between 3% and 7%:
[KSR = K repetition in page / n. of words in K / n. of words in page]
LTK*: acronyms for Long Tail Keyword.
A LTK is a KeyPhrase with more than 3 words which aims to specify the better subject of the KeyPhrase. E.g.: having a KeyPhrase like “Italian hotels”, a LTK can be “Italian cheap hotels Livorno”. A LTK reduce your competitors and increase the conversion rate.
On-Page SEO Best Practices
1. Semantic markup usage and good front end best practices
- <title>: is the SEO most important tag. It will be used in Search Engine Result Pages (SERPs) as page title. Put your KeyPhrase in it, following this best practice: “KeyPhrase – Category – Website Title”. Anyway, use the KeyPhrase as first as you can. It must be less than 65/70 characters.
- <meta name=”description”>: it is used by Search Engines to provide a short description to SERPs. It should contain again the KeyPhrase (it will be rendered in bold). It must be less than 155 characters.
- <meta name=”keywords”>: this meta is not “sufficient”, but it is still “necessary” and can help the indexing. Place inside the main KeyPhrase and other content-related keywords.
- JS / CSS resources: do not use inline stylesheets / scripts. Use external files and try to compress them in order to reduce the overall page size. Use CSS sprites to avoid massive HTTP requests
- Headings: use <h1>, <h2> and <h3> tags where it makes sense, only one triple per page. Put your KeyPhrase inside <h1>
- Images: <img> tag requires alt and title. Even longdesc can be useful in order to increase the image indexing rate. Include at least one image per page and assign alt text with the KeyPhrase.
- Links: <a> tag must be provided with a descriptive Anchor Text (the inner tag text) and title attribute. Put the target KeyPhrase inside the Anchor Text and the title attribute. Use rel=”no-follow” for external links (see robots indications for extra values). Pay attention at automatic navigation (menus). Try to overwrite the “defaults”
- Avoid unnecessary code: use less classes as you can, avoid inline CSS / JS, old-school JS calls (onclick, onmouseover..)
- Use <b> (<strong> is better) and <em> around in-content KeyPhrase.
Validate your markup against:
- W3C’s validation tool (http://validator.w3.org)
- Use a link validator / checker tool to locate broken links, Try to prevent broken links in serverside
2. Use Friendly URL
- Put the KeyPhrase in the URL
- If you use external file / folders, replicates KeyPhrase words inside your paths
- Try to avoid query string (no more than 2 parameters) and try to reflect navigation
- SEO Friendly URL: http://store.example.com/topics/subtopic/descriptive-product-name#top
- Old-school URL: http://www.example.com/index.php?product=1234&sort=price&print=1
- Short your links as much as you can
3. Avoid Client Side and Server Side errors
- 4xx and 5xx family
- Scripting errors (wrong included files, missing files, runtime scripting engine errors…)
4. Create a custom 404 that re-orients the user
5. Respect indexing limits:
- Title length: no more than 70 characters
- Meta description: no more than 155 characters
- Page size: no more than 150 kB (without images, css and other attachments)
- Gzip when possible! Compress / minify CSS / JS trying to obtain a good balance between performance and bandwith)
- Page length: between 250 and 1000 words.
- Number of links: no more than 100 unique links
- Parameters in URL: no more than 2.
- URL length: no more than 4 level of depth. User url-rewriting / virtual uri techniques if you need more depth
6. Progressive enhancement
- Animations and menu: provide a basic layout, try it disabling JS. All the contents / links must be accessible. Use “onload / ondomready” JS events to add a behavior layer on top of the basic structure.
- Flash Replacement / Flash detection: display HTML for users without Flash (spiders!).
- <script>: use the <noscript> tag. Useful for AJAX loading, provide a link to the AJAX loaded text.
- Create text transcriptions of video / audio and provide it when Flash player is not available
7. Provide spider meta informations:
- loc, lastmod, changefreq, priority
- notify all major search engines that support the format of its location
- meta robots for each page
- noindex, nofollow, noarchive [noodp, noydir, nosnippet]
- link info: <a rel=”nofollow”>Anchor Text</a>
8. If your site is a blog, ping all major blog indexing services when your new content is published
9. Viral marketing over social networks
- There are a lot of tool to share content over a lot of network (like AddThis / ShareThis).
- Use proprietary marketing factors (e.g.: Facebook og-meta) if you want to heavy target a particular viral marketing network
10. Take care of domain:
- Pay attention using domain aliases and subdomains to access the same page. You loose (split) authority. Prefer the canonical form: www.domain.com and redirect (301) others to that.
- Choose a domain name that contains your KeyPhrase
- If you move your site, please provide a custom sitemap.xml to instruct spiders of this movement
- Defend your authority
- Respect the oldies: older domain has more authority than younger.
- Google bombing and other viral attaks
11. Provide the right HTTP status code:
- 200: ok à “hey, the page is still there“
- 301: moved permanently à “hey, the page has moved permanently to this location, reindex it and update your reference link” (remember to provide the new url)
- 302: moved temporarily à”hey, the page has been temporarily moved to this url but probably it can be moved back late” (remember to provide the temp moved url!)
- 404: ko, missing page à “Sorry, the page is not available here and anywhere. But it can be back late. Can you come back?”.
- 410: ko, requested page no longer available à “Sorry, forget about this page. It has been deleted”.
- 503: Service unavailable à “Ooops! I can not help you.. please come back again..” (but patience has limits..)
1. Stop spidering
- Content behind input forms
- Session ID’s in URLs
- Pages restricted by cookies
- Links or Content in images or Flash. Try to use some image replacement techniques
- Splash pages: home page is probably your website higher ranking page!
- Ajax Content: content is king, and need to be present on your page.
2. Non-semantic markup usage
- Avoid <table> for layout purpose: a table is indexed as a content, not as a layout element.
- Avoid inline CSS / JS
- Avoid HTML structure overhead (too many tags, attributes, classes): be concise!
3. Non textual content (Images, Flash, Ajax):
- A spider read text. You can simulate a spider using a textual browser, like Lynx.
- Provide textual content for non-textual media (images, video, audio, flash..)
4. Spam search engine
- Keyword Stuffing: it happens when you repeat too much the same keywords into the page / site
- Use everytime the same anchor text for backlinks (almost for internal ones)
- Manipulative Linking:
- Adopt massive link exchange campaign
- Incestuous or self-referential links (link networks)
- Paid links
- Blog / Forum / Directory spamming
- Black Hat practices:
- Keywords not relevant to content
- Search Engine Cloaking: intercepting spiders (User-Agent detection) providing different content is a bad idea, but you can still do it for different media website (e.g.: website mobile version).
- Low value pages
- Copied content
- Dynamically variated content
5. Use the same (or similar) title on every page: <title> should be dynamic and content-dependant
Off-Page SEO Best Practices
1. Produce good quality content
- Make a good content
- One topic per page
- Include content on your site that serves your audience’s needs and interests.
- Variate your content type (images, videos, text..)
- Create home page or section page that effectively funnels your traffic into the content-rich areas of your site
- Produce KeyPhrases that respect your content (do not do the reverse!)
- Place KeyPhrase in strategic page locations
- Include content on your site that serves your audience’s needs and interests.
- Don’t copy
- Defend your content against copiers
- Make it accessible
- Make sure that each page is accessible by at least one static text link
- Make it sharable (backlinks!)
- Make it indexable (text!)
2. Do competitive research and try to obtain the same (as much as you can) backlinks of your competitors.
3. Enforce press (offline / online) releases, you will gain authority
4. Backlink to your social world: when you post somewhere (blogs, guestbooks, forums, social networks..) about your site, remember to post a backlink. Feel authorized to do it!
5. Invite people to post on your blog, if you have one
6. Online and Offline marketing / promotion
- Link exchange (do not spam search engine!)
SEO Sources, SEO tools, SEO related sites:
1. Top SEO resources
2. Search Engine Webmaster Tools:
- Yahoo! Site Explorer: https://siteexplorer.search.yahoo.com
- Google Webmaster Tools: https://www.google.com/webmasters/tools
- Bing Webmaster Center: http://www.bing.com/toolbox/webmasters
- SeoMoz Open Site Explorer: http://www.opensiteexplorer.org/
3. Search Engine Commands: http://www.searchcommands.com/
4. Rank Checkers:
- SeoBook Firefox Rank Checker: http://tools.seobook.com/firefox/rank-checker/
- Google, Yahoo!, Bing propertary tools
- RanckChecker.com: http://www.rankchecker.com
- PageRank, KeywordRank, Widget, Reverse IP checker
- PageRank: http://www.pagerank.net
5. Other tools
- iWebTools: http://www.iwebtool.com/tools
- SEOChat Tools: http://www.seochat.com/seo-tools
- Webconfs: http://www.webconfs.com
- SEOBook Tools: http://tools.seobook.com
- SEO Quake: http://www.seoquake.com
- RavenTools.com, SEMRush.com, MajesticSEO.com, Link-Assistant.com, SpyFu.com, Quantcast.com, Adwords.Google.com/select/KeywordToolExternal, Google.com/Webmasters/Tools, WordTracker.com, XML-Sitemaps.com, WebsiteGrader.com.
- http://www.robotstxt.org: quick help for generating robots.txt
- http://www.xml-sitemaps.com: xml sitemap generator