One Piece is definitely too long. I know Oda believes the journey to be more fun than reaching the destination, but there should be a limit.
He has placed huge emphasis on the secondary characters and that is making the story too long. These secondary characters make him lose sight of the ultimate goal. For example, in the grand scheme of things, Rebecca, Tama or Toko is completely useless. He just adds them to add some spice to it. But why? Law himself was enough to establish Doflamingo as a terrible person. The dystopian picture of Wano was enough to establish Orochi/Kaido as the harbinger of misery upon Wano, Tama/Toko was completely unnecessary.
And let's be honest. It was a mistake from Oda to add Zoro to this story. Zoro's character and goal is set up in way that can generate a manga on its own. Now, Oda has this issue where he needs to focus on Luffy but Zoro has been provided with same level of Shonen ambition as Luffy. Consequence is that Zoro, Mihawk, Ryuma so on gets neglected upon.
Oda should've been minimal in terms of connectable characters. If he planned to use the Yonkous as the final villains, he should've just never introduced the Shichibukai.
I for one am quite frustrated at how Oda spent all this time for characters that have no bearing on the story at large. It is difficult to read One Piece and watch my favorites like Crocodile, Lucci and Doflamingo being made obsolete as the story progresses. It is painful to see that Zoro side of characters like Mihawk, Ryuma, Tashigi having zero significance in the story.
Oda didn't plan his story correctly. Consequently, some of the fans are suffering. We have to watch as though fan favorite characters are made useless in the story where we spent dozens of chapters cheering for them (or for their defeats).
Of course, much of the blame falls upon me too. When the four Yonkous were revealed at the end of Water 7 saga, I should've known that everything else is just a waste of time and will not have any significance in the grand scheme.