Well, that says it is *NOT* using any keys (indexes) except for the joins to SITES_RANGE and IMAGE.
So now your goal is to figure out why and if there is a way to make MySQL use the keys and whether using the keys would help.
My gut feeling is that, as a first level of attack, you should create a multi-key on SITES_CATEGORY:
CREATE INDEX category_site_url ON SITES_CATEGORY( site_id, url_name );
Do that, run EXPLAIN again, and then look for the next likely candidate.