The price is not right.
One main reason a house can sit on the market longer is that it is priced "outside of the market". The ultimate deciding factor of the value of your home is what a buyer is willing to pay. If you priced your home on the high end with the hopes of getting a lower offer, you are probably missing out on a majority of buyers looking for homes in your actual price range. Pricing your home competitively will attract more buyers and drive up demand. The rule of thumb is that if you are getting showings, but no offers, you are 5% overpriced, whereas if you are not getting showings or offers, you are likely 10% overpriced. Buyers in today's market are savvy and have a lot of ways to do research. They know how much a home is worth by looking at home valuation sites like zillow, and they won't even go see a home that they believe is overpriced.
You dont look your best online.
I always say that your first showing is always online. If you dont have professional photos, or your home wasn't prepared well, youre not creating interest in your home (or enough that will get the buyers off their couch and into your home! )
There is a lot of competition out there to sell homes. Even in a competitive seller's market, the more you can do to make your home look appealing to a buyer, the better your chances for a quick sale at the best price. There are a few things you can do before you list that will make a small impact in your wallet, but a large impact in the eyes of a buyer. This includes a fresh coat of paint and new flooring.
Typically homes do not sell due to price, presentation, or condition. If you are not getting showings or offers, it's time to re-evaluate.