Toggling the ringer switch on your iPhone is not enough to make it completely silent: the phone will still be quite noisy when it buzzes as you receive a notification or a call.
According to Apple, in ring mode, your iPhone plays all sounds and in silent mode it doesn’t ring or play alerts and other sound effects, but it “may still vibrate.” Thankfully, you can change this behavior with a quick toggle in Settings that’ll prevent your iPhone from vibrating when it’s silenced, here’s how.
Prevent your iPhone from vibrating when on silent
To make your phone entirely silent when it’s on mute, do the following:
1) Go to Settings → Sounds & Haptics.
2) Flip the Vibrate on Mute switch to the OFF position. This shall prevent your iPhone from making any noise whatsoever.
If you want to temporarily silence incoming calls, alerts and sound effects, toggle the ringer switch or set a scheduled Do Not Disturb mode on your iPhone.
Clock alarms still sound when the ringer switch is set to silent.
Custom vibration patterns for specific contacts
In Settings → Sounds, you can also change ringtones and alert tones, vibration settings and patterns and ringer and alert volumes. To create a custom vibration pattern, choose an item underneath the Sounds and Vibration Patterns heading and then tap Vibration to select a pattern or create your own.
Creating distinctive vibration patterns for notifications from specific apps is an effective way of differentiating important notifications from those that can wait without having to pull your device out of the pocket. You can also assign different ringtones for specific contacts: just launch Contacts, choose a contact, tap Edit and then Ringtone.