There is no way an element returns an empty bounding client rect, you just need to look a bit harder.
For example.com:
cy.visit('https://example.com');
cy.get('h1')
.first()
.then(($target) => {
let coordsDrop = $target[0].getBoundingClientRect();
cy.log('coordsDrop', coordsDrop);
console.log('coordsDrop', coordsDrop);
})
The log:
Click the log entry:
or use consolg.log(coords)