I really don't understand why you are doubting that Hannah was his mother. Clearly, this family moved around constantly and it was probably due to this that John's birth registration got overlooked (doubt it was a deliberate act). He wasn't yet born on 1861 census (7/4/1861) when family were in Hulme, Lancashire and, like his siblings, he was baptised in their mothers birthplace of Whitehaven 7 months later on 24/11/1861, showing his parents as George Charles Richards and Hannah. He is stated as her son on 1871 census, and George as his father when he married.
I might have had doubts if he hadn't been baptised either but he was!
George Charles Richards and Hannah Shepherd married 1857 Whitehaven, eldest child Sarah Ann born and baptised there 1857, son George Chippendale born 1859 Bolton, baptised in Whitehaven 6/5/1860, in 1861 George and Hannah in Hulme, Lancashire (Chorlton District), with John born in Manchester sometime between7/4/1861 and 24/11/1861 (the latter when baptised at Whitehaven). Maria Louisa was born 1865 Newcastle upon Tyne, Henry born 1867 Blythe, Northumberland and then back to Whitehaven where Alice born 1869 and where Hannah and the children remained (all 3 of these children baptised 21/11/1869). Son William born 1871 Whitehaven but not baptised until 30/1/1876.
I really don't think there is any doubt that Hannah was his mother.
Annette