Running BFS on a graph gives you a tree and what you want actually is the depth of the tree. Putting an incrementation after the END FOR will absolutely give you a number greater than the depth of tree (depending on your code). Imagine this case: all neighbors of the current vertex 'v' are visited (all of them marked as true), this means that vertex v is leaf but your incrementation will still increase by one, which is not correct.
Solution: your incrementation should only increase when for current v there is at least one neighbor w which is not yet visited ( marked as false) and you have not yet increased the depth for any other vertex at the same level (vertices at the same distance from the root 's') as w. So what you missing in your code is you should keep track of the level in your code to know when to increase.
This question has already been asked for a tree, so you might have to look to this How to keep track of depth in breadth first search? just to let you know how to update your code to keep track of the level. Simply the idea is to push a NULL to the queue at the end of each level. The root itself is at level0, so after pushing root to the queue, push also a NULL. After that, each time you encounter NULL, push NULL to the queue for the next level and check if the top of the queue is not NULL increase the depth by one and continue else break.
FUNCTION BFS(G,s)
BEGIN
FOR any vertex v of G DO
Mark[v] ← False
END FOR
Mark[s] ← True
F ← Empty Queue
depth=0
enqueue(s,F), enqueue(NULL,F) // this is the level 0
WHILE F is not empty DO
v ← dequeue(F)
IF v=NULL THEN
enqueue(NULL,F)
IF(F.peek()==NULL) THEN
BREAK
ELSE
depth++
Continue
FOR any vertex w neighbor of v DO
IF Mark[w] = False THEN
Mark[w] ← True;
enqueue(w,F)
END IF
FOR END
WHILE END