The sites have different methodologies for determining their rankings. GP uses its own simulations and damage calculations. There are always going to be differences because there are quite many variables here, including the personal judgement of the team writing the rankings.
The explanation offered on GP's Cacturne page is that SP gains energy faster and is thus almost always preferable to PJ, despite PJ having higher DPS. With 5/6th of the movesets being mixed type, it's more important to gain energy faster for your SE charge move than to deal damage with your fast move, and especially in the case of PJ/GK, there is no pokemon that both will hit SE against. (EDIT: I thought of Ludicolo initially but it of course takes neutral from grass.)
Other sites may be blindly looking at PJ's better DPS and ranking it higher because of that.
EDIT2: I would not care much either way in this case because Cacturne is a fairly weak pokemon and is outclassed in almost any situation by multiple better options.