I am currently in hard mode and during a blood moon, several of my NPCs including my guide and my healer died. it's been several in game "days" now and they have yet to respawn. Is there a way to check why they aren't respawning?

Is there a list of reasons for the NPCs to not respawn?

Edit in reponse to lunbok's answer:

1. They don't have appropriate housing - There is an in-game housing query function (changes your cursor into a ?) that lets you click on your house to see if it is still a suitable house and I clicked in every room in my house and they are all listed as "This housing is suitable" or "This housing is already occupied".

2. Their spawn conditions aren't met anymore. - This doesn't explain why my guide isn't respawning since they don't need a condition to respawn (other than having a suitable housing which the point above already prove isn't the problem).

3. There's a goblin invasion going on. - Do the invasions last that long? It has been about two reals days and a lot more in-game "days" now. As far as I can tell there shouldn't be an invasion going on.

Did a clown blow up parts of your base and make it uninhabitable to NPCs?

If not, there might be an invasion going on that you didn't notice, if you built your base away from the original spawn point (which is the very middle of the map). Go there, and start killing goblins until it says that they've been defeated.

Also, certain NPCs need their initial spawn conditions to respawn. For example, to get your Demolitionist back, you'll need to carry an explosive around with you until he comes back.

Your house might not be the appropriate size, it has to be 6 high, and have 1 comfort item, a table, a entrance/exit, and a light source. Comfort items include chairs, bed, throne, and other(look up on wiki). If an NPC isn't respawning then make sure that those items are still in the room, you might have to be away from the house(go dungeon exploring, mining, sky island hunting, farming). Yes that ? housing tool might work but it could still say that everything is fine, but it really isn't. Make sure that the walls are completely closed (even those in behind solid tiles). Make sure that there is no invasion/boss fight going on. The spawn conditions can't be unmet(especially for a guide like you said). Hope this helps!

ITS THE GOBLIN ARMY!
i had the exact same problem, went to the centre of the world (original spawn point) at night and the goblin army appeared. Oh and yes the invasions last that long, for me it lasted more than 5 game days.

I know this is really late and you might have found the answer by now, but in case people in the future are looking for a fix for this, the doors to the rooms must be CLOSED in order for them to spawn in them. Otherwise, they won't spawn.

I had in fact missed an obvious requirement for my house. The corruption has crept a tiny bit too close to my house for it to become habitable.

I simply pushed back the corrupted biome by using Holy Water(crafted by using 5 Pixie Dust, 1 bottle of water and 1 hallowed seed) which convert anything, even the corruption into hallowed land. Then to prevent the hallow from spreading too wide which would spawn monsters( I don't want monsters spawning so close to my house. Don't want a unicorn to run into my house and impale my NPCs), I dug a moat around my house that is at least 4 blocks wide and filled it with lava. (It doesn't need to be filled with lava for it to work. Just the space is enough but then that wouldn't be as cool).

The reason why I didnt directly dug a moat against the corruption is because the moat would have to be really really wide to protect against the corruption. You have to be relatively far away from it. There is no distance away from hallowed land requirement. because of this, it is easier to buffer your home with the hallowed and then prevent that from spreading too far. Plus there are more resources the hallow can't spread through such as mud which the corruption is spread through.

NPCs need a valid house to move into, but proximity to spawn and/or other houses isn't required. Check to see if you happen to have valid "housing" elsewhere on your map — I once found my merchant living in a base camp just above the dungeon.