I suspect that your site was affected by Google's "thin content" update. Spam sites auto-build thousands of pages in a short time, using only a paragraph for each, so Google will rank a site for its "footprint" or number of pages. By the time Google catches up to it, that site's got a new domain and it's selling backlinks in double fistfuls. Google stopped ranking pages and sites with that thin content on them.

This product page, for example, has only a few lines of text at the top and some product specs lower.

 The text doesn't have any relevant keywords. The text doesn't link keywords to other pages on the site, showing Google relationships between pages and thus the site's overall content. Pages like this one saw their rankings plummet.

The site is missing out on a lot of search traffic related to "grow lights."

Many Page Titles and Page Descriptions ("Page Titles" for short) in Google search results are defaulting to the first text Google finds on a page. Some default to text. Others, to menu items or random text that would confuse a user.

Page Titles are top SEO markers of a site and every page on it.

Google can "read" as we understand it. It doesn't just count keywords like many SEO plugins and apps do. It looks for how each page is related to every other page, via text and hyperlinks. Google looks for SEO written by a person, not AI.

Google likes sites with keywords in actual searches like "led cannabis grow lights" or "grow lamps near me." Google likes text organized in optimized sentences.

Without that Page Title, Google doesn't know what the site wants to rank for. It's guessing. Google doesn't like to guess.

The site's ranking #1 for a lot of keywords, but only a few of them indicate people who want to buy something.

For the relevant keywords the site's ranking high for, but has little actual traffic, I suspect the site's losing local SEO to the Google Map Pack that comes before "organic" search results. Local SEO is especially important to a brick-and-mortar business.

The site has nearly 300 referring domains for backlinks and all but a handful are worthless.

A site's "A Score" is its "domain authority" from 1 to 100. It answers the questions "Is this a legit site?" and "Does this site have any traffic?"

In my experience, any site scoring below 50 is trash, and many above that aren't specifically relevant to any website (like denverpost.com).

Many of these sites originate different countries: China, India, Portugal, Singapore.

What is the real dollar value of a backlink from coloradotown.com or leadgibbon.com?

Part 1: Keyword Audit

What keywords should the site want to rank for? 

Part 2: Page Titles  

The most important item for SEO is changing blank Page Titles.  Each Page Title of the site needs to tell Google 1) what it is and 2) how it relates to the rest of the site and 3) how all of it relates to what potential customers are searching for.

Rewriting Page Titles gives Google the opportunity to rank the site "as is." Because the tabs in the file cabinet are blank, Google isn't ranking the site properly. You want to fill in those blanks before zeroing in on page text to boost more specific keywords like "grow lights solar powered."

In my experience, without exception, rewriting Page Titles for a significant number of pages delivers a tremendous impact right away. The more we change, the bigger the impact. The site has nearly 50 pages. That's a sizable footprint not to be ranking higher, and ranking local, for more keywords.

Part 3: Page Text

Increase the amount of optimized text on the site. Many pages are one paragraph. I'd want to increase text on pages, as well as keywords linked to internal pages. Hyperlinked text shows Google how every page on the site is relevant to every other.