Stop vibrate for incoming calls and text messages from certain contacts For certain contacts, I want to silence vibration for incoming calls and SMS messages.

I am not asking about silencing the audio notification and ringtone.  This is already well documented.
Automation is the preferred option. Many apps are available. I prefer using MacroDroid , since it is free (upto 5 macros) and easy to learn. To understand how MacroDroid works and required settings,  my answer here



Your macros would look like this


Macro 1: Kill Vibration (name of macro )


Triggers: 


Call incoming &rarr; Select contact &rarr;Choose from contacts
SMS received &rarr; Select contact &rarr;Choose from contacts


Actions: 

Vibrate Enable/ Disable &rarr;  Set Vibrate and set Normal (Vibrate off). Click OK

Constraints: None (leave blank)


Macro 2: Enable Vibration for others (name of macro )


Triggers: 


Call incoming &rarr; Select contact &rarr;Choose from contacts
SMS received &rarr; Select contact &rarr;Choose from contacts


Actions: 

Vibrate Enable/ Disable &rarr;  Set Vibrate and set Silent (Vibrate on). Click OK

Constraints: None (leave blank)

Explanation


Your question explicitly asks only for vibration to be silenced (but ring tone would be heard)
Macro 1 does that for both incoming calls and SMS for selected contacts 
Macro 2 does the opposite for contacts other than selected in Macro 1 (you have to choose others- if you don't reverse Macro 1 action, vibration would be off for all)
Tested on Moto X Play Marshmallow (6.0.1)