The hurricane was expected to pass over or near the Islas Marias — a set of islands about 96km offshore that include a nature preserve and a federal prison.
Forecasters said Willa would then blow ashore somewhere along a 220km stretch extending from the resort town of Mazatlan to San Blas.
It was projected to weaken somewhat before hitting land but was still expected to be extremely dangerous.
Yamile Bustamante, assistant general manager at the Crown Plaza de Mazatlan, said hotel executives were not ruling out the possibility of evacuating guests but were awaiting instructions from authorities.
The governments of Sinaloa and Nayarit ordered coastal region schools to close and began preparing emergency shelters.
Enrique Moreno, Mayor of Escuinapa, a municipality of about 60,000 people on Willa's track, said officials were trying to evacuate everybody in the seaside village of Teacapan. He estimated 3000 were affected but he expected some would try to stay.
"The people don't want to evacuate, but it's for their security," he said.
About 100km up the coast in Mazatlan, with a metropolitan-area population of about 500,000, Mayor Jose Joel Boucieguez said officials prepared shelters and were closely monitoring low-lying areas. Mazatlan is a popular holiday spot and home to a large number of American and Canadian expatriates.
Willa was about 175km west-southwest of Cabo Corrientes and moving north at 13 km/h.
Hurricane-force winds extended 55km from the storm's centre, and tropical storm-force winds were up to 205km out.
The US hurricane centre warned that Willa could bring 15 to 30cm of rain — with up to 45cm in some places — to parts of Jalisco, Nayarit and Sinaloa states, with flash flooding and landslides possible in mountainous areas.
-AP