how do I make smart checkpoints?

I have made checkpoints in unity and they work ok (they respawn the character when the character dies) but all the enemies that my character has killed so far has respawned with the character. How do I make the checkpoint know not to spawn enemies after they die?

here is my playerpos script (which makes the player move to the last checkpoint position)

 public class PlayerPos : MonoBehaviour
{
    private GameMaster GM;

     void Start()
    {
        GM = GameObject.FindGameObjectWithTag("GM").GetComponent<GameMaster>();
        transform.position = GM.lastCheckpointPos;
    }

}

here is my checkpoint script:

public class CheckPoint : MonoBehaviour
{
    private GameMaster GM;

    private void Start()
    {
        GM = GameObject.FindGameObjectWithTag("GM").GetComponent<GameMaster>();
    }

    
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            GM.lastCheckpointPos = transform.position;
        }
    }
}

here is my Gamemaster script:

public class GameMaster : MonoBehaviour
{
    // Start is called before the first frame update
    private static GameMaster instance;
    public Vector2 lastCheckpointPos;
     void Awake()
    {
        if(instance == null)
        {
            instance = this;
            DontDestroyOnLoad(instance);
        }
        else
        {
            Destroy(gameObject);
        }

        
    }
}

i made a new vector 3 and had 1 variable ; respawnpoint

i made it if the player collides with the checkpoint, the respawnpoint is equal the the transform.position of the checkpoint

i made it so that when the player died he reset his position like @Acdia said