There are two magic effects associated with ward spells
Ward Power - (WardConcSelf) - Absorbs spell damage by the set magnitude
Shield - (ShieldConcSelf) - Increases Armor Rating by the set magnitude.
The original ward spells do increase the players armour rating. But when you compare the effects you do see why it is biased to magical attacks.
Ward Power absorbs magical damage upto its set magnitude.
Shield increases the players armour rating by its set magnitude
So taking the Lesser Ward, it absorbs upto 40 points of magical damage damage, and increases the armour rating by 40. Armour caps at 80% which occurs when the displayed value is at 567 (Info taken from UESPWiki). So that increase of 40 in armour rating is rather paltry compared to the magical absorbtion
There are a number of ways you could achieve what you want, it does depend whether you want the shield to be used for non-magical purposes.
You could just adjust the magnitude each magic effect to a more suitable setting. Note that during my testing before posting, setting ward power to 0 seemed to absorb all spell damage
or you could attach a script to the ward spell which when the ward spell is active increases you armour rating based on your current equipped armour. When the ward spell ends, your armour rating is returned to its original value.
This script does that
Spoiler Scriptname IncreaseArmorRating extends activemagiceffect {Increases the armour rating of the player when a ward spell is active}Actor Property player Auto HiddenMagicEffect Property WardEffect AutoFloat ArmRatFloat ModArmRat;EVENTSEvent onEffectStart (Actor akCaster, Actor akTarget)player = akCasterArmRat = Player.GetBaseActorValue("DamageResist") debug.notification("Base Armor Rating = " + ArmRat)ModArmRat = ArmRat*0.5 ; Increases the armour rating by 50%bool Ward = Player.HasMagicEffect(WardEffect)if (Ward == 0) Player.ModActorValue("DamageResist", (ModArmRat)) debug.notification("Armor Rating =" + ModArmRat)endifEndEventEvent onEffectFinish (Actor akcaster, Actor akTarget) Player.ModActorValue("DamageResist", -(ModArmRat)) debug.notification("Armor Rating Reduced to " + ArmRat)EndEvent