Charles, 24, has scored 27 goals in 71 appearances for Stafford, making him a fans favourite.
He will step up to National League North to join Farsley, just a few miles from his Leeds home.
He told Farsley’s official website: “I’ve been at Stafford for the last couple of years, I’ve played a lot of games there, we’ve been struggling as well, but I feel like I’ve developed well over the last couple of years.
“I’ve scored a fair amount of goals, and I think that Farsley’s the next step for me to become a better player.
“With myself being in Leeds, and coming from Leeds, it’s on my doorstep, so it ticks a lot of boxes.
“I’ve known Adam (Lakeland) for quite a while, playing against him. I’ve heard good things about him, and I’ve seen the way that Farsley have played in the past, and that definitely ticked a massive box for me as well.”
Keep up-to-date with our exclusive email newsletters.
Subscribe