One thing I know for sure is that even if a site only had one keyword on it, it would be possible to rank for more than one keyword; in theory, based on the fact that a keyword being in the text of a site is not a requirement for the site to rank on that keyword. Which means that you can't even use the site's own text as a 100% based line for mapping a site's rankings across all possible keywords.
SeMRush is a good tool for this, it obviously won't be a comprehensive list of keywords, but the most accurate and comprehensive info I've seen.
You can use tools to show incoming links to the site, and check the anchor text of those links. Yahoo site explorer is commonly used for this.
Then you can also check the keyword density on every page of the site and pick the keywords that show up most often.
Finally, if you own the website then google webmaster tools is your friend. It shows both the probable keywords you rank for and actual terms people used to find your site. Google analytics or any other analytics software can also help with this.
|show 4 more comments|
If it's your website a great place to see what you rank well for is your site stats. It doesn't break down which terms are top ten but it does show what people are using to find your site. You can then use any number of tracking tools to tell you where you rank for those keywords quickly and easily. That's more useful then knowing only which ones are top ten because:
External sites are difficult to do because you don't have any access to their data. What you could do is check to see where they rank on the keywords you rank well for and are trying to rank well for. The more they match the more they are a competitor to you.
|show 2 more comments|