public List <SearchResult> FindRankByKeywords(string keywords, string siteUrl, int numberOfResults)
        {
            try
            {
                // check for empty keywords or siteurl
                if (String.IsNullOrEmpty(keywords) || String.IsNullOrEmpty(siteUrl))
                {
                    // throw exception
                    throw new ArgumentException("Parameter cannot be null");
                }

                // build strings
                string googleSearchUrl = _googleSearchUrl + keywords.Replace(' ', '+') + "&num=" + numberOfResults;

                // get search results
                var response = _googleSearchResults.GetSearchResultsResponse(googleSearchUrl);
                _googleSearchResults.ParseSearchResults(response.Result, _resultsPattern, _linkPattern);

                // find the first search result rank
                var results = _googleSearchResults.GetSearchResults().Where(r => r.URL.Contains(siteUrl)).Select(x => x);

                return(results.ToList());
            }
            catch (ArgumentException ex)
            {
                throw ex;
            }
        }