Short, quick, back-and-forth motions that most people do with their vacuums aren't sucking up all the dirt and lint on your carpets and floors.
Way back in the day during my janitorial stint, I learned there's a much more efficient way to use a vacuum.
To vacuum like the professionals, you need to vacuum in rows. First, vacuum a row of carpet in one direction, wall-to-wall. This pass should be against the nap of the carpet to make it fluff up, making the deep dirt come up easier. You can tell if you're vacuuming against the nap if the yarn of the carpet sticks up or looks a little messier.
Then, you need to pull the vacuum back over that strip you just vacuumed. This will lay the carpet back down and will pick up some of the dirt you missed on the first swipe.
Once you're back to your starting place, vacuum another strip right next to the first, overlapping slightly. Keep doing this until the whole room has been vacuumed.
After the entire room is done, vacuum the room going the opposite direction. For example, if you were vacuuming north to south the first time, vacuum east to west on the second pass. Sure, it's extra work, but it gets every bit of dirt, which will make your carpet last longer and keep your feet happier.