As above seo_buzz mentioned above "Google periodically updates its algorithm on how it ranks websites" that is true so i suggest work for your audiences and think how they will stick/engage around your site build your strategy around that and start working on it. Then your visitors/clients/audiences will promote your websites including they will linkback, bookmark, sharing and viral etc
In brief on-page, SEO means correcting the mistake in websites and off-page SEO implies link building process that I think guest-post and article submission since that require original material
There are lots of criteria to get top rank in Google. Some of them are given below: 1) Meta Tags (Title Tag, Heading Tags, Meta Tags, etc.) 2) Quality of content. 3) Quality of Backlink. 4) Website loading speed and Mobile friendly.