OP needs to compare the first address generated by the xpub and the Electrum wallet and see if they match.
If they do match, then it should simply be a case of increasing the gap limit until the address in question shows up.
If they don't match, then he needs to compare the xpubs themselves and see if they match, as the website/service could be using the wrong derivation path or script type.
If the xpubs don't match, then he's using the wrong wallet entirely.