@AlexW - it's just the column 'url' where there could be a duplicate – Ruf1 9 mins ago
Then your first query will work if you correct the syntax - GROUP BY
must follow WHERE
(per the docs):
SELECT *
FROM directory_listings
WHERE status = 'approved'
GROUP BY url
ORDER BY site_name ASC