I am trying to implement shadowmap in opengl. I am having some artifacts which i am supposed to have. But while trying to remove that i get some extra shadows

Code :
vec4 shadowCoordinateWdivide = shadowCoord / shadowCoord.w ;
    //shadowCoordinateWdivide.z += 0.005;
    float distanceFromLight = texture2D(shadowMap, shadowCoordinateWdivide.xy).z;
    float shadow = 1.0;
    if (shadowCoord.w > 0.0)
        shadow = distanceFromLight < shadowCoordinateWdivide.z ? 0.5 : 1.0 ;
    gl_FragColor *= shadow;
adding the line
Code :
shadowCoordinateWdivide.z += 0.005;
adds some extra shadows for the planes behind.